5820 字
29 分钟

译文|构建智能体:何时应将子智能体并入主智能体循环

Anthropic 分享何时应将子智能体并入主循环,以及如何通过按需加载技能与工具、端到端评测和逐步迁移,改善质量、成本与延迟。

文章目录

原文:Building agents: When to fold subagents into your main agent loop

作者:Diane Sarkis。原文发表于 2026 年 10 月 22 日,阅读时间约 18 分钟。

以下依据读者提供的文章截图翻译;截图末句被截断的部分已对照原网页补齐。文中的“我们”指原作者及其团队。三幅示意图以中文表格转写,保留其主要结构和说明。原文及图示版权归原权利人所有。

在 Claude Platform 上构建智能体时,减少子智能体,改为按需逐步加载上下文和工具,有可能在提高质量的同时降低成本和延迟。本文介绍何时适合迁移,以及如何迁移。

如果你在 Claude Platform 上构建的智能体包含多个子智能体,可以使用我们的迁移工具包来判断哪些适合并入主智能体循环。它提供一套引导式流程,帮助你识别现有模式、评估替代方案,并验证哪种方式最合适。工具包还包含演示,你可以先在模拟系统上试用,再用于自己的智能体。

子智能体是拥有独立上下文窗口、工具和指令,并由协调者编排的智能体。它们是智能体设计的核心组成部分,擅长验证、并行工作,以及按模块划分权限。我们使用 Claude Platform 构建的许多智能体也采用了子智能体,例如我们的多智能体研究系统。

不过,应用 AI 团队最近发现,在一些企业智能体部署中,将路由、规划和领域子智能体并入主智能体循环,带来了收益。在我们对多个企业部署的比较中,配备技能的单智能体在质量上经常优于“一个提示词处理所有任务”的设计和子智能体设计,而且每项任务的成本和延迟往往更低。

例如,一家公司发现,其面向客户的智能体包含十几个专业子智能体,这让它难以保持一致的品牌体验,也增加了延迟,影响了用户体验。

我们也经常看到拟议中的智能体设计沿着一种熟悉的路线发展:先做意图分类,再接一条固定的多步推理流水线,接着按用户群体分组、设置不同的推荐分支,最后再加上一层多智能体编排器。

在这些情况下,我们经常收到的反馈是:大部分结构所承担的工作,模型已经不再需要别人替它完成。一个清晰的系统提示词、4~5 个轻量数据工具,再加上严格的输出约束,就能覆盖大部分使用场景。

图 1:原文对两种架构的比较,以下为中文转写。

常见模式:模型外部有 5 层结构我们常推荐的模式:1 个循环
多智能体编排器 → 意图分类器 → 固定推理流水线 → 用户群体分组 → 各自的推荐分支一个提示词、4~5 个工具和输出约束
模型被多层结构包围,每层交接都需要传递信息单智能体循环内包含系统提示词和模型,模型调用数据工具并接收结果,最终输出受严格约束

需要说清楚的是,子智能体仍然有其用武之地,包括前沿研究。以下情况适合使用子智能体:

  • 单智能体循环因上下文膨胀,出现了可以测量的性能下降。
  • 多项任务需要并行处理,而且适合各自使用全新的上下文窗口,任务完成后即可丢弃这些窗口。
  • 单智能体难以选对工具,或者系统提示词中存在相互冲突的指令。

但我们太常看到企业为每个团队、每类问题各建一个子智能体,最后智能体架构成了组织架构图的翻版。这就是康威定律在起作用。

本文将结合我们在大型组织中构建智能体的实践,解释何时应考虑将子智能体并入主智能体循环。

大型组织构建智能体时的常见失败模式#

公司通常希望构建一个智能体,把多个产品和能力整合到同一个客户界面中。

一般来说,每项能力都由不同团队负责。因此,公司往往先让各个团队构建自己的智能体,再由中央平台团队在上面加一个编排器。这可以形成多种结构,例如“编排器—子智能体”,或者由一个智能体调用以 MCP 工具形式暴露的其他智能体。

