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 不是所有任务都适合。它最适合的,是那些可以拆开、可以分工、每一步相对独立的任务。

典型场景:内容生产流水线

比如你输入一个关键词,想自动生成一篇能发布的文章。这个过程其实可以拆成很多步:

  1. 搜索资料 — 去网上找相关内容,收集信息
  2. 筛选资料 — 去重、过滤广告、挑出最有用的 5-10 篇内容
  3. 写初稿 — 根据筛选后的材料写文章
  4. 事实核查 — 检查数据、例子、表述对不对
  5. 风格统一 — 让文章语气一致,读起来更顺
  6. 格式整理 — 统一标题、段落、列表、代码块
  7. 配图或封面生成 — 做视觉部分
  8. 人工审阅润色 — 去 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 思想的体现。

AI Agent 架构图
图片来源: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,再逐步组合;同时设计清晰的中间结果检查点,方便定位问题环节。