前言¶
DeepSeek Harness (DSH) 的理念是「一切皆插件」。在构建智能体时,手动为每个任务指定模型既繁琐又难以维护。dsh-model-router 插件解决了这个问题,它根据任务类型分类请求,并将其重新调度到最合适的模型,优先保证研究任务的正确性,或优先使用免费模型处理闲聊。
插件介绍¶
这是 chillBnetley 维护的一个插件,属于「模型推理」类别。它通过钩子接管 DSH 的 llm/stream 水流,在请求进入模型之前,基于任务类型、模型能力评分、价格和当前状态(如速率限制)决定路由目标。核心功能包括任务感知路由、辅助调用过滤、速率限制冷却机制以及对子代理和代理团队的支持。
核心功能¶
- 任务感知路由:根据任务类型(如
coding、math_reasoning、daily_chat)选择策略。研究类任务优先考虑质量评分;闲聊类任务优先考虑免费模型。 - Grok 限制:Grok 被禁止在执行任务的回合中接收工具 schema,仅允许用于闲聊。
- 辅助调用过滤:会话标题和压缩请求等辅助调用不会被路由,保持原有模型不变。
- 速率限制处理:速率受限的路径会进入冷却状态,而不是每次请求都重试。
- 闲聊语调:提供专用的系统提示片段,仅在闲聊回合渲染,不影响其他任务。
- 子代理支持:支持子代理和代理团队,路由会替换流式响应的模型,不影响其他交互逻辑。
安装与启用¶
插件以纯文本文件形式分发。安装步骤如下:
git clone https://github.com/chillBnetley/dsh-model-router.git
cp -r dsh-model-router ~/.dsh/plugins/
安装完成后,在 DSH 的配置文件 dsh.profile.bundles 中列出该插件。插件会在 cordis.patch.yml 中贡献自己的 config: 配置块。
使用方法¶
- 观察路由决策:首次使用时,建议在配置中启用
dryRun: true。此时路由器仅记录决策日志而不改变实际请求,方便你验证策略是否符合预期。 - 查看决策详情:使用
/route命令查看最后一次路由决策的详细信息,包括任务类型、置信度、工具需求、当前模式以及选中的模型。 - 切换会话模式:使用
/mode work(默认,按质量优先)或/mode chat(闲聊模式,优先使用免费模型如 Space Bunny Free)切换会话模式。
配置说明¶
所有配置位于 cordis.patch.yml 的插件 config: 块下。关键配置项包括:
dryRun: true:仅日志记录,不实际改变请求。respectModels: ["provider/model"]:允许将指定的固定模型豁免,不参与路由选择。chitchatMaxTokens:限制闲聊模式输出长度的上限。
工作机制¶
路由器不会修改原始请求。它会创建一个全新的请求信封并返回。请求的内容是会话日志的纯函数,确保了状态的可预测性。
注意事项¶
- Unknown 不做猜测:如果模型没有能力记录,或在工具执行回合中工具支持未知,该请求会被排除。如果没有配置 fallback,请求将保持原样(不被路由)。
- 辅助调用始终直通:无论配置如何,辅助调用请求(带有
purpose的请求)都不会被路由。 - 缓存与语调:由于系统提示前缀的切换,
chitchatStyle.enabled设为false可以在语调优先级较低时提高缓存命中率。
总结¶
dsh-model-router 提供了一套从静态配置到动态路由的完整方案,帮助开发者根据任务类型自动优化模型选择。更多细节可查看插件目录或源码仓库。