dsh-free-search:为 DeepSeek Harness 提供免 API Key 的多引擎联网搜索

前言

DeepSeek Harness(dsh)内置的搜索 provider 依赖 DeepSeek 官方 API key(DEEPSEEK_API_KEY)。没有 key、或走 opencode-go 等不支持 web_search 工具的 OpenAI 兼容网关时,agent 往往会直接报「无法联网」。若你希望在 dsh 里低成本、可切换地联网检索,就需要一个注册进 ctx.web seam 的替代方案。

下面介绍社区插件 dsh-free-search(维护者 DDDMUC,SkillHub 分类:联网工具)。它实现官方 WebSearchProvider 接口,内置多引擎与统一回退,默认用 Bing 免费搜索,无需 API key 即可开箱使用。

这是什么

dsh-free-search 是一个给 DeepSeek Harness 添加多引擎搜索 provider 的插件。它向 dsh 注册 web_search 等工具,并提供网页设置页、聊天框快捷命令和 YAML 配置,用于切换引擎、填写付费引擎 key、测试连通性与调整缓存。

  • 维护者:DDDMUC
  • 当前版本:v0.4.12(MIT 许可证)
  • GitHub:51 stars,3 forks
  • 目录页:https://www.skillhub.cn/plugins/DDDMUC/dsh-free-search
  • 源码:https://github.com/DDDMUC/dsh-free-search

核心功能

多引擎与自动回退

插件内置 10 个搜索引擎,免费与付费均可配置。默认引擎为 bing(免费,中文市场 zh-CN)。

id 引擎 费用 说明
ddg DuckDuckGo HTML 免费 偶发限流,解封后自动恢复
ddg-lite DuckDuckGo Lite 免费 轻量版
bing Bing 免费 默认引擎,较稳定
anysearch AnySearch AI 免费 匿名公共额度
searxng SearXNG 免费 支持自定义实例
exa Exa 免费 无 key 可走 MCP 匿名;配 key 提升额度
tavily Tavily 免费 无 key 可走 keyless 匿名
keenable Keenable 免费 无 key 可走 MCP 匿名
perplexity Perplexity 付费 PERPLEXITY_API_KEY
deepseek-official DeepSeek 官方 付费 DEEPSEEK_API_KEY

任一引擎失败(缺 key、401、限流、网络错误)时,插件会按统一回退链轮流尝试下一个引擎,并在结果顶部注明实际生效的引擎,例如 Note: perplexity unavailable or failed, using exa.。搜索不会因单个引擎故障而直接中断。

网页设置与快捷切换

安装后,在 设置 → 插件 → 可配置 中找到 Free Search 卡片:

  • 下拉切换 Search engine,保存即生效
  • 为 Exa / Tavily / Keenable / Perplexity / DeepSeek 填写 API key(保存后界面只显示「已配置」)
  • Test engine 直测当前引擎(不走回退链)
  • Use Bing default 一键切回 Bing
  • 勾选启用 GitHub / V2EX / Bilibili 等平台搜索
  • 支持中英文界面切换

聊天框输入 /free-search-engine 可弹出引擎选择窗口,点选即切换,等效于设置页保存。设置页还显示当前版本,并提供「检查更新」按钮对比 npm registry。

工具能力

除标准 web_search 外,插件还提供:

  • advanced_search:带 timeRange 的时间过滤搜索。支持固定档(day / week / month / year)、相对值(如 3d12h)和绝对日期(如 2026-07-01)。带时间过滤时,支持该参数的引擎会优先排到回退链前面。
  • free_search_test:逐个测试所有引擎并报告可用性。
  • web_fetch:抓取网页正文(基于官方 dsh-web-fetch-http provider)。注意:该工具无 SSRF 防护,agent 理论上可访问内网地址。
  • platform_search:搜 GitHub、V2EX、B 站、Reddit、Hacker News、Stack Overflow、维基百科、npm 等平台(公开 API,零依赖)。

