前言¶
DeepSeek Harness (DSH) 理念是“一切皆插件”。在模型推理场景中,通常需要同时维护多个模型(如低成本快速模型、高性能模型、备用模型)。当主模型出现故障时,手动切换或调整配置会打断开发流程。dsh-model-router 将模型选择转化为路由逻辑:你声明一个虚拟模型 ID,该 ID 绑定一个候选模型池,插件通过算法选择并调度,从而实现透明的故障转移。
插件介绍¶
- 插件名称:dsh-model-router
- 维护者:andrepontesmelo
- 所属分类:模型推理
- 开源协议:MIT
- 定位:DSH 插件,通过可插拔路由算法(如优先级、轮询)将虚拟模型 ID 映射到真实提供者候选模型,并支持透明故障转移。
核心功能¶
- 虚拟模型 ID 与路由算法:支持基于优先级和轮询等算法,将虚拟模型 ID 背后映射到一组真实提供者候选模型。
- 透明故障转移:当某个候选模型发生流式响应错误时,自动切换至下一个可用候选模型,无需应用层感知。
- 配置驱动路由:候选模型列表、排序顺序、推理强度等参数全部通过配置文件管理,不涉及代码逻辑修改。
- 响应来源追踪:在响应元数据中记录实际回答模型的信息,便于排查和审计。
安装与启用¶
该插件需要 Node.js 环境版本 22 或更高,且需先配置好 DSH profile。
安装命令:
dsh plugin --profile <your-profile> add github:andrepontesmelo/dsh-model-router
配置示例(cordis.patch.yml):
- insert:
- id: model-router
name: 'dsh-model-router'
config:
routes:
- id: routed-chat
algorithm: priority
candidates:
- provider: deepseek-official
model: deepseek-v4-flash
reasoning: high
验证与测试¶
插件内置了测试套件。在仓库目录下执行:
npm test # 76 个单元测试
npm run smoke # 5 个内存故障转移演练
注意事项¶
- 无会话粘性:同一对话的连续轮次可能会被路由到不同的候选模型。
- Reasoning Effing 限制:候选模型的
reasoning参数仅在该模型支持对应 effort 时才生效,否则静默使用提供者默认值。 - 配置信任:插件信任配置,列出的每个候选模型都是实际会被发送请求的真实提供者。
- 依赖要求:运行环境需满足 Node >= 22 且存在有效的 DSH profile。
总结¶
dsh-model-router 通过引入虚拟模型 ID 和路由算法,简化了多模型场景下的故障处理和负载均衡配置。它将故障转移逻辑下沉到插件层,使上层应用仅通过虚拟 ID 调用模型。更多细节可查阅插件目录页或 GitHub 仓库。