DeepSeek Harness 插件介紹:dsh-web-search

前言

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 前端,可能遇到機器人驗證頁面導致無結果。

插件目錄:SkillHub
GitHub 倉庫:ForeverYoungPp/dsh-web-search

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

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

小夜