相同查询(含引擎与时间过滤参数)默认缓存 5 分钟(LRU 50 条),可在设置页配置 0–5 分钟,0 为关闭。

安装与启用

插件要求 Node.js >= 20。对 @deepseek-ai/dsh-settings@deepseek-ai/dsh-tools 使用 peerDependencies,须通过 dsh plugin 安装,不要把 DSH 核心包复制进 profile 本地 node_modules,否则工具调度器可能失效。

先做 clone,再添加到 web profile:

git clone https://github.com/DDDMUC/dsh-free-search.git
dsh plugin --profile web add /path/to/dsh-free-search

然后重启 dsh web:

dsh web

典型用法

网页设置(推荐)

按上文路径打开 Free Search 卡片,选择引擎并保存。免费引擎带绿色 FREE 徽章,付费引擎带橙色 API KEY 徽章及获取 key 的链接。

配置文件

配置写入 ~/.dsh/settings.yaml

free-search:
  provider: bing              # ddg / ddg-lite / bing / searxng / anysearch / exa / tavily / keenable / perplexity / deepseek-official
  lang: zh                    # 设置页界面语言(zh / en)
  bingMarket: zh-CN           # Bing 市场
  region: cn-zh               # DuckDuckGo 区域(可选)
  searxngInstances:           # 自定义 SearXNG 实例(可选)
    - https://your-instance.example
  exaApiKey: ...
  tavilyApiKey: ...
  keenableApiKey: ...
  perplexityApiKey: ...
  deepseekApiKey: ...

让 agent 测试引擎

对 agent 说「测试一下所有搜索引擎」,它会调用 free_search_test,输出类似:

Search engine test:
- ddg: FAIL - DuckDuckGo is rate-limited right now (anti-bot challenge, usually temporary) - Bing works
- bing: OK (2 results, e.g. "DeepSeek Harness developer preview...")
- exa: FAIL - EXA_API_KEY not configured

时间过滤搜索

例如「帮我搜最近 3 天关于 DSH 的新闻」,agent 会调用 advanced_searchtimeRange: "3d"。Exa、Keenable 支持较精确的时间参数;Tavily、SearXNG、DuckDuckGo 对自定义天数会映射到最近似固定档;Bing、AnySearch 忽略时间过滤。

平台搜索与网页抓取

  • 「在 GitHub 上搜 deepseek harness」→ platform_search
  • 搜到 URL 后说「打开第一个链接看看内容」→ web_fetch

适用场景与注意

适合谁:

  • 没有 DeepSeek 官方 key,但仍希望 dsh agent 能联网检索
  • 使用不支持 web_search 的第三方网关,需要独立搜索 provider
  • 需要在 Bing、DuckDuckGo、SearXNG 等免费引擎间切换,或为 Exa / Tavily 等配置 key 以提升额度
  • 需要按时间范围过滤结果,或在 GitHub、V2EX 等平台定向搜索

使用前请注意:

  • 插件以当前 dsh 进程的权限运行;安装前应自行检查源码与 MIT 许可证,确认可接受其行为(含 web_fetch 无 SSRF 防护)。
  • 免费引擎可能遭遇限流或反爬,插件靠多引擎回退缓解,但不能保证每次首选引擎都可用。
  • SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系;插件与官方 dsh 插件可共存,均实现同一 seam 接口。

结尾

dsh-free-search 把 dsh 的联网搜索从「必须有 DeepSeek 官方 key」扩展为「多引擎可选、失败自动回退、零 key 也能用」。若你在搭 dsh 环境时卡在联网这一步,可以先装这个插件,用 Bing 默认引擎跑通,再按需切换或补充付费 key。

  • 目录页:https://www.skillhub.cn/plugins/DDDMUC/dsh-free-search
  • GitHub:https://github.com/DDDMUC/dsh-free-search
羽毛球分组比赛记分
小程序二维码

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

小夜