前言¶
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 倉庫。