这看起来是最简单的解决办法,却会立刻在以下方面引入复杂性:

  • 上下文管理: 你需要决定智能体之间交换哪些上下文,而信息在来回传递时往往会丢失细节。
  • 子智能体泛滥: 每个团队都发布自己的子智能体,公司最终可能拥有数百个功能重叠的子智能体,却没有统一执行的标准,也没有明确的负责人。
  • 拼接而成的提示词: 每个团队都往系统提示词里加一句话,最终形成相互冲突的规则,也无法保持一致的表达风格。原文将其称为“Frankenprompt”。
  • 未经审核、过度局部化的评测: 每个团队都加入自己的评测,并围绕各自的子任务过度优化。没有人负责或维护整套评测,而管理层依据的是被稀释、过于局部的分数。
  • 延迟: 多智能体架构的复杂性会增加延迟。一位客户将自己的多智能体运行框架与单智能体循环进行比较,发现后者的运行速度约为前者的两倍。

在智能体循环中按需逐步加载信息#

前面描述的“编排器—子智能体”设计,是协调不同团队所构建的专业智能体的一种合理方式。不过,更有效的办法往往是:通过技能逐步加载上下文,通过工具搜索逐步加载工具。换句话说,智能体先看到技能和工具的简短描述,只有需要时才加载完整内容。原文将这种方式称为“渐进式披露”(progressive disclosure)。

这种做法可能更合适,原因有三点:

  • 共享上下文能产生更好的答案。 对于长时间运行的智能体,我们希望把多个不同任务的上下文保留在主上下文窗口中。智能体看过前面每一步的结果,就能把这些结果联系起来。与只接收一组子智能体摘要相比,这有助于生成更丰富的输出和更好的洞见,也意味着更少的上下文窗口,以及更少有损的信息交接。
  • 按需加载能防止上下文膨胀。 团队可以借此构建能完成多种任务的单智能体,而不必一开始就把所有上下文塞进一段很长的系统提示词。这消除了过去团队将工作拆给多个子智能体的主要理由。事实上,对于更先进的模型,我们已将 Claude Code 的系统提示词缩短了 80% 以上,其中一部分精简就来自按需加载技能和工具。
  • 模型的能力更强了。 从 Opus 4.5 开始,模型已经能在单个循环中管理远超多数团队预期的工作。Opus 5.5 和 Fable 5.1 无法关闭思考;近期模型也越来越善于在执行过程中说明进展、检查自己的工作,因此运行框架中的某些部件变得多余。每一代新模型,都让你能把更多决策从运行框架交给模型本身。

更简单的循环也更容易迁移到下一代模型。在我们帮助客户进行的迁移中,僵硬的多智能体结构往往阻碍了新模型承担更多工作。

单智能体循环的设计仍然需要严格管理:认真维护系统提示词,让技能和工具的描述在正确时机触发加载,并有意识地处理上下文窗口、记忆和笔记。本文后面的章节会进一步讨论迁移与设计时需要考虑的问题。

应由一个中央团队负责端到端质量和系统提示词,并在每个新工具和新评测发布前进行审核。让这个中央团队保持小规模,有助于加快迭代,也能降低大型组织内部的协调成本。

如果选择多智能体路线,就从可能奏效的最简单模式开始,例如“生成器—验证器”或“编排器—子智能体”。有效划分边界的方法是按照上下文拆分:给每个子智能体分配一项不太依赖系统其他部分的工作,并让它返回简洁的结果。适合的任务包括独立的研究路径、接口清晰的独立组件,或者黑盒验证。

如果按问题类型拆分智能体,它们就会陷入“传话游戏”:信息来回交接,每次交接都会损失保真度。

图 2:按问题类型拆分与按上下文拆分的比较,以下为中文转写。

拆分方式工作流程信息交接的影响
按问题类型拆分智能体 1 编写功能 → 智能体 2 编写测试 → 智能体 3 审查代码每次交接都会丢失上下文。编写测试的智能体不了解实现过程中作出的每项决定。
按上下文拆分一个智能体编写功能和测试;验证器负责运行测试主智能体已拥有所需上下文。只运行测试并报告结果的验证器,无需了解实现上下文。

如何将子智能体并入主智能体循环#

