dsh-subagent-tiering: Subagents Route to Parent Model's Low-Cost Same-Tier by Default

前言

在 DeepSeek Harness(DSH)里,主会话常用 Opus、Qwen max 等高档路由,而 subagent 工具会再开一条子会话做并行或专项任务。若子会话不显式指定 provider、model 或 reasoning_effort, stock 的 ptc 预设不会给 subagent 单独的下沉规则,子智能体往往沿用父路由与 effort——例如 Opus 5.5 @ max。子调用一多,总账单会明显高于「主模型贵、子任务便宜」的常见分工。

下面介绍社区插件 @lucagiftzek/dsh-subagent-tiering:在子调用未点名路由时,按内置规则把子智能体默认切到父模型同生态里更便宜的一档;主智能体若自己传了上述三个字段,仍以主智能体的选择为准。

这是什么

维护者 lucagiftzek 在 npm 与 GitHub 发布该包,分类属于模型推理。一句话定位:子智能体默认使用父模型对应的廉价同级路由,除非主智能体在调用里指定了路由。

插件通过 Cordis 的 tools/pre-execute 在 subagent 执行前补全缺失的 provider / model / reasoning_effort,再走 DSH 原有的校验流程。规则写在包内 src/rules.js,也可在 profile 的 cordis.patch.yml 里用 - id: subagent-tiering 的 config.rules 覆盖(形状与内置一致)。

内置降级规则(摘要)

当子调用未指定路由且满足下文「前置条件」时,第一条匹配的规则生效。README 中的对照表如下(2026-09-29 起 Anthropic 默认子模型为 claude-sonnet-5-5 @ medium,解析失败时回退 claude-sonnet-5):

父路由 子默认
anthropic Opus / Fable / Sonnet anthropic claude-sonnet-5-5 @ medium(回退 claude-sonnet-5)
alibaba Qwen max/plus qwen3.8-flash @ high
alibaba / byteplus DeepSeek pro 对应 provider 的 DeepSeek flash @ high
byteplus GLM / Seed glm-5-3-flash-260828 @ high
deepseek-official deepseek-flash @ high
mistral large mistral-medium-latest
其它 mistral、alibaba GLM、hetzner 同模型,effort 上限为 high(不会抬高)
其它情况 与 stock DSH 一样继承父路由

vision-toolkit-<x> 父路由会保留其 wrapper provider。规则项可配置可选的 child.fallbackModels(同 provider、同 effort 的模型 id 列表),当主模型不在会话 captured allow-list 或无法解析时按序尝试。

subagent_fork 不会被修改——fork 必须留在父路由以复用缓存前缀。

工作机制与边界

插件在 subagent 未传入 provider、model、reasoning_effort 任一字段时,用第一条匹配规则填值,等价于模型自己点名路由。以下情况不改动调用,子会话仍继承父路由:

  1. 主智能体已传入上述三者之一(主智能体优先)。
  2. 当前 chat 没有 model-selection policy(仅当 chat 创建时 subagent-model-selection.enabled 为 true 才会记录;更早创建的 chat 不受影响)。
  3. 目标路由不在 policy 的 allowedModels 中。
  4. llm.resolveCallConfig 拒绝该路由;若仅 effort 被拒,会去掉 effort 保留路由。
  5. core DSH 冻结了执行记录(会打一次日志)。

系统提示中会追加约 90 token 的 subagent-tiering 段,说明默认行为及如何覆盖。

权衡: 子模型与父模型不同时无法复用父 prompt cache,单次 subagent 的首轮可能多付一次完整 cache write(README 提到 Anthropic 在 GenUI 移除后约 48k tokens 量级)。若子会话只有一轮调用,可能比改插件前略贵;README 称该安装上 subagent 中位数约 28 次调用,整体仍更省。

README 的动机说明(2026-09-27):某一 busy 安装上 14 天会话日志里约 70% 的 Anthropic 调用来自 subagent;在 stock ptc 下子会话无默认下沉时,按 human prompt 计 DSH 成本约为同机 Claude Code 的 2.1 倍(单次调用量级接近)。tool-subagent 的静态 agentOptions 无法表达「Opus 父 → Sonnet 子、Qwen max 父 → flash 子」这类按父路由变化的策略。

安装与启用

安装命令须使用资料原文:

dsh plugin --profile web add @lucagiftzek/dsh-subagent-tiering
# or from GitHub: dsh plugin --profile web add github:lucagiftzek/dsh-subagent-tiering
# then restart dsh web

本地开发目录也可用:dsh plugin --profile web add link:/absolute/path/to/dsh-subagent-tiering。

要求 Node 22.18 或更新;README 注明在 DSH 0.1.5 与 0.2.1 上使用。包声明 dsh.bundle,dsh plugin add 会把 bundle 记入 dsh.profile.bundles,并由 patch 插入 subagent-tiering 条目。

没有 subagent model-selection policy 时,插件不会改变任何行为——安装后务必核对前置条件。

前置条件(Needs)

  1. settings 中启用子智能体模型选择,例如:

subagent-model-selection: { enabled: true, allowedModels: [...] }

在 DSH 0.2.x 中,该 harness 设置位于条目 subagent-model-selection-settings,不会从旧版 settings.yaml 自动导入(详见仓库 docs/TROUBLESHOOTING.md)。

  1. 使用 ptc / ptc-lean 预设里带 modelSelectionSettings: true 的 tool-subagent 行(stock 默认)。

  2. adaptive-reasoning 的路由列表里不要包含 anthropic/claude-sonnet-5-5(或回退用的 claude-sonnet-5),否则会在每一步覆盖子会话的 medium effort。

典型验证方式

单元测试:

node --test test/*.test.js

端到端:新建一条 Opus 5.5 会话,让主智能体在不带 model 的情况下调用 subagent;子会话的 request/header 应出现 claude-sonnet-5-5 / medium(2026-09-29 之前为 claude-sonnet-5)。README 记录 2026-09-27 曾在生产环境验证 Opus → Sonnet,沙箱验证 Qwen max → Qwen flash;显式指定 qwen3.8-max @ low 时保持不动。

适用场景与注意

适合: 频繁用 subagent 做检索、并行子任务、长链路工具调用,且希望主会话保持高档模型、子会话自动下沉到 Sonnet / flash 等等价档,又保留主智能体显式改路由的能力。

注意:

  • 插件与 DSH 进程同权限运行;安装前请阅读 GitHub 仓库 源码与 MIT 许可证(package.json 版本 0.1.0)。
  • 自定义规则、故障排查:仓库 docs/TROUBLESHOOTING.md、docs/ERRORS.md;可让智能体加载 subagent-tiering-doctor skill(将 skills/subagent-tiering-doctor 复制到 ~/.dsh/skills/ 一次,步骤见 TROUBLESHOOTING)。
  • DSH 生态以「一切皆插件」为方向;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

经过上面的步骤,dsh-subagent-tiering 把「子智能体默认廉价同级、主智能体可覆盖」写进 pre-execute 与内置规则表,在启用 model-selection policy 的前提下降低大量 subagent 调用带来的路由成本。目录与源码:

  • 目录页:https://www.skillhub.cn/plugins/lucagiftzek/dsh-subagent-tiering
  • GitHub:https://github.com/lucagiftzek/dsh-subagent-tiering
羽毛球分组比赛记分
小程序二维码

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

Xiaoye