dsh-model-pool:DSH 下的可自定義模型池與降級鏈

前言

在 DeepSeek Harness(DSH)裏跑智能體時,LLM 請求失敗並不少見:重試耗盡、認證錯誤、配額用盡、429 限流等。若只綁定單一 provider/model,當前步驟往往只能中斷或手工換模型。官方社區裏有基於降級鏈思路的插件;dsh-model-pool 由維護者 JiahaoXxX 發佈,分類爲模型推理,是 dsh-llm-fallbacks 0.6.5 的分支,把「鏈路由你完全配置」和「ModelPool / Auto 虛擬 provider」作爲明確目標,並在選擇器側支持推理強度(reasoning effort)相關行爲。

下面按定位、能力、安裝與配置說明如何在 Web 與 dsh-tui 中使用。

這是什麼

dsh-model-pool 是 DSH 的 provider 級模型池插件:在配置好的 provider/model 鏈上,噹噹前角色的請求因上述失敗原因無法繼續時,沿鏈切換到下一個模型,儘量讓當前 step/turn 在同一任務裏繼續,而不是因模型問題整段停住。

與上游 dsh-llm-fallbacks 的兩處 deliberate 差異(README 原文):

  1. 去掉「全天鏈必須以唯一官方 DeepSeek 模型(deepseek-official Flash/Pro)收尾」的規則;鏈的首尾可以是任意已配置的 provider/model,順序完全由 settings.yaml 決定。
  2. 模型選擇器裏的虛擬行名爲 ModelPool / Auto(上游爲 FallbacksChain / Auto);內部仍沿用上游標識:fallbacks: 配置命名空間、profile 行 id llm-fallbacks、cordis 服務 fallbacks。

在 0.6.5 基礎上增加:虛擬行展示池內推理檔位並集,選擇器可選推理強度;每次委派請求會 pin 到實際鏈頭模型能接受的最近檔位。

插件未上架 npm,需從 git URL、本地目錄或打包 tarball 安裝;倉庫帶預構建 dist/,無 prepare/postinstall,目標機不編譯。許可證 MIT;package.json 聲明版本 0.2.7,Node >=22,peer 依賴對齊 DSH 0.2.0-rc.2 系列(以 package 爲準)。GitHub 倉庫:JiahaoXxX/dsh-model-pool;社區目錄頁:skillhub 條目(獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)。

核心功能

降級鏈(rootChain 與命名池)

fallbacks.rootChain 定義默認池:按列表順序嘗試,首項爲鏈頭。失敗時在鏈上 walk,例如 workbuddy → qoder → trae 等任意組合,不要求鏈尾必須是官方 DeepSeek 模型。

可選 fallbacks.pools 爲額外獨立池,每項 id 在選擇器中呈現爲 ModelPool/<id>(如 ModelPool/glm-5.3),各自一條 chain。

時段切換 effective root

timeSlots 按牆鍾窗口輪換生效的根鏈:每條 slot 自帶 chain;當前時刻落入某 slot 窗口時,下一次 root 請求用該 slot 的鏈替代全天 rootChain;無匹配則仍用 rootChain。這是路由種子,不消耗 cooldown,與失敗 walk 分離;失敗時仍走降級切換。

內置四套 UTC+8 預設(代碼常量,預設行鎖定 tz 爲 Asia/Shanghai):

Preset Window
liang-peak 週一至週五 09:00–12:00、14:00–18:00
liang-valley 其餘 UTC+8 時間
glm-peak 週一至週五 14:00–18:00
glm-valley 其餘時間

glm-peak / glm-valley 僅在配置了 zai-coding-cn 時出現在卡片選擇器。匹配順序:在 fallbacks.tz(默認 Asia/Shanghai)下,第一個窗口包含當前時刻的額外行優先;無匹配 → 全天 rootChain。

角色與子智能體

可選 roles.list 聲明角色實體及各自 chain;roles.rules 僅作用於 subagent,不匹配 root 請求。例如 reviewer 角色可先走專用鏈,再通過 fallback: inherit-root 回落到 rootChain。

配置與診斷入口

設置寫入共享 fallbacks: 命名空間,三處可編輯(同一 $DSH_HOME/settings.yaml):

入口 說明
Web Settings → Plugins → Model pool 卡片
YAML $DSH_HOME/settings.yaml 的 fallbacks:
dsh-tui /settings 中 fallbacks 段(dsh-tui ≥ v0.8.5)

只讀診斷:dsh-tui 的 /fallbacks、/fallbacks config。

Web 與 dsh-tui 均支持;TUI 還可通過上述命令查看運行態。

安裝與啓用

插件以當前 DSH 進程權限運行,安裝前建議自行查看倉庫源碼與 MIT 許可證。

不要與官方 dsh-llm-fallbacks 同時啓用:profile 行 id llm-fallbacks 故意共用,兩個插件並存會衝突;請先卸載官方插件。

從 git 安裝(README 示例,將 <owner> 換爲 JiahaoXxX):

dsh plugin --profile web add github:JiahaoXxX/dsh-model-pool
dsh plugin --profile dsh-tui add github:JiahaoXxX/dsh-model-pool

DSH Desktop 可在 Plugins 頁安裝框填入相同 spec(github:owner/repo 或絕對路徑;相對路徑會被拒絕)。安裝後需重啓 DSH Desktop(插件在啓動時加載,僅刷新瀏覽器不夠)。

本地目錄或 tarball(路徑需可讀 package.json 且含 name 與 dsh.bundle):

dsh plugin --profile web add /absolute/path/to/dsh-model-pool
dsh plugin --profile web add /absolute/path/to/dsh-model-pool-0.1.0.tgz

registry spec 可用 @<version> 固定版本。包內帶中英文 locale 與 icon.svg,由宿主自動展示。

典型配置

在 $DSH_HOME/settings.yaml 增加 fallbacks: 段。最小示例(鏈順序與 provider 名需換成你環境中已配置的項):

fallbacks:
  rootChain:
    - workbuddy/glm-5.3
    - qoder-global/qfmodel
    - trae-cn/doubao-seed-1.6
  timeSlots:
    - kind: preset
      preset: liang-peak
      chain:
        - qoder-global/qfmodel
    - kind: custom
      name: evening
      start: '22:00'
      end: '02:00'
      days: [1, 5]
      chain:
        - openai/gpt-4o
  roles:
    list:
      - id: reviewer
        persona: Code-review subagents
        chain:
          - openai/gpt-4o-mini
        fallback: inherit-root
    rules:
      - role: reviewer
  pools:
    - id: glm-5.3
      chain:
        - zai-coding-cn/glm-5.3

配置完成後,在模型選擇器中選 ModelPool / Auto 或命名池行;按 README,虛擬行會反映池內推理檔位並集,請求會按鏈頭實際能力對齊檔位。

適用場景與注意

適合已在 DSH 中配置多個 provider、希望用 YAML 或 Web 卡片統一管理「首選 → 備用」順序,並希望在 peak/valley 時段自動換鏈頭、子智能體走獨立鏈的用戶。

注意:時段切換隻影響下一次 root 請求的鏈種子;429/QUOTA/AUTH 等仍觸發鏈上 failover。與上游 fork 關係意味着行爲與 dsh-llm-fallbacks 文檔部分相通,但鏈尾官方模型約束已移除,且 UI 名稱爲 ModelPool。

結尾

dsh-model-pool 把 DSH 的模型降級做成可完全自定義的 provider 級池:Auto 與命名池、鏈式 failover、可選時段與角色規則,並在選擇器側考慮推理強度。細節與完整字段以倉庫 README(含 README.zh-CN.md)爲準。

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

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

小夜