AnySearch 搜索提供商插件

前言

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

配置與使用

安裝後,需要在設置頁面進行配置:

  1. 打開 Web App 的 Settings → AnySearch 標籤頁。
  2. API key:密鑰僅通過憑據域輸入,不會回傳到瀏覽器。
  3. Key reference:API 密鑰的憑據名稱,默認爲 ANYSEARCH_API_KEY。使用逗號分隔多個值可組成 Key 池,實現負載均衡。
  4. Endpoint base:API 端點地址,默認爲 https://api.anysearch.com。
  5. 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 倉庫。

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

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

小夜