dsh-model-pool:多供應商模型探測與命名故障轉移鏈

前言

在 DeepSeek Harness(DSH)裏同時配置多家模型供應商之後,日常問題往往不是「沒有模型可選」,而是各家狀態一直在變:限流、額度耗盡、免費渠道下線,或當前請求帶了圖片而鏈上某個模型並不支持視覺。若每次都在設置裏手工換 provider,對話會反覆被打斷。

dsh-model-pool 由社區維護者 pure-cow-horse 發佈,歸類爲模型推理類 DSH 插件。它把「各家有什麼模型、通不通」收進面板,用命名方案排好有序鏈路,再註冊虛擬 provider ModelPool,在請求發起時按鏈自動順延。你選一個方案或 Auto,不必在每次失敗時再點選具體渠道。

社區插件目錄見 SkillHub 條目;源碼與說明在 GitHub 倉庫。DSH 生態主張「一切皆插件」,該目錄站與 DeepSeek / 幻方無官方從屬關係。

這是什麼

插件在 README 中的定位是:探測各供應商上游目錄、用最小請求驗證是否真能應答,把可用條目串成多套命名故障轉移方案,由虛擬 ModelPool provider 在請求時執行。

當前 package.json 版本爲 0.1.1,許可證 MIT。與 dsh-llm-fallbacks 或 JiahaoXxX/dsh-model-pool 並非 fork,狀態文件爲 model-pool.json,profile 行 id 爲 dsh-model-pool;若與同類「降級鏈」插件同時啓用,可能重複切換,資料建議只保留其一。

核心能力

下面按面板與運行時兩條線說明,均摘自項目 README。

面板:看清、編排、記賬

你在面板裏做的事 插件在背後做的事
看清各家有哪些模型、通不通 合併三類來源,探測與最小請求測試,可一鍵拉上游全量目錄
決定按什麼順序使用 多命名方案 + 有序鏈,拖拽排序,內置三種排序策略
出事時自動往下試 虛擬 provider ModelPool:發起級順延、冷卻、指數退避、多模態避障

模型列表 合併以下來源的模型(按 provider 去重後並集):

  1. llm-pi-ai.providers 裏靜態配置的模型;
  2. 運行時經 registerAdapter 註冊的渠道(如 WorkBuddy、Qoder、Trae 等對接插件);
  3. 本地 catalog 緩存(如 .workbuddy-catalog.json、.qoder-catalog.qoder-cn.json 等)。

支持按供應商分組、搜索篩選、單行或整組「測」、組頭「拉上游」同步 GET {baseURL}/models 全量目錄。「接入選中」會把勾選結果整體替換寫回 llm-pi-ai.providers.<供應商>.models;「禁用」會把渠道定義暫存到 model-pool.json 的 disabledProviders,並從宿主配置中移除,對話側模型列表不再出現該供應商。

方案與鏈路 可建多個命名方案並激活其一;支持勾選追加、由勾選新建方案,以及同檔聚類、延遲優先、免費優先三種內置排序整體替換當前鏈。可「測試當前鏈路」只測激活方案上的條目。方案級可設上下文窗口覆蓋、思考強度;鏈上支持拖拽與單項移除。

用量統計 按日 × 來源 × 渠道 × 模型記錄 token,合併池內攔截的 usage 與會話日誌回放;可區分池子與直連來源,並導出帶 BOM 的 CSV。

運行時:ModelPool 故障轉移

模型選擇器裏,Auto 跟隨當前激活方案;每個方案也可作爲獨立虛擬模型(id 即方案名)。

  • 發起級順延:按鏈順序嘗試;連接階段失敗則進入冷卻並跳下一條。觸發切換的失敗碼包括 AUTH、QUOTA、RATE_LIMIT、SERVER、TIMEOUT、TRANSPORT、EMPTY_RESPONSE。
  • 冷卻與退避:默認基準冷卻 60 秒(面板可調 cooldownMs,範圍 5 秒–1 小時);連續失敗按 2 的冪退避,上限默認 500 秒(maxBackoffMs);成功後重置連續失敗計數。
  • 多模態避障:請求含圖片時跳過不支持視覺的純文本模型,不計失敗、不入冷卻。
  • 診斷:面板可查看每次 attempt 的上游狀態與耗時;GET /api/model-pool/current 帶出 cooling、routeConflicts 等。

