在 DeepSeek Harness (DSH) 的开发实践中,当主 agent 派出一个后台子 agent 处理耗时任务时,默认的 send_message 行为是将指令放入队列,等待子 agent 完成当前轮次甚至后续轮次。如果需要在中途干预、纠偏或下达新指令,只能等待或终止任务。这就需要一个能直接介入子 agent 当前轮次的机制。
steer_subagent 是由 Momojie-S 开发的一个 DSH 插件,它向后台子 agent 的当前轮(step-boundary)插入新指示,或强制重启当前轮。它不改变 send_message 的默认排队行为,而是提供了一种更精细的干预手段。
核心功能¶
该插件为模型提供 steer_subagent 工具,支持以下行为:
- 插话模式(默认):子 agent 完成当前步骤后,立即读取并执行新指示,已完成的步骤保留,剩余步骤按新指示走。
- 打断模式:调用
steer_subagent时指定mode: "turn",子 agent 会立即停止当前轮次,新指示作为全新一轮开始。 - 保留步骤:无论是插话还是打断,已完成的步骤均不回滚。
- 权限限制:仅允许父 agent 插话自己的直接后台子 agent,更深层后代仍需通过
interrupt_agent处理。 - 离线回退:目标子 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。