前言¶
DSH 的插件机制允许把模型选择、命令、设置和工具做成可组合模块。对智能体开发者来说,常见问题不是“能不能调用模型”,而是日常轮次和关键轮次应该分别走什么模型。
dsh-shift-router 是 green-dalii 维护的 DSH 插件,用来在 fast 和 smart 两级模型链之间做路由,并加入 LLM Judge、fallback、故障转移和任务编排。下面介绍它的定位、能力、安装方式和注意点。
这是什么¶
dsh-shift-router 是一个两级模型路由插件:它在每轮顶层 agent 前做分类和路由选择,让请求进入对应的模型链,并通过 DSH 的 agent/request 流水线执行。
当前资料中可核实的信息包括:
- 插件名:
green-dalii/dsh-shift-router - 许可证:MIT
- package 版本:
0.5.0 - Node 要求:
>=22.0.0
核心功能¶
Judge 分级¶
每轮顶层 agent 前,LLM Judge 将用户消息分类为 fast 或 smart。Judge 只负责分类,不执行任务。分类结果驱动整轮请求通过 DSH 的 agent/request 流水线。
升级策略是“即时升级、趋势降级”:一次 smart 判定会立即切到强模型层;回到 fast 需要滑动窗口多数,默认窗口为 5 轮、比例不低于 60%,低置信度投票会被忽略。
缓存感知路由¶
当 fast 和 smart 共享 provider 时,插件会把降级阈值提高到 0.9,并在 prompt cache 热时暂缓切换,避免为了切到更便宜模型反而付出额外成本。
运行时故障转移¶
遇到 429、5xx 或配额失败时,对应模型会进入指数退避冷却:
1m → 4m → 16m → 1h → 6h cap
其中 client-side limits 起始冷却为 16m。
故障转移在同一层内重新解析到健康模型,不跨层。
任务级编排¶
复杂任务由 smart 层作为 CTO 规划、委派给 fast 层 engineer subagents、审查结果并迭代。
这里的硬上限由插件强制:达到上限时,subagent tool 会被拒绝。
成本遥测¶
插件按 tier 跟踪 token 和吞吐,可选配置 USD 价格表。使用 /router stats 可查看会话成本信息。
安装与启用¶
先确认环境满足 Node >=22.0.0。
使用 git 安装命令添加插件:
dsh plugin --profile <name> add github:green-dalii/dsh-shift-router
这条安装方式依赖 package 的 prepare script 构建 dist。如果使用 pnpm >=10,默认会拒绝 git dependencies 的 prepare scripts。可以在 profile 的 pnpm-workspace.yaml 中添加:
allowBuilds:
dsh-shift-router: true
然后重新执行添加命令;也可以改用源码 checkout 并执行:
npm run build
插件无配置也能加载,所有默认值安全。未配置 tiers 前,插件行为是 no-op;配置 tiers 后,路由才生效。tier 模型可以来自 GUI settings panel 或 profile patch row。
典型用法¶
配置入口有两种:
- 在 GUI 中打开
Settings → Plugins → Plugin configuration,找到Shift-Router卡片。 - 使用
/router config命令编辑 shift-router settings namespace。
routing.mode 有三个可选值:
auto:默认值,启用 judge、routing、failover 和 orchestration。manual:不启用 judge,仅使用/route-force做显式覆盖。off:模型选择完全被动,但命令和遥测仍可用。
查看成本:
/router stats
关于热加载:
- 配置变更可以通过编辑 profile patch 热加载。
- 外部插件代码变更当前需要 profile restart。
- 官方 Web bundle 默认将 HMR 设为禁用。如果需要启用 HMR,可在 profile patch 中设置:
- id: hmr
disabled: false
适用场景与注意¶
适合使用 DSH 的开发者,尤其是希望同时满足以下情况的人:
- 日常轮次走较低成本模型,关键轮次切到更强模型。
- 需要多模型 fallback 和同层故障转移。
- 需要按 tier 查看 token、吞吐和可选成本。
- 需要简单任务编排,并让插件强制任务上限。
注意:
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
- 未配置 tiers 前不会主动路由。
- 故障转移不跨层。
- pnpm
>=10下需要显式允许构建脚本,或使用源码构建。 - 代码变更不能依赖热加载完成生效。