前言¶
DeepSeek Harness (DSH) 默认的 web_search 指向云端搜索,且不挂载 web_fetch 提供者。如果你运行自托管的 SearXNG 用于隐私保护或离线场景,现有的工具链仍会将查询发送给第三方供应商。dsh-searxng-web 插件介入,接管原生工具,将请求路由到你的 SearXNG 实例。
是什么¶
dsh-searxng-web 是一个 DeepSeek Harness 插件,由维护者 maxwell-feng 开发。它将 DSH 原生的 web_search 和 web_fetch 工具后端替换为自托管的 SearXNG 实例,实现无第三方供应商、无密钥的搜索与抓取。
核心功能¶
- 原生工具支持:接管
web_search和web_fetch工具,模型无需变更调用名称。 - SSRF 防护:
web_fetch受 SSRF 防护,限制抓取目标。 - 三栈端点与故障转移:支持配置多个端点(如 IPv4、IPv6、内网),自动故障转移。
- 私密与无密钥:直接连接自托管实例,无需第三方服务。
安装与启用¶
安装前需满足以下条件:
1. Node.js 版本 >= 22
2. 已安装 DeepSeek Harness (dsh),已验证版本 0.1.5-rc.2
3. 部署了可访问的 SearXNG 实例,并在配置中启用了 JSON 输出(settings.yml → search.formats: [html, ])
安装插件:
dsh plugin --profile web add dsh-searxng-web
安装后重启 DSH 即可生效。
典型用法¶
插件接管后,模型使用原生工具名称即可调用你的 SearXNG:
- web_search → ctx.web → searxng-web → 你的 SearXNG → 配置的搜索引擎
- web_fetch → ctx.web → searxng-web-fetch → 目标页面(受 SSRF 防护,HTML 转 Text)
验证配置:
dsh --profile web --dump-config | grep -A5 searxng
在 GUI 中,设置 → Web 搜索 会显示提供者就绪状态。
配置说明¶
默认的 Base URL 为 http://127.0.0.1:8080。在 DSH 的 cordis.patch.yml 中覆盖配置:
- id: searxng-web
config:
baseUrl: 'http://10.42.1.159:8080'
timeoutMs: 15000
fetchTimeoutMs: 30000
fetchMaxChars: 200000
ssrfGuard: true
search:
language: '' # e.g. 'zh-CN', 'en'
safesearch: 0 # 0 off, 1 moderate, 2 strict
适用场景与注意¶
- 适用场景:需要完全控制搜索结果、注重隐私、部署在离线或内网环境、不想使用第三方搜索供应商的开发者。
- 注意:插件以当前 DSH 进程的权限运行,需确保 DSH 有权限访问 SearXNG 实例。安装前建议检查源码与许可证。
结语¶
该插件通过无缝集成 DSH 的原生工具链,让自托管搜索方案落地。更多细节与源码可参考插件目录或 GitHub 仓库。