前言¶
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 端點。
- 倉庫:Franklinyung/dsh-web-search-minimax
- 目錄頁:SkillHub 插件頁
- 許可證:MIT(見倉庫 README)
- 包版本:1.0.0(見
package.json) - 運行環境:Node
>=20;README 註明在 DeepSeek Harness 0.2.2-rc.1、Node 24 上做過驗證
核心功能¶
雙後端鏈路¶
插件註冊的提供方 minimax-fallback 按順序嘗試:
- MiniMax:通過 MiniMax 的 Anthropic 兼容 Messages 端點調用原生
web_search_20250305服務端工具(與 Harness 自帶 DeepSeek 搜索提供方使用的線路格式一致)。每次搜索佔用一次模型輪次,返回 MiniMax 原生結果塊,而非抓取正文拼出來的摘要。 - 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
webprofile 中運行智能體,希望默認用 MiniMax 原生聯網搜索,又要在欠費、無 Key 或故障時仍能搜到內容的開發者。 - 需要可觀測回退原因(
web/minimax-fallback-search日誌事件)以便排查配額問題的環境。
使用前應瞭解
- 插件以當前
dsh進程權限運行;安裝前請自行審閱 源碼與 MIT 許可證。 - 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係,屬於 DSH「一切皆插件」生態中的第三方條目。
- GitHub 上該倉庫公開星標爲 0(以目錄線索爲準);選型時請結合自述測試環境與自身 Harness 版本驗證。
結尾¶
dsh-web-search-minimax 把「單提供方、無內置回退」的 Harness 搜索接縫擴展成一條可配置的 MiniMax 優先鏈路,並在無憑證時仍可通過 DuckDuckGo 保持 web_search 可用。安裝命令、配置鍵與回退條件均以倉庫 README 爲準。