SubAgent 完全指南:从”一人死扛”到”团队协作”的 AI 工作流进化论
核心问题:当 AI 任务越来越复杂时,为什么单靠给 Agent 增加技能(Skill)已经不够用了?SubAgent 究竟解决了什么 Skill 无法解决的问题?
如果你已经用过 OpenClaw、Claude Code 或 Codex,可能已经注意到它们都提到了一个共同的概念:SubAgent。这不是巧合,而是复杂 AI 工作流演进的必然方向。
本文将用最直白的语言,结合外卖店的真实场景,帮你彻底搞懂 SubAgent 的本质、适用场景、优缺点,以及它与 Skill 的本质区别。
一、先从一个外卖店的故事说起
本段核心问题:SubAgent 到底是什么?为什么需要它?
想象你开了一家高端外卖店,米其林级别,相当挣钱的那种。
没有 SubAgent 的时候:一个人包办一切
店刚开业,为了省钱,只有你自己一个人。你既是老板,也是采购员、洗菜工、厨师、收银员、打包员、配送员。
你的一天可能是这样的:
-
早上去买菜 -
回来洗菜切菜 -
刚开火炒菜,顾客来结账,要去收银 -
刚收完钱,外卖平台又来单了,要赶紧打包 -
打包完还得自己送 -
送完回来,锅里的菜已经糊了,厨房差点炸了
问题不是你不够努力,而是一个人同时干太多事,迟早会乱。
这就是很多人现在用 AI 的真实状态。
主 Agent(也就是我们在工具中常用的主对话窗口)一会儿搜索资料,一会儿写内容,一会儿核对事实,一会儿改格式,一边还要记住前面说过的要求。任务一长,上下文一多,它就开始混乱、分心、漏东西,最后输出的质量直线下降。
有了 SubAgent:开始专业分工
聪明的做法是什么?不是让老板更拼,而是将工作拆解后,交由不同领域的专业员工分别执行:
| 角色 | 职责 | 对应 AI 概念 |
|---|---|---|
| 主 Agent(老板) | 统筹安排任务、验收结果 | 主对话/协调者 |
| 采购 SubAgent | 专门负责找供应商、比价格、下单补货 | 资料搜集代理 |
| 备菜 SubAgent | 负责洗菜、切菜、准备食材 | 数据预处理代理 |
| 烹饪 SubAgent | 专门负责炒菜、控制火候、保证出品 | 内容生成代理 |
| 收银 SubAgent | 处理顾客结账、核对订单、网上接单 | 接口对接代理 |
| 打包 SubAgent | 把做好的餐品分类、装盒、贴单 | 格式化代理 |
| 配送 SubAgent | 把外卖准时送出去 | 发布/部署代理 |
这样一来,每个人只做自己那一件事,谁也不会互相打扰。
这就是 SubAgent 的核心:主 Agent 用来整理需求、拆解任务,然后发送给 SubAgent 去做,做完结果拿回来给主 Agent 继续验收。
“
作者反思:我第一次理解 SubAgent 时,也以为它只是”更复杂的 Skill”。但外卖店的比喻让我意识到,Skill 是给同一个人换更好的刀,而 SubAgent 是给这个人配了一个完整的助手团队。这是质的区别,不是量的差异。
二、SubAgent 到底是什么?
本段核心问题:SubAgent 的技术定义是什么?它与 Skill 的本质区别在哪里?
简单说,SubAgent 是一个专门处理某类任务的子代理。
它不是一个普通功能,也不是简单调用一下工具。它更像是:主 Agent 把任务交给一个独立的小助手,这个小助手在自己的上下文里完成工作,然后把结果交回来。
根据官方文档的定义,每个子代理都有:
-
独立上下文:不会污染主 Agent 的记忆 -
单独提示词:针对特定任务优化的指令集 -
特定工具权限:只给它完成任务所需的工具 -
明确交付标准:输出格式和质量要求清晰
关键区别:Skill vs SubAgent
很多人容易混淆这两个概念,但它们解决的是完全不同的问题:
| 维度 | Skill | SubAgent |
|---|---|---|
| 解决的问题 | 能力问题:让 Agent 学会新本事 | 分工问题:把任务外包给专业角色 |
| 工作方式 | 在主 Agent 的上下文内执行 | 在独立上下文中执行,只返回结果 |
| 适用任务 | 轻量、规则明确、过程简单 | 重型、多步骤、过程复杂 |
| 上下文管理 | 共享主上下文 | 隔离上下文,避免污染 |
| 类比 | 给同一个人配更好的工具 | 给同一个人配一个能独立完成子任务的助手 |
一句话总结:
-
Skill 相当于给同一个人配更好的工具 -
SubAgent 相当于给同一个人又配了一个能独立完成子任务的助手
这两个不是一回事,但在实际工作中往往是搭档关系。
三、SubAgent 最适合做什么事情?
本段核心问题:什么样的任务适合用 SubAgent?什么时候用它才是”杀鸡用牛刀”?
SubAgent 不是所有任务都适合。它最适合的,是那些可以拆开、可以分工、每一步相对独立的任务。
典型场景:内容生产流水线
比如你输入一个关键词,想自动生成一篇能发布的文章。这个过程其实可以拆成很多步:
-
搜索资料 — 去网上找相关内容,收集信息 -
筛选资料 — 去重、过滤广告、挑出最有用的 5-10 篇内容 -
写初稿 — 根据筛选后的材料写文章 -
事实核查 — 检查数据、例子、表述对不对 -
风格统一 — 让文章语气一致,读起来更顺 -
格式整理 — 统一标题、段落、列表、代码块 -
配图或封面生成 — 做视觉部分 -
人工审阅润色 — 去 AI 味,检查通顺度
这种任务最怕什么?最怕所有东西都堆在同一个上下文里。
假设你的信息源覆盖多个平台:公众号 5 篇、知乎 5 篇、推特长文 5 篇、头条 5 篇、B 站 5 篇……刚开始上下文就已经很长了。
-
搜索阶段会带来一大堆杂乱信息 -
写作阶段又会出现大量草稿 -
核查阶段还会不断修改
如果全都塞给同一个主 Agent,它很容易”脑子里全是噪音垃圾”。
用 SubAgent 重构这个流程
主 Agent(协调者)
├── 搜索 SubAgent → 返回整理后的资料摘要
├── 写作 SubAgent → 返回初稿
├── 核查 SubAgent → 返回修改建议
├── 排版 SubAgent → 返回格式化文档
└── 配图 SubAgent → 返回生成的图片
主 Agent 只看每一环的结果,不看所有中间产生的垃圾过程。
最适合 SubAgent 的任务特征
| 特征 | 说明 | 示例 |
|---|---|---|
| 多步骤任务 | 需要按顺序执行多个阶段 | 代码审查、内容生产 |
| 流程型任务 | 有明确的输入输出标准 | 多语言翻译、数据清洗 |
| 职责清晰 | 每个步骤的责任边界明确 | 事实核查、格式统一 |
| 上下文隔离 | 中间过程没必要共享给主 Agent | 长文档处理、复杂数据分析 |
| 可并行 | 某些步骤可以同时执行 | 多源资料搜集、批量处理 |
具体场景包括:
-
代码审查与重构 -
内容生产流水线 -
多语言翻译与本地化 -
资料搜索与整理 -
测试、校验、格式统一 -
长流程自动化任务
一句话总结:越复杂、越能拆分、越容易被上下文污染的任务,越适合交给 SubAgent。
四、SubAgent 的优点与缺点
本段核心问题:使用 SubAgent 能带来什么好处?又会带来哪些新的问题?
最大的优点
1. 上下文更干净
这是 SubAgent 最核心的价值。
每个子代理都有自己的独立上下文:
-
搜索时产生的噪音,不会污染写作 -
写作时产生的草稿,不会干扰核查 -
核查时发现的问题,也不会把前面的上下文搅乱
主 Agent 看到的,始终是整理过的结果。
这就像老板不需要盯着后厨切了多少根葱,他只需要知道:菜做好没有,能不能上桌。
2. 更专注,结果更稳
一个 Agent 同时做五件事,和一个 Agent 只做一件事,效果通常完全不一样。
-
专门负责找资料的 SubAgent,会更像一个研究员 -
专门负责写作的 SubAgent,会更像一个作者 -
专门负责核查的 SubAgent,会更像一个审稿人
因为它们各自不会分心,所以质量通常更稳。
3. 可以并行处理
有些任务没必要排队一个个做。例如:
-
A SubAgent 在查资料 -
B SubAgent 在准备提纲 -
C SubAgent 在整理参考格式
几个 SubAgent 同时动起来,速度就会快很多。
OpenClaw 文档也把并行处理、隔离长任务作为 SubAgent 的主要目标之一。
4. 可复用性高
一旦你写好了一个好用的 SubAgent,比如”文章审查员””事实核查员””排版整理员”,以后就可以一直复用。
这和临时写提示词完全不一样。它更像你已经招好了一个老员工,下次直接派活就行。
5. 能处理更复杂的任务
很多复杂任务不是 AI 做不了,而是一个 Agent 装不下。
当任务长度、步骤、信息量都上来以后,SubAgent 往往就是突破复杂度上限的办法。
它的缺点
当然,SubAgent 也不是万能的。
1. 配置有门槛
你要告诉它:
-
它负责什么 -
什么情况下调用 -
能用哪些工具 -
最后要交付什么结果
这些如果写得不清楚,它就容易跑偏。
2. 信息交接可能丢细节
SubAgent 和主 Agent 之间,通常传递的是”任务说明”和”结果摘要”。
这很高效,但也有代价。有些关键细节,可能在交接过程中被压缩掉了。
也就是说,隔离上下文是优点,但信息压缩也是风险。
3. 调试更麻烦
如果最后结果有问题,排查起来会比较麻烦。你要去看:
-
是搜索拿错了资料? -
还是写作理解错了方向? -
还是核查漏掉了问题? -
还是排版阶段处理坏了?
链条越长,定位问题越复杂。
4. 小任务不值得上 SubAgent
如果只是改一句话、润一小段文案、改个标题,直接让主 Agent 做,通常更快。
这类小事再拆分,就像为了煮一碗泡面还专门设采购、厨师、配送三个岗位,明显过度了。
“
作者反思:我早期使用 SubAgent 时犯过一个错误:为了”炫技”,把所有任务都拆成了 SubAgent。结果一个简单的邮件回复,调用了三个子代理,调试了半小时。后来我给自己定了个规矩:先问”这个任务真的需要隔离上下文吗?”如果答案是否定的,就用 Skill 或直接让主 Agent 处理。
五、Skills 和 SubAgent 到底怎么选?
本段核心问题:有了 Skill 为什么还要 SubAgent?两者如何配合使用?
很多人刚接触时,最容易问的就是这个问题。答案是:这两个东西解决的不是同一个问题。
Skill 解决的是”能力问题”
它的作用是:让主 Agent 学会一项新本事。
比如格式检查、固定模板生成、文档整理、某类规范输出。这些都是给主 Agent 直接加能力。
适合用 Skill 的任务特征:
-
轻量 -
规则明确 -
过程不复杂 -
需要主 Agent 一直掌握上下文
Skill 更像:给同一个人配上一把更顺手的工具。
SubAgent 解决的是”分工问题”
它的作用是:把某一整块任务外包给独立专业的角色去做。
适合用 SubAgent 的任务特征:
-
重型任务 -
多步骤任务 -
中间过程很长 -
不适合把所有信息都堆在主上下文里
SubAgent 更像:直接把这项工作交给一个专门的人。
决策树:什么时候用哪个?
开始
├── 任务是否复杂、多步骤?
│ ├── 否 → 用 Skill 或直接让主 Agent 处理
│ └── 是 → 继续判断
├── 中间过程是否需要隔离?
│ ├── 否 → 用 Skill
│ └── 是 → 用 SubAgent
└── 是否需要并行处理?
├── 否 → 单 SubAgent
└── 是 → 多 SubAgent 并行
最常见的正确答案:混合使用
现实里最好的方案,往往不是二选一,而是一起用。
典型架构:
-
主 Agent:负责整体协调 -
轻量规则能力:交给 Skills(如格式检查、简单转换) -
重型独立任务:交给 SubAgent(如资料搜集、内容生成、代码审查)
也就是说:Skill 负责补能力,SubAgent 负责分工执行子任务。
两者不是竞争关系,而是搭档。
六、主流工具中的 SubAgent 支持
本段核心问题:哪些主流 AI 工具支持 SubAgent?它们的使用方式有何不同?
SubAgent 的概念已经被多个主流 AI 开发工具采纳,只是实现方式略有不同:
| 工具 | SubAgent 支持 | 特点 |
|---|---|---|
| OpenClaw | 原生支持 Sub-Agents,还有 ACP Agents | 可视化编排,适合构建复杂工作流 |
| Claude Code | 支持 Agent Teams | 代码场景优化,适合开发工作流 |
| Codex | 支持 SubAgent | 与 Claude Code 可配合使用 |
一种有趣的玩法:用 Claude Code 来规划任务,然后让 Codex 来执行具体的编码任务。这种”规划-执行”分离的模式,正是 SubAgent 思想的体现。
图片来源:Claude Code 官方文档
图片来源:Department of Product
七、总结:从”会做事”到”会分工”
本段核心问题:理解 SubAgent 后,我们应该如何改变使用 AI 的方式?
很多人第一次接触 AI 工作流时,会先爱上 Skill。这很正常,因为 Skill 很直观:装上就能用,马上见效。
但当任务越来越复杂时,你很快会发现,只给 AI 加技能还不够。因为真正的问题,往往不是”它不会做”,而是”它什么都在自己做”。
这时候,SubAgent 的价值就出来了。
它的本质,不是多一个插件,而是让 AI 从”一个人死扛”变成”多人分工协作”。
核心认知升级:
| 阶段 | 思维模式 | 典型做法 |
|---|---|---|
| 初级阶段 | 让 AI 做更多事 | 不断加 Skill,让主 Agent 什么都干 |
| 进阶阶段 | 让 AI 更专业地做事 | 用 SubAgent 拆分任务,各司其职 |
| 高级阶段 | 让 AI 学会分工 | 主 Agent 只做协调,专业事交给专业 SubAgent |
“
作者反思:写这篇文章的过程中,我自己也在反思。刚开始接触 AI 时,我总觉得”一个强大的 Agent 应该什么都能做”。后来才明白,真正的强大不是”全能”,而是”会分工”。就像一家成功的餐厅,靠的不是一个超级厨师,而是一个配合默契的团队。SubAgent 让 AI 从”超级个体”进化成了”超级团队”。
如果你已经开始接触 OpenClaw,也已经熟悉 Skill,那下一步最值得理解的,可能就是 SubAgent。
因为从某种意义上说,真正成熟的 AI 工作方式,不是让一个 Agent 拼命干活,而是让它学会把合适的工作,交给合适的角色。
会做事很重要。会分工,才是真正开始走向高级玩法。
实用摘要 / 操作清单
快速判断是否需要 SubAgent:
-
[ ] 任务是否涉及 3 个以上的独立步骤? -
[ ] 中间过程是否会产生大量”噪音信息”? -
[ ] 是否希望主 Agent 保持上下文干净? -
[ ] 是否有明确的”输入-处理-输出”边界? -
[ ] 是否需要并行处理多个子任务?
如果以上有 3 个以上回答”是”,考虑使用 SubAgent。
设计 SubAgent 的 checklist:
-
[ ] 明确定义该 SubAgent 的唯一职责 -
[ ] 设计清晰的输入格式和交付标准 -
[ ] 限制其工具权限(只给必要的) -
[ ] 设计简洁的结果返回格式 -
[ ] 预留调试和错误处理机制
一页速览(One-page Summary)
SubAgent 是什么:专门处理某类任务的独立子代理,有自己的上下文、提示词和工具权限。
为什么需要它:当任务复杂到会产生上下文污染、需要专业分工时,单靠 Skill 和主 Agent 已经不够。
什么时候用:
-
多步骤、流程型任务 -
需要上下文隔离的场景 -
可以并行处理的子任务 -
需要复用的专业角色
与 Skill 的区别:
-
Skill = 给一个人更好的工具 -
SubAgent = 给这个人配一个专业助手
主流支持:OpenClaw、Claude Code、Codex 都支持 SubAgent,只是实现方式不同。
核心原则:不是越多越好,而是要用在真正值得拆分的任务上。
常见问答(FAQ)
Q1: SubAgent 和普通的函数调用有什么区别?
A: 函数调用是一次性的工具使用,而 SubAgent 是一个完整的代理实例,有自己的上下文、记忆和决策能力,可以处理更复杂的子任务。
Q2: 我的任务很简单,需要用 SubAgent 吗?
A: 不需要。如果只是改一句话、润色一段文案,直接用主 Agent 或 Skill 更快。SubAgent 适合复杂、多步骤、需要上下文隔离的任务。
Q3: SubAgent 之间可以互相调用吗?
A: 技术上可以,但建议保持层级清晰:主 Agent 协调多个 SubAgent,SubAgent 之间尽量避免直接通信,以降低复杂度。
Q4: 如何设计一个好的 SubAgent?
A: 关键是”单一职责”:给它一个明确的任务边界、清晰的输入输出格式、必要的工具权限,以及明确的交付标准。
Q5: SubAgent 会增加多少成本?
A: 会有额外开销,因为每个 SubAgent 都涉及独立的 API 调用和上下文管理。但对于复杂任务,提升的质量和稳定性通常值得这个成本。
Q6: 所有 AI 工具都支持 SubAgent 吗?
A: 不是。目前 OpenClaw、Claude Code、Codex 等较新的工具支持较好,传统单轮对话工具通常不支持。
Q7: SubAgent 和”专家级 Agent”有什么区别?
A: 专家级 Agent 强调专业能力,Workflow 级 SubAgent 强调流程协作。实践中两者可以结合:既专业又会协作的 SubAgent 是最佳实践。
Q8: 如何调试多 SubAgent 的工作流?
A: 建议分阶段验证:先单独测试每个 SubAgent,再逐步组合;同时设计清晰的中间结果检查点,方便定位问题环节。
