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

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

Xiaoye