许多团队已经在生产环境中使用编排器和一组专业智能体。我们建议逐步朝以下单循环设计演进:

  • 一个模型、一个上下文窗口,运行开放式工具循环;运行框架负责设置限制,例如轮次预算、成本预算和写入审批关卡。
  • 每一轮,模型发出一批工具调用。运行框架并行执行这些调用,把原始结果返回给同一个模型,由模型决定下一步:再调用一批工具、向用户提问,或者给出答案。
  • 模型给出答案或达到预算上限时,循环停止。也可以选择在回答后,再进行一次目标检查或验证器检查。
  • 模型在第一轮把计划写入上下文,随后根据收到的结果修改计划。这是与“编排器加专业智能体”架构的主要区别:制定计划和执行计划的是同一个模型,因此它可以在一轮执行过程中调整计划。
  • 上下文仍然需要加载,但由智能体自己管理:
    • 不再需要专门用代码根据规则目录重写计划,因为模型会自行决定每一步。
    • 执行顺序和领域流程移入技能。
    • 硬性限制,例如校验和审批关卡,以及对话中途出现的其他需求,例如记忆查询,移入工具。
    • 对于成本低、几乎总是相关的内容,例如实体消歧步骤,仍然可以用代码加载。构造请求载荷、解析流式输出、在澄清后恢复执行等机械性工作,也可以由循环所调用的工具内部代码处理。

许多团队最终希望构建一种能够理解用户高层目标、并代表用户行动的智能体。单循环设计也有助于实现这一目标,因为它把智能体已经学到的所有信息保留在同一个上下文中。

下面介绍团队如何分阶段从多智能体系统迁移到单智能体循环,以及多个团队如何在此过程中继续为同一个智能体贡献能力。

任务完成情况评测#

第一步是创建一套评测,用于判断是否应该把某个子智能体并入主智能体循环。我们见过一种有效的组织方式:中央团队负责一套共享的端到端评测,各技能的负责团队随技能一同提供较小的评测集。即使只有 10 个标准示例,也足以起步。

按照评分标准评估智能体的最终回复,是追踪回答质量的良好起点。在系统仍有编排器时,也应追踪路由准确率:它是否选对了子智能体?将子智能体并入后,则应检查智能体是否加载了正确的技能、调用了正确的工具。随着时间推移,逐步建立任务完成情况评测很有帮助,因为比较架构时,最重要的是任务是否完成。

如果内部系统难以重放、用户参与难以模拟,这项工作可能很复杂。我们内部用过一种有效方法:为重要事件记录时间戳,以便日后重放这些事件,开展有针对性的评测。

逐步减少子智能体#

向单智能体循环演进,需要把子智能体整合为工具和技能。可以合并领域子智能体、把它们作为工具调用,或者用技能和工具替代它们。

图 3:三条迁移路径,以下为中文转写。

路径做法
合并子智能体将共享上下文的子智能体合并,例如把 A、B 合为一组,把 C、D 合为另一组。
把子智能体作为工具调用主智能体通过工具调用使用各子智能体,接收结果,同时继续负责与用户的对话。
将子智能体转为技能和工具子智能体的提示词变成技能,原有 API 调用变成工具。

合并领域智能体#

第一次合并之前,先建立一套小型端到端评测。然后依据共享上下文进行合并,优先从使用最频繁的子智能体开始。

如果专业智能体依次使用彼此的输出、接触相同数据,或者经常一起被调用,就可以考虑合并。例如,如果很大一部分生产流量都先调用某个专业智能体,再调用另一个,那么这两个智能体就是紧密耦合的一对,适合考虑合并为一个领域智能体。

将子智能体作为工具调用#

如果前面列出的三种保留条件之一成立,而你决定继续使用某个子智能体,那么让主智能体把它作为工具调用,可能是有效的做法。这样主智能体就能继续负责与用户的对话。

只有在子智能体需要直接与用户交流时,我们才建议完整交接,也就是让子智能体接管对话。除此之外的工作,都可以通过主循环中的技能和工具完成。

这样,你就能为子智能体定义统一的响应结构,让主智能体依据真实数据核验结论,并精简最终综合步骤需要接收的输入。这是一个很好的起点,因为你不必重写子智能体。它也能让你在决定是否进一步合并子智能体之前,建立任务完成情况评测的基线。

不过,某些失败模式仍然存在:

  • 每个专业智能体仍然有自己的提示词、上下文、负责团队和评测。
  • 每次调用返回的仍然是会丢失信息的摘要。
  • 每次调用仍然包含一个嵌套的模型循环,因此会增加延迟。

通过技能和工具将子智能体并入主智能体#

每次处理一个子智能体:把它的提示词转换为技能,把 API 调用转换为 MCP 工具,从而将它并入主智能体。比较保留和移除该子智能体时的评测表现,再决定保留哪一种方案。

比较时,不要只看最终分数,还要查看哪些任务的通过情况发生了变化。我们曾在一个示例客服智能体上测试:将一个子智能体并入另一个后,延迟降低了,但原先能够通过的一个流程却失败了。主智能体自己掌握订单查询工具,于是直接作答,没有再向配送专业智能体询问送达日期。

