读完这一节,你会搞懂子 Agent(Sub-Agent)是什么、什么时候用,以及怎样用 /subagents spawn 或工具 sessions_spawn 派一个「后台小助手」去干活,等它跑完再把结果报回当前对话;还能用不同模型或不同 Agent 做并行研究、分工,主助手不卡住。
子 Agent(Sub-Agent)是一次在后台跑的助手会话:由你当前对话里的主助手(或你本人)发起,在单独的一个会话里执行你给的任务,跑完后把结果「汇报」回你当前这条对话里。
可以把它想成:主助手在跟你聊天,你或主助手说「去查一下某件事、算一下某笔账」,主助手就派一个小分身去专门做那件事;小分身在自己的会话里干活,不占着你当前对话;干完了会把结论或摘要发回来,主助手(或你)再根据结果继续聊。
适合用的场景举例:
子 Agent 有自己的会话(存在 agent:<agentId>:subagent:<uuid> 这种 key 下),和主会话隔离;默认不会拿到「查别的会话、派新的子 Agent」这类会话工具,避免乱套。跑完会通过 announce(汇报)把结果发回发起方。
在支持斜杠命令的渠道(如 Control UI、部分 IM)里,你可以直接发:
/subagents spawn main 帮我把这段需求整理成三条用户故事,每条一两句话
或指定用哪个 Agent、换模型:
/subagents spawn coding 用 Python 写一个读 CSV 并求列平均的函数 --model anthropic/claude-3-5-haiku
main、coding。这条命令是非阻塞的:发出去后立刻返回一个 run id,子 Agent 在后台跑;跑完后会有一条汇报消息发回当前对话(结果摘要、状态、简单统计)。你可以在等待时继续跟主助手聊别的事;想看子 Agent 的详细输出,可以用:
/subagents list — 看当前会话派出的子 Agent 列表与状态/subagents log <id> — 看某次的日志/subagents info <id> — 看某次的元信息(状态、会话 key、 transcript 路径等)/subagents kill <id> — 提前结束某次子 Agent主助手在回复过程中也可以自己派子 Agent,用的是工具 sessions_spawn(由模型在推理时调用)。参数里会带:
派出去后,子 Agent 在后台跑;跑完会通过 announce 把结果注入回主助手的上下文,主助手再根据结果继续回复你。所以你可以对主助手说「你派个人去查一下 X,查完再总结给我」,主助手就会在合适的时机调 sessions_spawn,等子 Agent 回报后再总结。
谁可以被派:默认只允许派到当前同一个 Agent;若你配了多个 Agent(如 main、coding、legal),可以在配置里用 agents.list[].subagents.allowAgents 放开(例如 ["*"] 表示允许派到任意已配置的 Agent),这样主助手才能把任务派给「法务 Agent」等。
每个子 Agent 都是一次完整对话,会单独消耗 Token。若你经常派子 Agent 做杂活,可以:
在 /subagents spawn 或 sessions_spawn 里传 model 可以单次覆盖,适合「这一趟用 Haiku」「那一趟用 Sonnet」的灵活用法。
Q:派出去后没看到汇报?
汇报是尽力而为的:若 Gateway 中途重启或异常,未完成的 announce 可能丢失。正常情况下跑完会有一条结果消息;可用 /subagents list 看状态,用 /subagents log <id> 看该次输出。
Q:能派到「法律」「会计」那种别的 Agent 吗?
可以,但要先在 agents.list 里配好那个 Agent(见 3.1),再在该主助手的配置里设 subagents.allowAgents,把那个 Agent 的 id 加进去(或 ["*"] 允许所有);spawn 时写那个 agentId 即可。
Q:子 Agent 默认能用哪些工具?
默认拥有除会话类(sessions_list、sessions_history、sessions_send、sessions_spawn)以外的工具;具体可通过 tools.subagents.tools.allow/deny 再细调。详见官方 Sub-Agents。
Q:可以子 Agent 再派子 Agent 吗?
可以,但需在配置里把 agents.defaults.subagents.maxSpawnDepth 设为 2 或更大(默认 1);深度 2 时适合「主助手 → 协调子 Agent → 多个干活子 Agent」的模式。详见官方文档 Nested Sub-Agents。