dsh-searxng-web:用自託管 SearXNG 替換 DSH 原生搜索

前言

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 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