steer_subagent:向后台子 agent 的当前轮插入指示

在 DeepSeek Harness (DSH) 的开发实践中,当主 agent 派出一个后台子 agent 处理耗时任务时,默认的 send_message 行为是将指令放入队列,等待子 agent 完成当前轮次甚至后续轮次。如果需要在中途干预、纠偏或下达新指令,只能等待或终止任务。这就需要一个能直接介入子 agent 当前轮次的机制。

steer_subagent 是由 Momojie-S 开发的一个 DSH 插件,它向后台子 agent 的当前轮(step-boundary)插入新指示,或强制重启当前轮。它不改变 send_message 的默认排队行为,而是提供了一种更精细的干预手段。

核心功能

该插件为模型提供 steer_subagent 工具,支持以下行为:

  1. 插话模式(默认):子 agent 完成当前步骤后,立即读取并执行新指示,已完成的步骤保留,剩余步骤按新指示走。
  2. 打断模式:调用 steer_subagent 时指定 mode: "turn",子 agent 会立即停止当前轮次,新指示作为全新一轮开始。
  3. 保留步骤:无论是插话还是打断,已完成的步骤均不回滚。
  4. 权限限制:仅允许父 agent 插话自己的直接后台子 agent,更深层后代仍需通过 interrupt_agent 处理。
  5. 离线回退:目标子 agent 不在线时,自动走与 send_message 相同的唤醒/冷恢复路径,FIFO 顺序不变。

安装与配置

确保 DSH 版本满足要求(>= 0.1.0-rc.7,已验证至 0.1.1-rc.2),执行安装命令:

dsh plugin --profile web add github:Momojie-S/dsh-subagent-steer

安装后,可以通过修改 cordis.patch.yml 覆盖配置项 toolName(默认为 steer_subagent)来调整模型可见的工具名。

典型用法

在主 agent 派出慢速后台子 agent 的场景中,可以在其运行中途插入指示。例如,让子 agent 从 1 数到 12,每步等 4 秒,在数到 3 左右时插入指示:

steer_subagent subagent_id: <id>
  message: 当前步完成后立即停止计数,汇报你完成到第几步,并逐字引述本条指示

验证结果应显示子 agent 停在第 3 步左右,引述了指示,且剩余的 4~12 步未执行。

适用场景与注意事项

该插件适合需要精细控制执行流或在中途进行纠偏的场景。但在使用前需注意以下事实:

  • 版本兼容性:插件依赖 ctx.subagents.followup 服务。DSH 0.1.2-rc.1+ 已移除该服务,且官方 send_message 已原生覆盖同等能力。因此,该插件已于 2026-09-05 标记为已废弃,在 0.1.2-rc.1+ 环境中不可用。
  • 运行环境:插件仅运行在 host 半部,无浏览器资源,支持 Windows/Linux。
  • 一次性子 agent:如果一次性子 agent 在读到插话指令前就已跑完任务,插话会随收件箱清理被丢弃,无法生效。
  • 安全性:插件为 MIT 许可证,请自行审查源码后再部署。

该工具通过 steer_subagent 实现了对后台子 agent 的即时干预,适合需要精细控制执行流或中途纠偏的场景。由于已废弃,建议在新环境中直接评估官方 send_message 的能力或寻找替代方案。详见 GitHub。

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

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

小夜