每次改动前,都应确保评测为生产环境中每一条会串联运行的智能体调用链,以及每一条智能体不得违反的规则,安排了对应任务。每个任务也应运行不止一次,因为上面这类故障在两次运行中只出现了一次。

多个团队如何共同建设一个智能体#

领域推理所需的内容,可以从知识库、技能和 MCP 工具中获取。各团队可以把负责对象从智能体转为技能和工具,由一个小型中央团队继续负责系统提示词和端到端质量。这包括在新技能、工具和评测发布前进行审核。

MCP 工具#

当智能体需要执行操作、从系统读取实时数据,或者按固定结构返回结果时,适合使用工具。在迁移期间,也可以通过工具继续调用子智能体。我们建议按照用户意图组织工具,而不是每个 API 对应一个工具,因为系统提示词中的工具定义一旦超过 30~50 个,工具选择的表现往往就会下降。

使用带延迟加载的工具搜索,尽量减少硬性前置条件,并把必要的条件检查移入工具。例如,Y 需要 X 的输出,那么 Y 对应的工具就检查该输出是否存在,并返回模型可以据此执行的指令。

每位用户的权限也可以采用相同方式处理。每个工具检查调用者能查看什么、执行什么;如果不允许,就返回模型能够理解的明确拒绝信息。因此,一个循环就能服务权限不同的用户,而不必为每种权限级别单独建立一个智能体。

技能#

当智能体需要了解某个团队如何工作时,适合使用技能,例如原先保存在专业子智能体提示词中的步骤、规则和判断方式。

随着技能库扩大,我们的做法是把维护工作交还给编写技能的人。Claude 可以通过能够创建、测试和精简其他技能的技能,承担其中大量工作。

为了防止技能泛滥,可以在每个团队指定直接负责人(DRI),负责维护本团队的技能,确保技能编写得当、彼此区分清楚,并随附合适的评测。

  • /skill-creator 可以帮助你创建结构规范的新技能,也可以审查已有技能,进行精简、去重和重组。
  • /skill-doctor 可以让你了解技能库中每个技能的成本和实际使用频率,并删除不再发挥作用的内容。

知识库#

对于智能体仅在部分时候需要的参考资料,适合使用知识库。事实和参考材料,例如政策、指标定义和产品规格,可以放在模型调用的搜索或查询工具之后,也可以作为技能内部的参考文件提供。应避免由代码主动检索这些上下文,再将其粘贴到提示词中。

加快这项工作的工具#

我们最近发布了一组 Claude API 技能,可以帮助完成上述大部分工作。迁移工具包将这些技能串联成一套引导式流程,用于评估多智能体系统,并将其迁移到单智能体循环。工具包包含一个演示,你可以先试用,再把它用于真实系统:

  • /claude-api build-eval: 帮助中央团队创建第一套端到端评测,或者帮助各团队创建随技能发布的小型评测集。
  • /claude-api prompt-audit: 找出提示词、技能和工具描述中针对旧模型编写的指令,并以差异对比的形式提出修改建议。你可以用它检查系统提示词,找出那些曾为早期模型加入、如今却让智能体更慢或更僵化的规则。各团队的直接负责人也可以用它检查自己的技能和工具描述。
  • /claude-api hillclimb: 根据已有评测,迭代改进应用。它可以用于比较“合并”与“保留”两种方案:将某个子智能体转换为技能和工具后,让它迭代优化技能与工具描述,观察合并后的版本能否达到或超过原子智能体的表现。它也可以用于改进系统提示词。
  • /claude-api cost-optimize: 分析调用的开销分布,并逐项提出节省成本的方案,例如提示词缓存、削减不必要的输入和输出 token、调整思考投入程度,以及选择模型。它有助于在既定设计下降低成本和延迟。

随着模型演进,我们对如何更好地使用模型的理解,以及最佳实践建议,也会随之变化。因此,比起任何一种具体架构,更重要的是它背后的原则:先测量,每次只改变一件事,保留经得起检验的做法。

这里讨论的就是这样的情况。随着模型能力增强、智能体运行时间变长,更多子智能体可以转化为技能和工具。不过,你不必一步到位。先建立一套小型端到端评测,尝试并入一个子智能体;只有当合并后版本的评分更差时,才保留它作为子智能体,然后重复这个过程。

留下你的声音

聊一聊

无需登录,填写昵称即可留言。评论和昵称会公开显示,邮箱不会公开。

正在连接评论区…