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
羽毛球分组比赛记分
小程序二维码

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

小夜