前言¶
DeepSeek Harness 支持通過插件擴展搜索能力。對於需要調用第三方搜索服務(如 AnySearch)的場景,手動配置 Provider 往往需要修改配置文件,且難以處理多密鑰輪詢和故障轉移。jpa957/dsh-web-search-anysearch 插件通過註冊 ctx.web Seam 提供了 AnySearch 搜索接口,並內置了密鑰輪詢和按密鑰冷卻故障轉移機制,通過瀏覽器端 UI 進行配置。
插件簡介¶
該插件由 JPA957 維護,是一個基於 AnySearch 的搜索提供商。它具備以下核心能力:
- AnySearch 搜索提供商:註冊了
anysearch搜索後端。 - API 密鑰輪詢:支持多個 API Key 的輪詢使用。
- 按密鑰冷卻故障轉移:當某個密鑰返回 429/401/403 錯誤時,該密鑰會進入冷卻期,插件會嘗試使用下一個密鑰,最多重試 6 次。
- 瀏覽器端 UI 配置:提供設置頁面的卡片和標籤頁,無需編輯配置文件即可管理 API Key、Endpoint 和結果數。
安裝¶
使用以下命令安裝插件。該命令會通過 Bundle 的 Patch 層自動註冊 Provider。
dsh plugin --profile web add @jpa957/dsh-web-search-anysearch
配置與使用¶
安裝後,需要在設置頁面進行配置:
- 打開 Web App 的 Settings → AnySearch 標籤頁。
- API key:密鑰僅通過憑據域輸入,不會回傳到瀏覽器。
- Key reference:API 密鑰的憑據名稱,默認爲
ANYSEARCH_API_KEY。使用逗號分隔多個值可組成 Key 池,實現負載均衡。 - Endpoint base:API 端點地址,默認爲
https://api.anysearch.com。 - Max results:單次搜索返回的結果數量(1-10)。
配置保存後,可在配置文檔中設置 searchProvider: anysearch 以將其設爲默認後端。
故障轉移與安全機制¶
插件在運行時具備以下行爲與安全特性:
- 冷卻策略:當 API 返回 429(限流)、401(認證失敗)或 403(權限不足)時,對應的密鑰會進入冷卻期(默認 60 秒,認證/配額失敗爲 10 分鐘)。
- 重試邏輯:在同一個搜索請求中,若當前密鑰失敗,會自動切換到下一個密鑰繼續嘗試,直至達到最大重試次數或所有密鑰均處於冷卻期。
- 安全存儲:密鑰僅通過憑據域(Settings 頁面或環境變量)輸入,不會回傳到瀏覽器。在診斷信息中,密鑰僅顯示前 10 個字符。
- 匿名搜索:如果 Key 池爲空,將進行匿名搜索。
- 數據清洗:API 返回中無 URL 的條目將被丟棄,重複 URL 會合並。
啓用爲默認後端¶
若需將 AnySearch 設爲 Web Seam 的默認搜索後端,需在配置中指定。在您的 Patch 配置中添加以下內容(注:需確保此配置位於 Bundle 的 Patch 層之後):
- id: web
config:
searchProvider: anysearch
fetchProvider: http
注意事項¶
- 插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼。
- 依賴項需滿足
node >= 20。 - 該插件基於 MIT 許可證開源,屬於社區插件,與 DeepSeek / 幻方無官方從屬關係。
總結¶
該插件爲 DeepSeek Harness 提供了標準的 AnySearch 搜索能力,重點解決了多 API Key 管理和自動故障轉移的問題。通過瀏覽器端 UI 進行配置,降低了使用門檻。更多細節與源碼可參考 GitHub 倉庫。