前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的架构。在日常使用中,区分“闲聊”和“干活”对模型的要求完全不同:闲聊追求便宜、快速,而干活需要深度推理和强模型。手动在两个档位间频繁切换既麻烦又容易出错,切错了要么浪费 token 要么干不好活。dsh-auto-model-router 插件旨在解决这一问题,它根据会话上下文自动判定应该走 Chat(light)档还是 Work(deep)档,实现流量的自动分流。
插件定位¶
该插件由开发者 Elysia11451 维护,采用 MIT 许可证。它是一个工作流类插件(v0.8.7.1 预发行版),核心功能是按会话自动切换 Chat / Work 两个档位,让闲聊走便宜的 Chat 档省 token,干活使用免费池的最强模型进行 deep 推理。
核心功能¶
插件通过以下机制实现自动路由:
-
双档路由
IM 闲聊自动走 Chat 档,当检测到明确干活指令(如“装插件”、“写脚本”、“跑测试”)时,自动切换到 Work 档。 -
三层判定
路由逻辑分为三层:优先使用会话状态机记忆;若状态机失效,则通过关键词兜底判定;若仍未命中,则默认降级为 Chat 档。 -
首轮弹窗
在 DSH 主界面,新会话的第一轮会弹出 Chat/Work 选择窗口。用户的选择会被记录,并在后续轮次中生效。 -
方向性冷却
插件对档位切换做了冷却限制。从 Work 降级回 Chat 时,受switchCooldownMs(默认 5s)约束,防止模型在短时间内来回横跳;而 Chat 升 Work 则不受此限制。 -
手动绝对优先
在当前会话中,如果用户手动选择过某个模型,路由逻辑会尊重这一选择,不再自动覆盖。 -
Chat 档干活只问一次
当 Chat 档会话调用到生产型工具(写文件、跑命令等)时,会弹窗询问一次是否切换到 Work 档。如果用户拒绝或超时,该会话后续不再询问,保持 Chat 档状态。
安装与启用¶
安装后重进 DSH(或冷启动一次)即可生效。
dsh plugin --profile web add github:Elysia11451/dsh-auto-model-router
使用示例¶
在 DSH 主界面或 IM 中使用即可。日常使用无需额外配置,插件会自动识别上下文。
# 执行自检以验证插件状态
dsh plugin --profile web exec auto-model-router.selftest
适用场景与注意¶
插件适合需要同时兼顾成本和推理能力的场景。安装前应确认源码与许可证,确保符合使用规范。
该插件依赖社区插件 dsh-our-free-model(提供免费模型池)和 dsh-im(桥接 IM 通道)。
已知限制(v0.8.7.1 预发行版)¶
使用前需留意以下限制:
- IM 首轮弹窗未触发:QQ/微信等 IM 渠道的新会话首轮无法弹出 Chat/Work 选择窗,会静默走 Chat 档,次轮依靠关键词纠正。
- 首轮选 Chat 不立即切换:此前版本中,新会话选 Chat 后,第一轮模型可能仍继承 Work 档模型(v0.8.7.1 已修复此问题)。
- 首轮承诺无独立测试用例:首轮选择 Chat 后“永不自动升 Work”的承诺机制目前没有独立的断言覆盖,仅靠集成测试验证。
- 极端情况下首轮消息可能丢失:当
@deepseek-ai/dsh-llm动态加载失败时,插件可能仅切换模型但不重发留存消息,导致消息丢失。极端情况下需手动重发上一条消息。 - 移动端验证:移动端未做真机窄屏专项验证,设置页 UI 以桌面为准。
总结¶
dsh-auto-model-router 通过状态机、关键词和手动干预的结合,实现了对 DSH 模型档位的自动化管理。它解决了手动切换模型繁琐的问题,同时通过冷却机制和手动优先策略保证了稳定性。开发者可参考目录页或 GitHub 查看更多细节。