前言¶
DeepSeek Harness(DSH)採用插件化架構。原生的 web_search 工具在處理複雜查詢或特定需求時,功能相對固定。dsh-web-search 插件旨在替換這一原生後端,引入一個可配置的多提供商回退鏈,以增強搜索的靈活性和可靠性。
插件定位¶
此插件由 ForeverYoungPp 維護,是一個爲 DSH 提供多提供商網絡搜索能力的插件。它將 DSH 原生的 web_search 工具重定向至一個由 8 個搜索服務組成的回退鏈中,支持按需配置和順序嘗試。
安裝與啓用¶
安裝前請確保環境滿足以下依賴要求:
- Node.js 版本:
^22.19或>=24 - DeepSeek Harness 版本:
0.2.0-rc.2
使用以下命令安裝插件(該命令會激活 --profile web 配置文件):
dsh plugin --profile web add @ian_p/dsh-web-search
安裝完成後,需要重啓 DSH 進程以加載新插件。
核心功能¶
插件集成了 8 個搜索提供商,通過回退鏈機制工作,具備以下特性:
- 多提供商支持:支持 Tavily、Brave、Exa、Firecrawl、Jina、Kagi、SearXNG 和 DuckDuckGo。
- 原生工具替換:直接替換 DSH 原生的
web_search工具,無需修改調用代碼。 - 失敗大聲機制:當回退鏈中的所有提供商均失敗時,會報告明確的錯誤,而非靜默降級。
- 宿主原生 UI:提供本地化的設置頁面,使用宿主的設計令牌,支持拖拽排序。
- 可審計日誌:日誌會記錄每一個被跳過或失敗的提供商,以及最終成功的服務。
配置與使用¶
插件的配置和憑證管理通過 DSH 的憑證記錄進行,不依賴環境變量。
配置提供商¶
在設置頁面中,你可以爲 API 密鑰類提供商(如 Tavily、Brave、Exa、Firecrawl、Jina、Kagi)添加密鑰,或爲 SearXNG 配置實例端點。DuckDuckGo 無需密鑰,作爲最後的兜底選項。
調整回退順序¶
通過設置頁面的拖拽功能,可以自定義提供商的嘗試順序。配置會保存到 dsh-web-search/config 憑證記錄中。
搜索行爲¶
搜索流程是順序進行的,而非並行競速:
1. 檢查當前提供商的可用性(本地檢查,無網絡調用)。
2. 發起搜索請求(默認超時 60 秒)。
3. 如果成功(返回非空結果),立即返回結果並停止嘗試後續提供商。
4. 如果失敗(HTTP 錯誤、無效 JSON 等),記錄錯誤並嘗試下一個提供商。
注意:插件不實現競速、結果合併、重試或緩存機制。
注意事項¶
- 權限與安全:插件作爲 DSH 進程的一部分運行,請確保從可信來源安裝並檢查源碼。
- 許可證:本項目採用 MIT 許可證開源。
- 特定提供商細節:
- Tavily:配置中需設置
chunks_per_source: 1以獲取頁面片段而非完整頁面內容。 - SearXNG:需要配置實例端點,且其時間單位映射可能需要調整(如
week映射爲month)。 - DuckDuckGo:不使用密鑰,但會解析 HTML 前端,可能遇到機器人驗證頁面導致無結果。
- Tavily:配置中需設置
插件目錄:SkillHub
GitHub 倉庫:ForeverYoungPp/dsh-web-search