前言¶
DeepSeek Harness (DSH) 依靠插件机制扩展能力。内置的 web_search 和 web_fetch 工具在遇到速率限制、验证码或空结果时,往往需要开发者自行处理回退逻辑。下面介绍 @goodandready/dsh-web-gateway 插件,它通过独立的工具链和自动容错机制,为 DSH 提供了更稳健的网络搜索与页面提取能力。
插件概况¶
名称:@goodandready/dsh-web-gateway
定位:为 DeepSeek Harness 提供具备故障转移能力的 Web 搜索与 Markdown 提取工具链。
维护者:GooDAnDReaDY
许可证:MIT
核心功能¶
该插件注册了三个核心工具,并为它们配置了提供者回退链:
- web_gateway_search:网络搜索工具。提供者回退链为:Tavily → Brave → Firecrawl → Exa → SearXNG → DuckDuckGo。
- web_gateway_extract:Markdown 页面提取工具。提供者回退链为:Firecrawl → Tavily → Crawl4AI → Jina → readability。
- web_gateway_research:多源研究工具。结合搜索与提取能力,将 Top 源整理为摘要。
此外,插件还具备以下特性:
- 熔断器:当提供者连续失败时自动跳过,避免长时间等待超时。
- SSRF 安全提取:严格验证 URL,仅允许
http/https,禁止嵌入凭证,并要求解析为公网 IP(阻止内网地址)。
安装与启用¶
安装该插件需要通过 DSH 的命令行工具执行。
- 运行安装命令:
dsh plugin --profile web add @goodandready/dsh-web-gateway
- 安装完成后,重启 web profile 以使工具生效。
配置与凭据¶
插件依赖外部 API 密钥。请进入 Settings → Credentials 页面添加以下凭据名称:
TAVILY_API_KEY:用于搜索与提取FIRECRAWL_API_KEY:用于搜索与提取EXA_API_KEY:用于搜索BRAVE_API_KEY:用于搜索CRAWL4AI_TOKEN:用于提取(仅当设置了crawl4aiUrl时使用)
在 Settings → Plugins → Web Gateway 中,可以调整以下参数:
defaultLimit:默认搜索结果数量(默认 5)。maxLimit:硬性搜索上限(默认 20)。cacheTtlMs:内存缓存存活时间(毫秒),0 表示禁用缓存。searxngUrl/crawl4aiUrl:本地 SearXNG 或 Crawl4AI 的服务地址,留空则禁用对应功能。allowInternalUrls:是否允许提取内网地址(默认 false)。
工作原理¶
该插件不会替换 DSH 内置的 web_search 和 web_fetch 工具。它注册了新的 web_gateway_* 工具,当模型调用这些工具时,会自动按照配置的顺序尝试不同的提供者。如果某个提供者返回空结果、HTTP 429/5xx 错误或网络错误,工具会自动切换到下一个。
注意事项¶
- URL 安全性:
web_gateway_extract严格限制 URL 必须为http/https,且不含认证信息,主机名必须解析为公网 IP。 - 缓存机制:结果缓存在内存中,仅支持配置 TTL。
- 工具调用:插件仅注册新工具,若需使用内置工具,仍需在提示词中指定。
结尾¶
该插件通过提供者回退链和熔断机制,提升了网络搜索与页面提取的可靠性。如需查看源码或提交反馈,可访问 GitHub 仓库。