Subagents and clean handoffs
Goal: split big work into small agent roles without losing the plot.
Best for: when one mega-prompt fails and you want “researcher then writer” without chaos.
A subagent is just another focused pass: one role, one Done checklist, one output. A handoff is how you pass that output to the next role without re-explaining everything.
Beginners: you can fake subagents in one chat—label sections Research Agent and Writer Agent—or use product features that spawn helpers. The idea matters more than the brand name.
Why beginners skip this
One mega-agent for everything feels efficient until handoffs lose the goal and open questions. Split roles only when each has a written Done and a human checkpoint between them.
Habit this week (Asia/Shanghai): draw two named roles with input / Done / forbid lines; run role 1 only today and date the handoff note.
Step 1 — Split into 2–3 roles max
Each role needs: name, Done output, and what it must NOT do. Example: Researcher finds sources; Writer never invents links; Checker only attacks claims.
Goal: Split this job into ≤3 subagent roles.
Job: [job]
For each role: name · Done output · must-not · handoff format
Keep it beginner-simple.
Example
Filled prompt
Project: Q4 launch FAQ (EN).
Split into 3 roles: gather product facts → draft FAQ → critique for invented SLAs.
Write handoff baton template (inputs, Done, unknowns).
Today run only role 1; leave written baton for role 2.
What good output looks like
- ≤3 roles
- Researcher output is a source list, not the full article
- Writer must-not includes inventing URLs
- Pass/fail dated (Asia/Shanghai) sits next to the artifact
Step 2 — Define the handoff package
A handoff is a short package: goal reminder, Done so far, artifacts, open questions. The next role should not need the whole chat history.
Write a handoff template from Researcher → Writer.
Include: goal · sources table · quotes allowed · tone · open questions · forbidden actions.
Example
Filled prompt
Project: internal RFC on rate limits.
Roles: gather current limits from repo docs → draft RFC outline → critique for invented numbers.
Handoff baton must list Unknowns.
Today: role 1 only.
What good output looks like
- Done boxes for “split big work into small agent roles without losi” are explicit and checkable
- Allow-list tools only; never-do lines honored
- Stops before send/delete without human gate
- Pass/fail: Plan→Act one→Check visible for agents-subagents-and-handoffs
Step 3 — Run roles in order; do not parallelize yet
Beginners: run Researcher to Done, you check, then Writer, you check. Parallel subagents come later.
You are the [Role] only.
Handoff package:
[paste]
Done checklist: [paste]
When finished, output the handoff package for the next role—not a chatty essay.
Example
Filled prompt
Scene: real work this week (live artifact open).
You are the Researcher only. Done: 3 sources with title+url+date+why-trusted. Next role=Writer.
Constraints: no invented facts; stop before send/delete; label Unknowns.
What good output looks like
- Three roles max with one-line Done each
- Handoff baton includes unknowns
- Only role 1 runs today
- Human gate before publish remains
Save this card
Card: two named roles · handoff = input / Done / open / forbid · human gate between roles.
1. What I shipped: ___ 2. What I refused: ___ 3. What I will never-do again: ___ (date: Asia/Shanghai)
- [ ] Tools/writes paused
- [ ] Refuse-line dated
- [ ] Artifact path saved
- [ ] Next link chosen (or stop)
Before you start
Write Done (checkboxes) and the human gate on paper before any run for “split big work into small agent roles.” Allow-list tools; leave send/delete off. Guide: agents-subagents-and-handoffs. If you only have a blank practice box, stop and fetch the real job first.
- Goal in one line: ___
- Allowed tools: ___
- Forbidden: ___
- Human approve needed for: ___
How to use this week
This week: split one multi-step job into two named roles with a written handoff (inputs, Done, red lines). Run it once with a human checkpoint between roles on a live artifact—not a blank demo. Write one refuse-line and date the note (Asia/Shanghai). If you only skimmed agents-subagents-and-handoffs, put 25 minutes on the calendar and redo once.
Pass Done explicitly
Handoffs that drop Done create zombie agents. Permissions travel with the job.
Ship the practice
Close the tab only after Practice now is done on a real artifact.
Do not bookmark-only
Finish Practice now, then tick this guide on your path. Titles unread are not skills.
Close the loop
After Practice now, write one line: what you will refuse next time. That line is the habit.
Check the unknown path
What should the model do when a field is missing—null, TBD, or ask you? Write it once in Boundaries.
Red flag
Handoff that only says “continue”; red lines disappearing in the child; child widening write scope—reject the handoff.
Pitfalls
| Pitfall | Fix |
|---|---|
| 10 micro-agents on day one | Start with 2 roles |
| Handoff = entire chat log | Pass a short package |
| Writer inventing sources Researcher never found | Checker role or you verify links |
Example
Filled prompt
Temptation: skip the habit for agents-subagents-and-handoffs to “save five minutes.”
Job still: split big work into small agent roles
Do the smallest correct pass: Done visible · one checkable artifact · Unknowns labeled [?].
Boundaries: draft only; no silent send; no invented metrics.
Return: the artifact + the refuse-line you said aloud.
What good output looks like
- Names the shortcut you refused (specific to agents-subagents-and-handoffs)
- Still delivers a checkable artifact for “split big work into small agent roles”
- Unknowns labeled; draft-only respected
- Pass/fail: refuse-line written and dated (agents-subagents-and-handoffs #4)
Practice now
Live card: run one agent checklist item on a real job for “Subagents and clean handoffs”—artifact path on Save (Asia/Shanghai).
Draw three boxes for one real project. Name each role Done in one line. Run only role 1 today; hand a written baton to yourself for role 2 tomorrow.
Today card (copy) — agents-subagents-and-handoffs: 1. Artifact I will produce: ___ 2. Pass/fail check: ___ 3. Refuse-line if tempted to skip verify/send: ___ (date: Asia/Shanghai) 4. One never-do from this guide: ___
- [ ] Artifact path written
- [ ] Refuse example would say "yes"
- [ ] Dated Asia/Shanghai
One sentence takeaway
Split work into named roles with written handoffs and a human gate between them. This week: run one two-role handoff and date it (Asia/Shanghai).
Next
Human-in-the-loop · Research agent pattern · Plan → act → check · Team playbook · Logging what matters
Pair with today: open the first Next link (agents-human-in-the-loop-checkpoints) only after you dated a refuse-line for this guide (Asia/Shanghai).
子智能体与干净交接
目标: 把大活拆成小角色,又不把主线弄丢。
适合: 一条超级长提示词搞不定、想要「先调研再写作」又不想乱成一团时。
子智能体只是又一次聚焦的工作:一个角色、一份完成标准、一份产出。交接则是把产出传给下一角色,而不用把整段聊天重讲一遍。
初学者:可以在同一对话里用「调研智能体 / 写作智能体」分段模拟。先懂概念,品牌名其次。
为什么新手跳过
一个巨型 agent 包办一切,看起来省事,交接时目标与未决问题却丢光。拆角色可以,但每个角色要有书面 Done,角色之间留人工卡点。
本周习惯(Asia/Shanghai):画出两个具名角色(输入/Done/红线);今天只跑角色 1,并把交接条注明日期。
步骤 1——最多拆成 2–3 个角色
每个角色要有:名字、完成产出、以及绝不能做什么。
目标:把任务拆成 ≤3 个子智能体角色。
任务:[任务]
每个角色:名字 · 完成产出 · 绝不能 · 交接格式
实例
填好的提示词
项目:Q4 上线 FAQ(英文)。
拆成 3 角色:收集产品事实→起草 FAQ→挑刺编造的 SLA。
写交接棒模板(输入、Done、未知)。
今天只跑角色 1;书面交接留给角色 2。
像样的输出大概长这样
- 角色 ≤3
- 调研产出是来源列表
- 写作者绝不能编造网址
- 贴合这个填例——不是空泛打气
- 相关则拒绝编造事实或静默发送
步骤 2——定义交接包
交接是一个短包:目标、目前完成、产物、未决问题。
写调研员 → 写作者交接模板:目标 · 来源表 · 可用引用 · 语气 · 未决问题 · 禁止动作。
实例
填好的提示词
场景:真实工作(打开活材料)。
项目:限流内部 RFC。
角色:从仓库文档收集现行限制→起草 RFC 大纲→挑刺编造数字。
交接棒必要列出未知。
今天:只跑角色 1。
约束:不编造事实;发送/删除前停下;未知处标「未知」。
像样的输出大概长这样
- 一屏能看完
- 来源有占位字段
- 禁止编造引用
- 贴合这个填例——不是空泛打气
- 相关则拒绝编造事实或静默发送
步骤 3——按顺序跑;先别并行
调研跑到完成 → 你检查 → 再写作 → 你再检查。
你只扮演【角色】。交接包:[粘贴]。结束后输出给下一角色的交接包。
实例
填好的提示词
场景:本周真实活(打开真材料)。
你只做研究员。Done:3 个来源(标题+url+日期+为何可信)。
下一棒交给起草者——不要写最终 RFC。
交接棒必要列出出未知项。
像样的输出大概长这样
- 守住角色
- 结构化交接结束
- 不提前写完整博文
- 贴合这个填例——不是空泛打气
- 相关则拒绝编造事实或静默发送
保存这张卡
卡片:两个具名角色 · 交接 = 输入/Done/未决/红线 · 角色之间留人工卡点。
开始前
打开你真正会用的账号/项目。准备好与「子智能体与干净交接」相关的真实材料(不要空白练习框)。
默认姿态:在人确认发送/写入之前只出草稿。授予新工具前,先写一条带日期的拒做句(Asia/Shanghai)。
- 一句话目标:___
- 允许的工具:___
- 禁止:___
- 需要人批准:___
本周怎么用
本周一次多步任务:主智能体只派生子任务,交接用四行模板,收回时核对禁止项仍在。禁止项丢失就驳回续跑。过/不过注明日期(Asia/Shanghai)。
明确传递完成标准
丢掉完成标准的交接会制造僵尸智能体。权限跟着任务走。
把练习做完
实卡:用「子智能体与干净交接」对真实任务跑一条智能体清单——产物路径进 Save(Asia/Shanghai)。
今天把「子智能体与干净交接」练完:真实材料、过/不过、一句永不做。注明日期(Asia/Shanghai)。
不要只收藏
做完「现在就练一次」,再在路径上打勾。没练过的标题不是技能。
闭环
「现在就练一次」后写一行:下次你要拒绝什么。那一行才是习惯。
检查未知路径
字段缺失时模型该怎样——null、TBD,还是问你?在边界里写一次。
红旗
交接只说「继续」;禁止项在子任务中消失。子智能体扩大写权限——拒绝。卡上写不清就不继续——先补检查项再跑。
常见坑
| 坑 | 改法 |
|---|---|
| 第一天就上 10 个微智能体 | 从 2 个角色开始 |
| 交接 = 整段聊天记录 | 传短包 |
| 写作者编造调研员没找过的来源 | 加检查角色或你亲自点开链接 |
实例
填好的提示词
任务:split big work into small agent
场景要点:Agent 运行前 Done/门闸写好;练习编号 4/4。
边界:仅草稿;未知 [?];禁止悄悄发送;禁止编造指标。
返回:可检查产出 + 过/不过理由一行。
像样的输出大概长这样
- 约束贴着「子智能体与干净交接」与 agents-subagents-and-handoffs
- 未知标 [?];不编造负责人/数字
- 不可逆动作前停下
- 一分钟内能打过/不过(agents-subagents-and-handoffs #4)
现在就练一次
今天写一份四行交接并让另一会话续跑。过/不过与永不做注明日期(Asia/Shanghai)。只收藏标题算失败。
今日卡片(可复制)— agents-subagents-and-handoffs: 1. 我要产出的成品:___ 2. 通过/失败标准:___ 3. 若想跳过核验/发送的拒做句:___(日期:Asia/Shanghai) 4. 本篇一条永不做:___
- [ ] 成品路径已写
- [ ] 拒做例句会说「可以」
- [ ] 已标注 Asia/Shanghai 日期
一句话带走
大活拆成具名角色,交接写清,角色间留人工卡点。本周跑通一次双角色交接并注明日期。
下一步
人在回路 · 研究型 Agent 模式 · 计划 → 行动 → 检查 · 团队手册 · 记录真正重要的事
今日搭配:先为本篇写上拒做句日期(Asia/Shanghai),再打开下一步里的第一篇(agents-human-in-the-loop-checkpoints)。
← Back to home · Learn · Tools · Compare · Start