前言¶
DeepSeek Harness (DSH) 的 web profile 通過 ctx.web 接口解決搜索問題。默認情況下,這個接口由託管後端提供。對於已經運行自己的搜索棧(如 SearXNG、內部搜索網關或廠商 API)或希望查詢留在本地網絡內的用戶來說,默認行爲並不適用。
插件介紹¶
插件名稱爲 dsh-web-search-custom,由用戶 runfali 維護,屬於「聯網工具」分類。它是一個標準 dsh bundle 插件,設計意圖是薄適配器:不擁有搜索引擎、索引或緩存,僅負責與任意 JSON API 進行對接。
核心功能¶
- 零侵入與零依賴:作爲標準 bundle 插件,移除後可恢復原生搜索提供商,無需修改 DSH 源碼。無運行時依賴,僅使用 DSH 自帶的包。
- 通用 JSON API 支持:支持 GET 或 POST 請求,支持自定義 Authorization 等頭部信息。
- 可視化配置:支持在設置頁面配置 URL、API Key、超時及字段映射。
- 默認兼容 SearXNG:內置的字段映射與 SearXNG 的
results[]/url/title/content/publishedDate結構一致。
安裝與啓用¶
通過官方命令安裝插件:
dsh plugin --profile web add dsh-web-search-custom
安裝後重啓 DSH Web 實例。
配置方法¶
插件註冊的搜索提供商 ID 爲 custom。選擇該 provider 後,通過以下三種方式配置:
1. 設置頁面¶
打開 Settings → Plugins,展開 “Custom search (web-search-custom)” 卡片。所有參數均可編輯,保存後立即生效。
2. Profile Patch Layer¶
通過 settings document 中的 patch 層覆蓋配置:
- id: web-search-custom
config:
url: 'http://127.0.0.1:8080/search?format=json&q={query}'
apiKey: ''
method: GET
body: '{"query":"{query}"}'
headers: '{}'
authHeader: Authorization
authScheme: Bearer
timeoutMs: 30000
resultsPath: results
urlField: url
titleField: title
snippetField: content
publishedField: publishedDate
3. 環境變量¶
使用環境變量覆蓋配置,適合處理敏感信息:
WEB_SEARCH_CUSTOM_URL:覆蓋搜索 URLWEB_SEARCH_CUSTOM_API_KEY:覆蓋 API Key
配置參考¶
主要配置項如下:
url:搜索端點,支持{query}和{apiKey}佔位符。apiKey:可選 API Key,默認作爲Authorization: Bearer發送。method:請求方法,支持 GET 或 POST,默認 GET。body:POST 請求體模板。headers:額外請求頭,JSON 格式。timeoutMs:請求超時時間,默認 30000ms。resultsPath:結果數組路徑(如data.results)。urlField/titleField/snippetField/publishedField:結果字段映射。
注意事項與限制¶
- 版本要求:DeepSeek Harness 版本需滿足
>=0.1.2-alpha.3 <0.2.0 || >=0.1.5-alpha.1 <0.1.6;Node.js 版本需滿足^22.19.0 || >=24.0.0。 - 網絡訪問:需要主機到配置端點的出站網絡訪問權限。
- 數據處理:插件會對結果進行去重(按 URL)、過濾非 http(s) 條目、去除 HTML 標籤及解碼實體。
結尾¶
該插件爲 DSH Web UI 提供了靈活對接私有或第三方搜索 API 的能力,通過薄適配器的設計實現了零侵入和快速配置。更多細節可查閱插件目錄頁或源碼倉庫。