dsh-plugin-duckduckgo-search:为 DeepSeek Harness 提供免 API Key 的 DuckDuckGo 联网搜索

前言

在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye