Anthropic:谨慎使用子 Agent
来源:微信公众号 HiFox AI · 原文链接

子 Agent 越堆越多,什么时候该收回主循环?
在 Applied AI 团队,当我们帮一批企业把 Agent 跑起来之后,得出了一个不太舒服的结论:很多子 Agent,其实没必要存在。
Claude Platform 上不少 Agent 都用了子 Agent——多 Agent 研究系统就是一个。那问题来了:为什么现在反过来劝人少用?子 Agent 到底在哪种场景才划算?并回主循环,质量真的会掉吗?
这篇文章会讲我们对多个企业部署的横向对比,以及把子 Agent 迁回主循环的完整路径。
先给结论:一个配了 Skills 的单 Agent,质量上经常同时打赢「一段提示词包打天下」和「拆成一堆子 Agent」两种方案,单任务成本、延迟往往还更低。有客户把多 Agent 编排改回单循环,端到端快了约 2 倍。
但这不是一篇"反子 Agent"的文章。要改的不是"用不用",而是"按什么拆"。读到最后你会发现,这件事一半是架构问题,一半是组织问题。
- 原文:Building agents: When to fold subagents into your main agent loop
- 链接:https://claude.com/resources/articles/building-agents-when-to-fold-subagents-into-your-main-agent-loop
- 作者:Diane Sarkis(Anthropic 技术团队成员)
构建 Agent:何时将「子 Agent」折叠进「主 Agent」循环中
在 Claude 平台上构建智能体时,少用子智能体,改用渐进披露的上下文和工具,可以在提升质量的同时降低成本和延迟。下面讲什么时候该做这种迁移,以及怎么迁。
如果你已经在 Claude 平台上构建了包含多个子智能体的智能体,可以用我们的迁移工具包逐一检查,看哪些适合折叠进主智能体循环。它会运行一套引导式工作流,识别你正在使用的模式、评估替代方案,并验证哪种做法效果最好。工具包附带一个演示,可以先在模拟系统上试跑,再用于你自己的智能体。
子智能体——拥有独立上下文窗口、工具和指令、由一个协调者统一调度的智能体——是智能体设计的核心组件。它擅长验证、并行工作以及按模块划分权限。我们自己在 Claude 平台上构建的许多智能体也用到了子智能体,比如我们的多智能体研究系统。
不过,Applied AI 团队最近发现了一种模式:一批企业智能体部署在把路由器、规划器和领域子智能体折叠进主智能体循环之后获益。在我们对多个企业部署的对比中,一个配了 Skills 的单智能体在质量上经常同时胜过「一条提示词包揽一切」的设计和子智能体设计,而且单个任务的成本和延迟往往更低。
比如,有一家公司发现,其面向客户的智能体里的十几个专家子智能体,让始终贴合品牌调性的体验难以维持,还增加了拖累用户体验的延迟。
我们还经常看到遵循一条熟悉路径的智能体方案:先是一个意图分类器,再是一条固定的多步推理流水线、按用户群体划分的桶、各自独立的推荐分支,最上面再叠一个多智能体编排器。
对于这类方案,我们给出的反馈通常是:这些结构里的大部分,做的都是模型已经不再需要别人替它做的事;而一份清晰的系统提示词、4–5 个轻量的数据工具,再加上严格的输出护栏,就能覆盖大部分用例。

需要说明的是,子智能体仍有它的用武之地,研究前沿也不例外。以下情况适合使用:
- 单个智能体循环因上下文膨胀而出现可测量的性能下降;
- 多个任务需要并行处理,每个任务都要一个全新的上下文窗口,任务完成后即可丢弃;
- 单个智能体选不准合适的工具,或系统提示词里存在相互冲突的指令。
但我们太常看到企业给每个团队或每种问题类型配一个子智能体,智能体架构于是成了组织架构图的翻版(这正是康威定律在起作用)。
本文结合我们在大型组织中构建智能体积累的最佳实践,讲一讲什么时候应该考虑把子智能体折叠进主智能体循环。
大型组织构建智能体的常见失败模式
公司常常想构建一个把多种产品和能力整合进单一客户界面的智能体。
通常每项能力都由一个独立团队负责,于是公司的做法是先让各团队各自构建自己的智能体,再由一个中央平台团队在上面搭一个编排器。这会形成若干种结构,包括「编排器—子智能体」,或者「单个智能体 + 若干以 MCP 工具形式暴露的特定智能体」。
这看起来是最简单的方案,但会立刻带来以下几方面的复杂性:
- 上下文管理:你需要决定智能体之间交换哪些上下文,而细节往往就在来回交接中丢失。
- 子智能体泛滥:每个团队都发布自己的子智能体,公司最终会得到上百个职责重叠的子智能体,既没有强制统一的标准,也没有明确的负责人。
- 缝合怪提示词:每个团队都往系统提示词里加一句话,结果是规则相互矛盾、没有统一的声音。
- 未经审核、过度局部化的评估:人人都为子任务加上过度优化的评估,整套评估却没有人负责维护,管理层只能基于被稀释的、过度局部化的分数做决策。
- 延迟:多智能体架构的复杂性会带来延迟。有一位客户曾把他们的多智能体运行时框架与单智能体循环做对比,后者的运行速度大约是前者的两倍。
使用带渐进披露的智能体循环
上面描述的「编排器—子智能体」设计,对于协调跨团队构建的专家来说是合理方案;但更有效的做法往往是通过 Skills 渐进披露上下文、通过工具搜索渐进披露工具。也就是说,智能体一开始只看到 Skill 和工具的简短描述,只有在真正需要时才完整加载。
这样做有三个理由:
- 共享上下文能产生更好的答案:对于运行时间较长的智能体,我们希望多个不同任务的上下文都留在主上下文窗口里。一个看过前面每一步结果的智能体能把它们联系起来,从而比子智能体交回的一堆摘要产出更丰富的结果、更好的洞见。这也意味着更少的上下文窗口和更少的有损交接。
- 渐进披露可以防止上下文膨胀:这项技术让团队能够构建可完成多种任务的单智能体,而不必把所有上下文一次性塞进一条很长的系统提示词。这消除了团队过去把工作拆分到多个子智能体的主要原因。事实上,我们把 Claude Code 面向更先进模型的系统提示词削减了 80% 以上,其中就包括与渐进披露 Skill 和工具相关的削减。
- 模型本身更强了:从 Opus 4.5 开始,模型在单个循环里能管理的东西就远超大多数团队的预期。在 Opus 5.5 和 Fable 5.1 上,思考过程已经无法关闭;新近的模型还越来越多地边做边叙述进度、检查自己的工作,这让运行时框架里的一些环节变得多余。每一代新模型都让你能把更多决策从运行时框架挪进模型本身。更简单的循环也更容易迁移到下一代模型;在我们帮助客户做迁移的经历中,僵化的多智能体结构常常正是阻碍新模型承担更多工作的东西。
这种单循环设计需要纪律:精心管理的系统提示词、能在正确时机触发的 Skill 和工具描述,以及对上下文窗口、记忆和笔记的审慎处理。本文后续章节会深入讨论迁移与设计方面的考量。
应该由一个中央团队负责端到端质量和系统提示词,在每一个新工具和评估上线前进行审核。让这个中央团队保持小规模,有助于加快迭代,并降低大型组织中的协调成本。
如果你仍要走多智能体路线,就从可行的最简单模式开始(生成器—验证器、编排器—子智能体,或其他)。按上下文划分来有效划定边界:给每个子智能体一块几乎不依赖系统其余部分的工作,让它交回一份紧凑的结果(好的候选包括相互独立的研究路径、接口干净的独立组件,或黑盒验证)。如果按问题类型拆分智能体,它们就会玩起「传话游戏」,信息在一次次交接中来回传递,保真度不断下降。

如何把子智能体折叠进主智能体循环
很多团队已经在生产环境中运行着一个编排器和一组专家智能体。下面是我们建议逐步靠近的单循环设计:
- 一个模型、一个上下文窗口,跑一个开放式的工具调用循环;限制(轮次预算、成本预算、写入门控)由运行时框架设定。
- 每一轮,模型发出一批工具调用。运行时框架并行执行,把原始结果交回同一个模型,由它决定下一步:再发一批调用、向用户提问,还是直接回答。
- 循环在模型给出答案或触到预算上限时停止。回答之后还可以选择性地运行一次目标检查或验证器检查。
- 模型在第一轮就把计划写进上下文,并随着结果到来不断修订。这是与「编排器+专家智能体」设置相比最主要的变化:写计划的模型和执行计划的是同一个,所以它可以中途改变计划。
- 上下文仍会被加载,但由智能体自己管理:
- 不再需要用代码按规则目录改写计划的步骤,因为每一步由模型自己决定。
- 顺序和领域流程移入Skills。
- 硬性限制(校验、审批门控)以及其他对话中途才会出现的东西(如记忆查询)移入工具。
- 代码仍可用于加载那些便宜且几乎总是相关的内容(如实体解析步骤),并在循环调用的工具内部处理纯机械的部分(组装请求载荷、解析流式返回、续接澄清式追问)。
这种单循环设计也有助于许多团队正在追求的终态——一个理解用户高层目标并代表其行事的智能体——因为它把智能体学到的一切都保留在同一个上下文里。

下面这些建议,讲的是一个团队如何分阶段从多智能体系统走向单智能体循环,以及多个团队如何在这一过程中持续为这个智能体做贡献。
任务完成度评估
第一步是创建一套评估集,帮助你判断是否应该把某个子智能体折叠进主智能体循环。我们见过且行之有效的评估结构是:一套由中央团队负责的共享端到端评估集,加上各个 Skill 的负责团队随 Skill 一起交付的小型评估集。哪怕只有 10 个黄金样例,也足够起步。
按评分标准给智能体的最终回复打分,是追踪回答质量的一个好起点。在仍使用编排器的阶段,你还应该追踪路由准确率(它有没有选对子智能体?);某个子智能体折叠进来之后,则改为检查智能体有没有加载对的 Skill、调用对的工具。随着时间推移逐步向任务完成度评估靠拢是有益的,因为在比较不同架构时,它最重要。
在内部系统难以回放、用户交互难以模拟的环境里,这件事可能很复杂。我们内部行之有效的一个做法,是在重要事件上记录时间戳,之后回放这些事件,作为有针对性的评估来运行。
逐步减少子智能体
向单智能体循环演进的过程,就是把子智能体折叠进工具和 Skills 的过程。具体做法可以是合并领域子智能体、把它们当作工具调用,或者直接用 Skills 和工具替换。

合并领域智能体
第一次合并之前,先建一个小型端到端评估。然后按共享上下文折叠,从用得最多的子智能体开始。
把那些输出前后相接、操作同一份数据、或经常被一起调用的专家合并起来。比如,如果生产流量中有相当大的一部分是先调用某个专家、紧接着再调用第二个,那这就是一对紧耦合的专家,适合合并成一个领域智能体。
把子智能体当作工具调用
当前文三个条件之一成立、而你决定保留某个子智能体时,让主智能体把它当作工具来调用往往是有效的,这样主智能体就能继续握着与用户的对话。
只有当子智能体需要直接与用户对话时,我们才建议做完全交接、由子智能体接管对话。其余一切都可以用主循环里的 Skill 加工具来实现。
这样你就可以为子智能体定义统一的响应格式,让主智能体用真实数据核对其结论,并精简最后汇总步骤的输入。这是不错的第一步,因为你不需要重写子智能体;在决定把任何子智能体折叠进主智能体之前,它还能先在任务完成度评估上给你一条基线。
不过,一些失败模式仍会存在:
- 每个专家仍有自己的提示词、上下文、负责团队和评估;
- 每次调用交回的仍是有损摘要;
- 每次调用都是一个嵌套的模型循环,会增加延迟。
通过 Skills 和工具把子智能体折叠进主智能体
一次只折叠一个子智能体:把它提示词变成 Skills、API 调用变成 MCP 工具。然后对比有它和没它时的评估表现,再决定保留哪一种。
对比时不要只看最终分数,还要看哪些任务的结果发生了翻转。我们在一个示例客服智能体上测试时,把一个子智能体折叠进另一个之后,延迟降低了,却也弄坏了一个此前一直能通过的流程:主智能体手里握着订单查询工具,于是自顾自作答,没有去问配送专家要送达日期。

