dsh-web-search-minimax:MiniMax 優先、DuckDuckGo 兜底的 ctx.web 聯網搜索

前言

DeepSeek Harness(DSH)通過 ctx.web 接縫向智能體提供聯網搜索。Harness 一次只會選定一個搜索提供方,內置並不會自動在多個後端之間切換。當 MiniMax 欠費、未配置密鑰、服務端錯誤或超時時,要麼直接失敗,要麼需要你自己換提供方。

dsh-web-search-minimax 由維護者 Franklinyung 發佈,分類爲聯網工具。它在單個註冊名 minimax-fallback 下自行完成「MiniMax → DuckDuckGo」鏈路,並通過 web.searchProvider: minimax-fallback 固定選用,避免誤選到其他已註冊的提供方。

這是什麼

一句話:面向 DSH ctx.web 接縫的 MiniMax 優先聯網搜索插件;在 MiniMax 無配額、無憑證、報錯或超時等情況下,可按配置回退到 DuckDuckGo 公共 HTML 端點。

核心功能

雙後端鏈路

插件註冊的提供方 minimax-fallback 按順序嘗試:

  1. MiniMax:通過 MiniMax 的 Anthropic 兼容 Messages 端點調用原生 web_search_20250305 服務端工具(與 Harness 自帶 DeepSeek 搜索提供方使用的線路格式一致)。每次搜索佔用一次模型輪次,返回 MiniMax 原生結果塊,而非抓取正文拼出來的摘要。
  2. DuckDuckGo:當 MiniMax 無憑證、返回配額/鑑權/服務端錯誤(例如 HTTP 402、HTTP 429)、在默認 45 秒內超時,或結果數爲 0 時啓用。DuckDuckGo 遇到反爬 202 頁面時,會在 0 s、1.5 s、5 s 以不同 User-Agent 重試。

未配置 MiniMax 憑證時不會因此把 web_search 從接縫上摘掉:DuckDuckGo 無需密鑰,提供方仍可被認定爲可用並直接進入 DuckDuckGo。

兩端均失敗時,返回一條合併錯誤,說明兩個後端各自失敗原因。

與接縫的對接方式

  • 結果規範化爲接縫要求的 sources[] 字段(url、title、snippet、publishedAt);接縫會按調用方的 maxResults 截斷。
  • 每次搜索追加僅用於日誌的會話事件 web/minimax-fallback-search,記錄實際後端(minimax 或 duckduckgo)、端點、查詢及回退原因,便於排查配額問題。
  • 調用方中止請求時,提供方不拋錯,以 AbortError 傳播取消。

無需設置頁

README 明確:沒有獨立設置頁。Plugins → Web search 頁面編輯的是內置 DeepSeek 提供方,不是本插件。配置通過 profile 的 cordis.patch.yml 覆蓋項完成。

安裝與啓用

在 web profile 下添加 bundle:

dsh plugin --profile web add dsh-web-search-minimax

也可在 Harness UI:Plugins → Add(或插件市場)中搜索 dsh-web-search-minimax;bundle 的 patch 會插入提供方行並固定 web.searchProvider。

若客戶端提示,重啓 Harness;提供方行顯示爲已啓用後即生效。

卸載:在 Plugins 已安裝 bundle 列表移除,或執行:

dsh plugin --profile web remove dsh-web-search-minimax

移除後固定提供方消失,接縫回到基礎組合所 pin 的搜索提供方。

配置

默認值來自 bundle 自帶的 cordis.patch.yml。在 profile 自己的 cordis.patch.yml 中重寫對應行即可覆蓋(後應用的 profile 層覆蓋 bundle 層)。

Key 默認值 含義
minimaxBaseURL https://api.minimaxi.com/anthropic/v1 Anthropic 兼容 API 根路徑,實際請求會追加 /messages。非中國區賬號可改爲國際端點。
minimaxModel MiniMax-M3 輔助搜索輪次所用模型;須接受 thinking: {type: "disabled"}。MiniMax-M3.1-Flash 不接受該參數,會始終觸發回退。
minimaxApiKeyEnv MINIMAX_CN_API_KEY 憑證環境變量名;先經 ctx.credentials,再讀啓動環境。
minimaxApiKey 未設置 本地實驗用明文密鑰;生產環境優先 minimaxApiKeyEnv,避免密鑰寫入配置。
minimaxApiVersion 2023-06-01 anthropic-version 請求頭。
minimaxMaxTokens 4096 搜索輪次生成 token 上限。
minimaxMaxUses 5 單次請求內原生 web_search 工具可用次數上限。
minimaxTimeoutMs 45000 MiniMax 段超時,超時後嘗試 DuckDuckGo。
duckduckgoFallback true 設爲 false 時 MiniMax 失敗不再回退。
duckduckgoTimeoutMs 20000 DuckDuckGo 段超時。
duckduckgoEndpoint https://html.duckduckgo.com/html/ DuckDuckGo HTML 搜索端點。
duckduckgoRegion wt-wt 請求中的 kl 區域參數。

行級 config 會被整體替換,覆蓋時需寫全仍要保留的鍵。示例(國際端點與國際環境變量名):

- id: web-search-minimax-fallback
  name: dsh-web-search-minimax
  config:
    minimaxBaseURL: https://api.minimaxi.io/anthropic/v1
    minimaxModel: MiniMax-M3
    minimaxApiKeyEnv: MINIMAX_API_KEY
    duckduckgoFallback: true

憑證可存入 Harness 憑證庫(例如在 Models 頁添加 MiniMax 提供方時指定相同的 apiKeyEnv),或在啓動 dsh 的環境中導出對應變量。

典型用法與行爲要點

智能體側仍通過 Harness 既有的 ctx.web / web_search 能力發起查詢,無需爲本插件單獨調用新 API。安裝並 pin 提供方後,搜索自動走 minimax-fallback 鏈路。

需要注意的行爲差異:

  • MiniMax 段是一次完整模型調用,延遲與 token 消耗高於 DuckDuckGo 的純 HTML 請求。
  • DuckDuckGo 無 API 密鑰、無 SLA;突發請求可能長時間停留在反爬頁面,即便重試仍失敗,最終錯誤會同時寫明兩個後端。若只希望看到 MiniMax 自身錯誤,將 duckduckgoFallback 設爲 false。
  • MiniMax 段綁定 Anthropic Messages 線上的 web_search_20250305;若 MiniMax 變更該能力,主路徑會持續回退到 DuckDuckGo。
  • DuckDuckGo 回退依賴其 HTML 結果頁結構;對方改版可能導致解析失敗,需插件側修復,而非改配置。

適用場景與注意

適合誰

  • 已在 DSH web profile 中運行智能體,希望默認用 MiniMax 原生聯網搜索,又要在欠費、無 Key 或故障時仍能搜到內容的開發者。
  • 需要可觀測回退原因(web/minimax-fallback-search 日誌事件)以便排查配額問題的環境。

使用前應瞭解

  • 插件以當前 dsh 進程權限運行;安裝前請自行審閱 源碼與 MIT 許可證。
  • 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係,屬於 DSH「一切皆插件」生態中的第三方條目。
  • GitHub 上該倉庫公開星標爲 0(以目錄線索爲準);選型時請結合自述測試環境與自身 Harness 版本驗證。

結尾

dsh-web-search-minimax 把「單提供方、無內置回退」的 Harness 搜索接縫擴展成一條可配置的 MiniMax 優先鏈路,並在無憑證時仍可通過 DuckDuckGo 保持 web_search 可用。安裝命令、配置鍵與回退條件均以倉庫 README 爲準。

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

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

小夜