前言¶
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)、相对值(如3d、12h)和绝对日期(如2026-07-01)。带时间过滤时,支持该参数的引擎会优先排到回退链前面。free_search_test:逐个测试所有引擎并报告可用性。web_fetch:抓取网页正文(基于官方dsh-web-fetch-httpprovider)。注意:该工具无 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_search,timeRange: "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