每次改动之前,都要确保评估集里有任务覆盖生产环境中每一条会一起运行的智能体链路、以及智能体绝不能违反的每一条规则;并且每个任务都要跑不止一次——像这样的故障,两次运行中只出现了一次。
多个团队如何为同一个智能体做贡献
领域推理可以从知识库、Skills 和 MCP 工具中检索得到。各团队可以把自己负责的对象从智能体转为 Skills 和工具,同时由一个小型中央团队继续负责系统提示词和端到端质量。这包括在新的 Skill、工具和评估上线前进行审核。
MCP 工具
当智能体需要执行操作、从系统读取实时数据、或以固定格式返回结果时,工具是合适的选择。迁移期间,你也可以用工具来继续调用尚未折叠的子智能体。我们建议按用户意图组织工具(而不是一个 API 对应一个工具),因为一旦系统提示词里的工具定义超过 30–50 个,工具选择的质量往往就会下降。
使用带延迟加载的工具搜索,尽量少设硬性前置条件,必须存在的就挪进工具里。例如,如果 Y 需要 X 的输出,就让 Y 的工具自己检查 X 的输出在不在,并返回一条模型可以据此行动的指令。按用户区分的权限也是同样的做法:每个工具检查当前调用用户可以看到什么、可以做什么,并返回一段模型能读懂的拒绝说明——这样一个循环就能服务权限不同的用户,不需要为每个权限级别单独做一个智能体。
Skills
当智能体需要知道某个团队是怎么做事的——也就是过去由专家子智能体提示词承载的步骤、规则和判断——Skills 是合适的选择。
面对不断壮大的 Skill 库,我们的做法是把维护工作交还给写 Skill 的人。Claude 可以借助一些能够构建、测试和精简其他 Skills 的 Skills 来承担繁重工作。
为了防止 Skill 泛滥,可以让每个团队的直接负责人(DRI)掌管自己的 Skills,确保它们做工精良、彼此不重复,并随附合适的评估。
- /skill-creator:用于编写从一开始就结构良好的新 Skill,也能审计已有 Skill,做精简、去重和重组。
- /skill-doctor:让你看到库里每个 Skill 的成本和实际使用频率,删掉无用的部分。
知识库
知识库适合存放智能体只是偶尔需要的参考资料。事实和参考材料(政策、指标定义、产品规格)可以放在一个由模型调用的搜索或查询工具后面,也可以作为参考文件打包进某个 Skill。尽量避免让代码把这些内容检索出来再贴进提示词。
加速这项工作的工具
我们最近发布了一组 Claude API Skills,能帮忙完成上述大部分工作。我们的迁移工具包把这些 Skills 串成一套引导式工作流,用于评估多智能体系统并将其迁移到单智能体循环。它包含一个演示,可以先试跑,再用于真实系统:
- /claude-api build-eval:帮助创建由中央团队负责的第一套端到端评估,或各团队随 Skill 交付的小型评估。
- /claude-api prompt-audit:标记提示词、Skills 和工具描述里那些为旧模型编写的指令,并以 diff 形式给出修改建议。可以在系统提示词上运行它,找出那些为更早的模型添加、如今让智能体变慢或变僵的规则。各团队的 DRI 也可以在自己的 Skill 和工具描述上运行它。
- /claude-api hillclimb:针对已有评估迭代改进应用。可用于「折叠 vs 保留」的对比(把一个子智能体折叠成 Skill 加工具后,让它迭代优化 Skill 和工具描述,看折叠版能否打平或胜过原子智能体),也可用于优化系统提示词。
- /claude-api cost-optimize:分析调用去向,并从提示词缓存、裁剪不必要的输入输出 token、调整 effort、更换模型等选项中一次提出一项节省建议,帮助在给定设计上降低成本和延迟。
随着模型演进,我们对如何用好模型的理解、以及围绕最佳实践的指引也在演进。这让任何一种具体架构都不如其背后的原则重要:先测量,一次只改一件事,留下经得起验证的东西。
本文正是其中一例。随着模型越来越强、智能体运行时间越来越长,你的子智能体中会有越来越多可以变成 Skills 和工具。不过你不必一步到位:先建一个小型端到端评估,折叠一个子智能体,如果折叠后的版本得分更差,就把它继续留作子智能体——如此循环往复。
关注 HiFox AI,及时获取 最新 AI 资讯~
欢迎使用 HiFox,一个多人与多 Agent 的协作平台,轻松指挥一堆 Agent 同时并行工作!
HiFox 是什么?












**👉 立即体验 Hifox: **https://hifox.com
