dsh-auto-router:按轮次自动切换模型与推理档位

前言

在 DeepSeek Harness(DSH)里做智能体时,每一轮用户问题对算力和推理深度的要求差很多:寒暄、查资料、多步排错、大重构不该用同一套 model 和 reasoningEffort。手动在 Composer 里来回切模型,既慢又容易忘;全程锁在最强档则成本和延迟都偏高。社区插件 dsh-auto-router(维护者 dakouchiya,分类:模型推理)按每一轮用户请求的实际内容自动选档,并在同一次回复过程中根据工具报错与进展再做升档或降档,同时在输入框旁和回复尾部展示当前档位与开销。

这是什么

dsh-auto-router 是 DSH 的 Cordis 插件:在每轮开头用小模型做任务分类(默认不依赖单纯关键词匹配),从五档映射到 provider / model / reasoningEffort;通过 agent/pre-step 完成分类、通过 agent/request 以 waterfall 方式替换本次 LLM 调用的 LlmCallConfig。插件只读判定,不向会话写入额外内容,决策追加到 <DSH_HOME>/auto-router/decisions.jsonl。

五档与落点模型

分类器在每轮开始时读取本轮问题(可带最近两轮用户消息作上下文),判断需要多少「思考与验证」,再在五档中选一档并说明原因。用户可在消息开头使用 #lite / #轻量 / #ultra / #极深 等指令直接指定档位,不再调用分类器。

档位 显示名 典型场景 默认落点
lite 轻量 寒暄、确认、简单事实、简单换算 deepseek-flash / off
standard 中量 常规问答、信息查询、简单改写/总结、小改动 deepseek-flash / high
deep 重量 多步推理、调试排错、方案设计、代码实现 deepseek-flash / max
max 较深 高难度、高可靠需求、大重构/迁移 deepseek-v4-pro / high
ultra 极深 明确要求「极限/不惜成本」或极端难题 deepseek-v4-pro / max

注入上下文(如 runtime-context、skill-catalog、子代理说明等)会在分类前过滤,避免长系统文案把每轮都顶到 deep。分类器超时(默认 6s)、报错或输出无法解析时,退回结构规则兜底,并在日志中标明 reason。

升到 Pro 前的确认

当目标模型匹配 Pro(默认 modelPattern: pro)且当前基准不是 Pro 时,会先弹出确认(默认 15 秒窗口)。不点、超时或点「不切换」则保持原模型;点「切换」则本轮及后续步骤使用新配置。同轮只问一次;带图片/附件的回合跳过切模型确认。可在配置的 approval 块调整 enabled、windowMs、modelPattern、skipWhenPinned。

一轮之内的改档

首判只是起点。同一回复里,插件在两个时机把「当前任务 + 刚发生的事 + 当前档位」交给同一个便宴模型,输出 up / down / hold 并附原因,据此最多升/降一档:

  1. 工具报错时:把错误原文交给监督模型,由它判断是档位不够还是任务本身问题(例如文件不存在类错误不会误触发升档)。
  2. 每 rejudgeEverySteps 步(默认 5):看进展是否顺畅,卡顿则 up,明显偏高则 down。

没有「报错 2 次必升」这类固定阈值;拿不准则 hold。同轮内有限流(3 秒冷却、maxRejudgesPerTurn 上限)。一轮中途若用户又发新消息,会对新内容重新判定并按新档执行。

安装与启用

当前发布包通过 GitHub Release 安装(资料中的命令针对 v1.1.1;仓库 package.json 版本为 1.1.2,以你实际下载的 tgz 为准)。尚未发布到 npm;发布后可直接 dsh plugin --profile <profile> add dsh-auto-router。

dsh plugin --profile <profile> add https://github.com/dakouchiya/dsh-auto-router/releases/download/v1.1.1/dsh-auto-router-1.1.1.tgz

