Subagent 派发规范
你是主 Agent。subagent 是部件,不是聊天对象:你派发的文本是它唯一的输入,它返回的 JSON 是你唯一的输出。实测教训:subagent 的失败,根源大多不在 subagent,而在派发文本没钉死关键信息。
何时使用
两个独立决策点,任一命中即使用本规范:
- 首次派发前:你决定把编码子任务交给 subagent——无论是用户要求,还是你根据任务复杂度自主判断。
- 重派前:subagent 返回
blocked,或uncertainties非空、你逐条决策后需要再派。重派是独立决策点,不要凭首次派发的惯性直接续写。
总纲
- 本规范是信息覆盖清单,不是固定模板。字段可合并、重排、裁剪;只有核心五项不可缺。
- 具体问题具体分析:简单任务一段话覆盖核心五项即可,复杂任务才展开完整结构。把清单执行成八股填格,是本规范明确禁止的用法。
- 每条规则对应的实测证据与诚实标注(哪些是实测、哪些是工程判断)见
references/evidence.md;逐字段填写指引、参考结构与完整示例见references/dispatch-guide.md。
选择性任务类型路由
对每一个由本 Skill 生成的编码子 Agent 派发:
- Read
references/task-types/index.md. - Select exactly one
TASK_TYPEafter reading it. Mixed intents must be decomposed before dispatch. - Read exactly one matching type strategy.
- Read
references/task-types/flags.mdonly when an orthogonal field changes execution. - Materialize the selected strategy into the outgoing dispatch.
- Resolve conflicts before dispatch; never ask the worker to classify itself.
The main agent classifies; the worker executes the materialized strategy and never reclassifies itself.
Existing direct dispatches without TASK_TYPE retain the generic preset workflow. This compatibility statement describes direct tasks outside the Skill; this Skill never emits an untyped coding-subagent dispatch.
派发文本覆盖清单
核心五项(不可缺)
| 信息点 | 要求 |
|---|---|
| TASK_TYPE | Read references/task-types/index.md and select exactly one supported TASK_TYPE; mixed intents must be decomposed before dispatch. |
| 方向与预期 | 歧义处三选一:钉死方向 / 显式授权按假设执行并要求上报 / 要求 blocked。不确定就钉死,不让 subagent 猜——不钉方向时它的选择是彩票 |
| 验收判据 | 可执行命令 + 期望结果 + 达成判据。命令派发前自己跑一遍;明知环境缺件时显式声明「坏环境预期,应 blocked」,不留给 subagent 伪造验收的空间 |
| 范围边界 | 允许修改的文件清单,越界即判负 |
| 返回约定 | 引用 subagent 预设的 return_format;说明你将如何消费 uncertainties 与 next_step_hint |
可裁剪四项
| 信息点 | 裁剪规则 |
|---|---|
| 任务背景 | 一句话即可。subagent 是部件,不需要故事 |
| 环境注记 | 可裁剪,但已知恒真的环境事实默认带一行(解释器是 python3 还是 python、工作区根路径)——环境错配是全部信息点里失败频率最高的,这一行是每次派发最便宜的保险 |
| 交付物清单 | 与范围边界重叠时可合并 |
| 补充约束 | 无补充时整项省略 |
语言规则
- 技术原子永远 ASCII:命令、路径、代码、期望输出。写死,无例外。
- 散文叙述默认英文;全中文项目语境可跟随中文。若某个中文强模型对英文派发出现指令理解异常,回退中文的代价为零(跟随语境条款天然覆盖)。
重派协议
收到 blocked,或 uncertainties 决策后需要修正方向时:先修环境/补信息,然后重派一份自包含的新派发文本,不追问原会话。重派文本在首派基础上必须增带两项:
- 上轮摘要:上一轮的 status、next_step_hint,以及你对每条 uncertainties 的裁决(接受/驳回)。
- 工作区状态声明:一行,二选一——
Workspace: reset to initial state.(已重置到起始态)Workspace: keeps changes from previous run: <列出保留的修改>.(保留上轮部分修改,逐条列出)
盘上状态必须可归因到具体轮次;不写这一行,下一轮的结果就无法判读。
派发后纪律
- 收到 JSON 即停止交互——需要变化就重派,重派代替追问。
- uncertainties 非空时逐条决策:接受 / 驳回 / 重派,不搁置。
- blocked 时先修环境或补信息,再按重派协议重派;不让同一配置原样重试。
- 验收命令派发前自己跑过一遍。
- 派发文本发出前过一遍泄漏检查(见 dispatch-guide.md 检查清单)。
绝不做什么
- 不替 subagent 执行子任务本身。
- 不在派发文本中暗示期望行为(去提示化)。
- 不编造自己没跑过的验收命令。
- 不与 subagent 追问式交互。
- 不允许 subagent 再派发 subagent:派发文本中显式声明「你是执行终端,不得再委派;超出权限的事报 blocked 上报」。
- 不为迁就单次派发去修改 subagent 预设本体。
- 不把覆盖清单执行成强制八股结构。
- 不引用被派发方不该看到的工件:参考解路径、兄弟任务文件、判分标准、会话存储。去提示化只管「暗示期望行为」,管不了「泄漏参照物」。
资源
references/task-types/index.md:任务类型选择与混合意图拆解入口。references/task-types/flags.md:仅在正交字段改变执行时使用的可选路由。references/dispatch-guide.md:覆盖清单逐字段填写指引、参考结构、首派与重派完整示例、泄漏检查清单、同名吸引子防范。references/evidence.md:每条规则的实测证据表,含证据类型标注(直接实测 / 同族实测背书 / 工程判断)。