前言¶
在 DeepSeek Harness(DSH)里给智能体接联网搜索,常见做法是自建 SearXNG、或申请各家搜索 API 并维护密钥与配额。若你只想在本地或桌面环境让内置 web_search 先跑起来,又不想额外部署服务,dsh-plugin-duckduckgo-search 走的是另一条路:向 DuckDuckGo 公开的 HTML / Lite 结果页发起请求并解析 HTML,与许多成熟抓取客户端同类,无需 API Key,也无需自建搜索基础设施。
下面介绍插件的定位、能力、安装配置与使用注意。社区插件目录见 SkillHub 条目;源码与说明以 GitHub 仓库 为准。目录站点为社区维护,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
维护者 Elmeis 发布的 DSH 插件,分类为联网工具。它在 Harness 的 ctx.web 能力缝上注册 DuckDuckGo 搜索 provider,使内置 web_search 在无 API Key、无额外后端的前提下可用。当前 package 版本为 0.1.0,许可证 MIT,要求 Node.js ≥ 20,dsh 版本 ≥ 0.2.1-0 且 < 0.3.0。
README 中与 @local/dsh-web-search-searxng 的对比可作选型参考:DuckDuckGo 方案默认无需常驻服务;自动化量大、对稳定性要求更高时,可自托管 SearXNG,并在 profile patch 里改一行切换 provider。
核心功能¶
插件实现标准 provider 接口:id、轻量 available(),以及 search(request, signal) 返回 { sources[], truncated }。
端点与回退
- 支持
html(表单 POST)与lite(GET)两类页面。 endpoint为auto时先走 html,失败或解析为空时再试 lite。
结果处理
- 标题与摘要去标签、解码 HTML 实体。
- 将
/l/?uddg=…类跳转链接还原为目标 URL。 - 按排名顺序去重。
查询参数
kl:区域;kp:安全搜索(0/1/2对应-2/-1/1);df:时间范围(day/month/year)。- 单次请求的
maxResults与插件配置的上限同时生效。 - 取消请求时返回 seam 约定的
WEB_ABORTED。
局限(README 原文态度)
解析的是渲染页,不是契约化 API。桌面 IP 下通常可用;若 DuckDuckGo 限流或改版,会以 WEB_PROVIDER_ERROR 报错并标明端点。此类负载可改用 SearXNG。
安装与启用¶
1、在 DSH Desktop:Settings → Plugins → add plugin,输入包名。
2、在 CLI 为指定 profile 添加插件后重启 Harness:
dsh plugin --profile <your-profile> add <name>
包名(README 原文):
name: dsh-plugin-duckduckgo-search
安装前请自行查看仓库源码与 MIT 许可证;插件以当前 dsh 进程权限运行,与任何 DSH 插件一样需评估信任边界。
配置¶
可在 Harness 设置 UI 的 web-search-duckduckgo 命名空间下 live 编辑;每次搜索会快照当前配置段。
| 字段 | 默认值 | 含义 |
|---|---|---|
endpoint |
auto |
auto / html / lite |
language |
"" |
DDG 区域,如 ru-ru、en-us;空为不限 |
safesearch |
1 |
0 关 · 1 适中 · 2 严格 |
timeRange |
"" |
day / month / year;空为不限 |
maxResults |
20 |
Provider 侧结果上限 |
requestTimeoutMs |
15000 |
单次请求超时(毫秒) |
userAgent |
Chrome 类 UA | 降低 DuckDuckGo 对泛用客户端的限流 |
acceptLanguage |
"" |
如 ru,en |
典型用法与自检¶
启用并重启后,Harness 内置 web_search 会通过该 provider 出网查询;具体调用方式与 DSH 主文档中 web 能力一致,无需在插件 README 中重复另一套 API。
仓库提供的冒烟测试(解析、auto 回退、上限、失败与 abort 等):
node test/smoke.mjs
说明:若 profile 树存在 node_modules,测试会通过 symlink 解析插件外的 @deepseek-ai/* 导入。
适用场景与注意¶
适合
- 个人或桌面开发,希望零密钥、零搜索后端即可试联网 agent。
- 与 SearXNG 插件并列:默认 DuckDuckGo,需要更稳的自动化时再切自托管。
注意
- 依赖第三方页面结构,不适合作为强 SLA 的生产唯一搜索源。
- 遵守 DuckDuckGo 服务条款与合理请求频率;限流时考虑
userAgent、端点模式或改用 SearXNG。 - GitHub 星标为 0(截至资料抓取),属较新社区插件,升级前可看 Issues。
结尾¶
dsh-plugin-duckduckgo-search 把 DuckDuckGo 的 HTML/Lite 结果页接进 DSH 的 web_search,免 API Key、免自建搜索服务,配置项覆盖区域、安全搜索与时间范围,并与 SearXNG 方案可一行切换。经过上面的步骤安装并核对配置后,即可在 Harness 里用内置联网工具做 keyless 搜索。
- 目录页:https://www.skillhub.cn/plugins/Elmeis/dsh-plugin-duckduckgo-search
- GitHub:https://github.com/Elmeis/dsh-plugin-duckduckgo-search