也可下载同一 tgz,在插件管理里从本地包安装。装完后在 设置 → 插件 可见常用开关(enabled / dryRun / mode / logDecisions);完整配置写在 profile 的 cordis.patch.yml(用户层,升级不丢)。随包默认使用 DeepSeek 内置模型名;若使用其他 provider,把 provider 与各档 model 改成宿主里真实存在的 id 即可;解析不到的模型保持当前配置不变,不会发出非法请求。

环境要求(来自 package.json):Node >=20,DSH >=0.2.1-rc.1 <0.2.2-0 || >=0.2.2-0 <0.3.0-0。许可证 MIT。插件以当前 dsh 进程权限运行,安装前宜自行查看源码与许可证。

配置示例

在 profile 的 cordis.patch.yml 中增加或合并:

- id: auto-router
  config:
    enabled: true
    dryRun: false          # true = 只记录决策,不改模型(演练模式)
    mode: balanced         # economy | balanced | quality,写入分类器倾向
    provider: deepseek-account
    tiers:
      lite:     { model: deepseek-flash,    effort: 'off' }
      standard: { model: deepseek-flash,    effort: high }
      deep:     { model: deepseek-flash,    effort: max }
      max:      { model: deepseek-v4-pro,   effort: high }
      ultra:    { model: deepseek-v4-pro,   effort: max }
    classifier:
      enabled: true
      model: deepseek-flash
      effort: 'off'
      timeoutMs: 6000
      maxInputChars: 3000
    approval:
      enabled: true
      windowMs: 15000
      modelPattern: pro
      skipWhenPinned: false
    history:
      maxBytes: 2097152
    logDecisions: true

effort 仅接受 off / low / high / max(由当前模型能力决定)。若目标模型不支持某档位,会按 off→low→high→max 阶梯就近收敛。

/route 命令

命令 作用
/route 查看开关、模式、五档映射、本会话最近一次判定
/route lite / standard / deep / max / ultra 本会话临时固定档位(中文档名如轻量/中量亦认)
/route auto 恢复自动
/route catalog 列出当前 provider 下模型及各推理等级
/route history [n] 读归档路由记录(默认最近 10 条)

界面与本地记录

输入框左侧徽章(conversation.input.left)显示实际生效的档位与模型;Pro 被拒或超时时显示实际档位并在悬停中注明目标。档位变化时会短暂闪烁并用 ↑/↓ 标方向,数据来自只读 API api/auto-router.state(约 1.5s 轮询)。

每条完成回复下方有可展开的回合标签(conversation.chat.turnTail):五档落点、本轮档位与模型、首判来源、从初判到结束的 token/花费及改档明细。装完或更新客户端代码后需强制刷新页面(如 Ctrl+F5)以加载新客户端模块。

持久化目录为 <DSH_HOME>/auto-router/:turns.jsonl 记录活跃回合(单文件上限由 history.maxBytes 控制,默认 2MB,超限轮转并归档);decisions.jsonl 记录每次决策/改档。侧边栏「路由历史」入口仅在打开面板时读取完整历史;要看归档用 /route history [n]。

延迟与行为边界

每轮至少一次小模型调用(首判,默认 deepseek-flash / off),资料中估算约 0.0003–0.0006 元/次量级;中途报错或检查点会再加同类调用。升 Pro 的确认本身不调用模型。

本条消息带图片或文件时不切模型,只记录决策。判定只读本轮用户批次;工具续步沿用本轮档位。模型切换后,本轮后续步骤的基准配置会更新为新配置。

卸载与测试

dsh plugin --profile <profile> remove dsh-auto-router

或在插件管理中移除对应 bundle。开发者可在插件目录执行 node --test 跑自带测试。

结尾

若你希望 DSH 在「模型推理」类任务里自动平衡成本与深度,而不是每轮手工选模型,dsh-auto-router 提供了从分类、请求改写、Pro 确认到一轮内改档的完整链路,并配合 Composer 徽章与回合标签把决策透明化。插件目录页:https://www.skillhub.cn/plugins/dakouchiya/dsh-auto-router;源码与说明:https://github.com/dakouchiya/dsh-auto-router。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

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

小夜