插件向本機暴露 13 條 /api/model-pool/ 接口,供同源面板調用;寫操作僅接受 POST,跨域拒絕。

安裝與啓用

前置條件:DSH 中已配置至少一個模型供應商(llm-pi-ai.providers),或通過對接插件在運行時註冊渠道。官方 @deepseek-ai/* 包在 peerDependencies 中由宿主提供,無需單獨安裝。

從 GitHub 安裝(README 推薦方式):

dsh plugin --profile desktop add github:pure-cow-horse/dsh-model-pool

安裝完成後重啓 DSH。桌面版使用 --profile desktop,Web 版將 profile 換成 web。

開發時也可從本地目錄安裝,例如:

dsh plugin --profile desktop add file:C:/path/to/dsh-model-pool

或編輯 ~/.dsh/profiles/<profile>/package.json 增加 file: 依賴並在 dsh.profile.bundles 中加入 dsh-model-pool,再執行 pnpm install 後重啓。

典型用法

  1. 在 DSH 中配置好各供應商的 baseURL、密鑰與基礎模型列表(或依賴 Qoder / Trae / WorkBuddy 等插件註冊渠道)。
  2. 打開左側「模型池」、設置頁「模型池」或主區 model-pool 面板,在 模型列表 對各供應商執行「測試全部」或「拉上游」,勾選需要接入的模型並點「接入選中」(寫配置前會自動備份)。
  3. 切換到 方案與鏈路,勾選模型加入當前方案或新建方案(如「純 deepseek」「代碼主力」),拖拽排序或使用內置排序策略,激活要用的方案。
  4. 在對話模型選擇器中選 ModelPool 的 Auto,或選某個方案對應的虛擬模型;發送請求後由鏈自動順延,輸入框會顯示實際命中的「供應商 / 模型 · 檔位」。
  5. 需要覈對消耗時,在 用量統計 切換來源篩選並導出 CSV;若鏈路因限流頻繁冷卻,可在方案頁調整 cooldownMs / maxBackoffMs,或使用「清空冷卻」恢復。

狀態與探測結果主要落在 profile 目錄下的 model-pool.json、model-pool-probe.json;用量按日寫入 ~/.dsh/model-pool/usage/YYYY-MM-DD.json(保留 180 天)。插件默認不修改 llm-pi-ai,除非你在面板主動「接入選中」或「禁用」供應商。

適用場景與注意

適合:已在 DSH 裏對接多家 API 或 IDE 橋接渠道,希望用一套命名方案統一 failover,並要在面板裏看清上游目錄與連通性、記錄 token 去向的開發者。

注意:

  • 插件以當前 DSH 進程的權限運行,安裝前請自行查看倉庫源碼與 MIT 許可證,確認與本地合規要求一致。
  • 與 dsh-llm-fallbacks 等同類降級鏈插件勿疊用,避免同一請求被切兩次。
  • 選中 ModelPool 時,輸入框模型名區域爲 DSH 的 single 槽位(本插件 priority: -2),宿主自帶模型徽章與部分連接類插件膠囊不會同時顯示,屬單槽位取捨。

維護方在倉庫內提供迴歸探針,可通過 node probes/run-all.mjs 或 pnpm run probe 在本地跑完全部探針(README 記載當前 21 個探針、264 條斷言)。

結尾

dsh-model-pool 把「多供應商、多模型、狀態變幻」收斂爲:面板裏探測與編鏈,請求時由 ModelPool 按方案自動換人,並附帶用量與診斷能力。需要安裝命令、接口表與數據文件說明時,以 README 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/pure-cow-horse/dsh-model-pool
  • GitHub:https://github.com/pure-cow-horse/dsh-model-pool
羽毛球分组比赛记分
小程序二维码

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

小夜