dsh-keyless-web-search
Verifieddsh-keyless-web-search · v0.1.0 · MIT
Free keyless web search & fetch provider for DeepSeek Harness (dsh). 四家厂商公共端点轮询+限流故障转移,无需任何 API key.
Install
dsh plugin add dsh-keyless-web-search Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Creators
Readme
dsh-keyless-web-search
DeepSeek Harness (dsh) 的免费无密钥网络搜索 + 网页抓取 provider 插件——不需要任何 API key。
Free keyless web search & fetch provider plugin for DeepSeek Harness (dsh) — zero API keys required.
原理 / How it works
搜索(web_search):在四家厂商的公共免费端点之间轮询(每进程随机起点分摊流量),哪家限流(429 / rate limit)自动故障转移到下一家,全部失败才报错:
| 厂商 | 端点 |
|---|---|
| Firecrawl | api.firecrawl.dev/v2/search(不带 Authorization 头) |
| Exa | mcp.exa.ai/mcp(MCP web_search_exa) |
| Parallel | search.parallel.ai/mcp(MCP web_search) |
| Keenable | api.keenable.ai/v1/search/public(需 X-Keenable-Title 头) |
抓取(web_fetch):Node 内置 fetch 直抓优先(跟随重定向、按 Content-Type 自动分类 html/text、500K 字符截断、10M 大小上限);直抓失败或被反爬拦截时,回退到 Firecrawl keyless scrape(返回 markdown)。
思路移植自 Hermes Agent (Nous Research) 的 keyless 搜索层(plugins/web/keyless_mcp.py),用 TypeScript-free 的纯 ESM 重写为 dsh 插件。
安装 / Install
dsh plugin --profile web add dsh-keyless-web-search -w
systemctl restart dsh-web # dsh web 由 systemd 托管时;否则重启你的 dsh web 进程
要求:Node >= 22,dsh 0.1.x。
自动路由接管(零配置)
插件的 bundle patch 会把 dsh 的 web 能力接缝(ctx.web)的 searchProvider / fetchProvider 都指向本插件注册的 free-keyless,覆盖 dsh-base 默认钉死的 deepseek-official(没配 DEEPSEEK_API_KEY 时后者会报 WEB_PROVIDER_CONFIGURED_MISSING: configured web provider "deepseek-official" is not registered)。
- 覆盖写在插件自己的 bundle 层——dsh 升级/重装后无需重新配置;
- 卸载本插件即自动恢复 dsh 原状;
- 内部 provider id 为
free-keyless(与包名无关,不会随改名变化)。
验证 / Verify
dsh --profile web --dump-config | grep -E 'searchProvider|fetchProvider'
# 应看到两行均为 free-keyless
注意事项 / Caveats
- 免费公共端点存在限流与可用性风险;高并发或生产场景请改用带付费 key 的 provider(Tavily / Exa 等)。
- 各端点行为由对应厂商控制,可能随时变化。
- 本插件不做内网 SSRF 拦截(设计前提:dsh agent 本就拥有完整本机 shell,provider 层拦截不设防);仅屏蔽云厂商元数据端点
169.254.169.254。
License
MIT