Anthropic:我们如何构建多智能体研究系统
我们的研究功能使用多个 Claude 智能体来更有效地探索复杂主题。我们分享了构建该系统所遇到的工程挑战以及吸取的经验教训。
我们的研究功能使用多个 Claude 智能体来更有效地探索复杂主题。我们分享了构建该系统所遇到的工程挑战以及吸取的经验教训。
Claude 现在具备研究能力,可以跨网络、Google Workspace 和任何集成进行搜索,以完成复杂的任务。
从原型到生产,这个多智能体系统的旅程教会了我们关于系统架构、工具设计和提示工程的关键经验。多智能体系统由多个智能体(LLM 在循环中自主使用工具)协同工作组成。我们的研究功能涉及一个智能体,它根据用户查询规划研究过程,然后使用工具创建并行智能体同时搜索信息。多智能体系统引入了智能体协调、评估和可靠性的新挑战。
这篇文章分解了对我们有效的工作原则——我们希望您在构建自己的多智能体系统时会发现它们很有用。
多智能体系统的好处
研究工作涉及开放式问题,很难提前预测所需的步骤。您无法为探索复杂主题硬编码固定路径,因为该过程本质上是动态且依赖于路径的。当人们进行研究时,他们倾向于根据发现不断更新他们的方法,追随调查期间出现的线索。
这种不可预测性使得人工智能智能体特别适合研究任务。研究要求在调查展开时具有转向或探索切线连接的灵活性。模型必须自主运行多轮,根据中间发现决定追求哪个方向。线性、一次性管道无法处理这些任务。
搜索的本质是压缩:从大量语料库中提炼见解。子智能体通过在各自的上下文窗口中并行操作来促进压缩,同时探索问题的不同方面,然后为主研究智能体浓缩最重要的标记。每个子智能体还提供关注点分离——不同的工具、提示和探索轨迹——这减少了路径依赖性并能够进行彻底的独立调查。
一旦智能达到阈值,多智能体系统就成为扩展性能的重要方式。例如,尽管单个智人在过去 10 万年中变得更加智能,但人类社会在信息时代的能力却呈指数级增长,原因在于我们的集体智慧和协调能力。即使是普遍智能的智能体,作为个体运行时也会面临限制;智能体群体可以完成更多任务。
我们的内部评估表明,多智能体研究系统尤其擅长同时追求多个独立方向的广度优先查询。我们发现,一个以 Claude Opus 4 作为主智能体和 Claude Sonnet 4 子智能体的多智能体系统在我们的内部研究评估中比单个 Claude Opus 4 智能体表现好 90.2%。例如,当被要求识别信息技术标准普尔 500 指数中所有公司的董事会成员时,多智能体系统通过将其分解为子智能体的任务找到了正确答案,而单个智能体系统则通过缓慢的顺序搜索未能找到答案。
多智能体系统之所以有效,主要是因为它们有助于花费足够的标记来解决问题。在我们的分析中,三个因素解释了 BrowseComp 评估中 95% 的性能差异(该评估测试浏览智能体查找难以找到信息的能力)。我们发现标记使用本身解释了 80% 的差异,工具调用次数和模型选择是另外两个解释因素。这一发现验证了我们的架构,该架构将工作分配给具有独立上下文窗口的智能体,以增加并行推理的能力。最新的 Claude 模型是标记使用效率的巨大倍增器,因为升级到 Claude Sonnet 4 比将 Claude Sonnet 3.7 的标记预算翻倍能带来更大的性能提升。多智能体架构有效地扩展了标记使用,适用于超出单个智能体限制的任务。
它也有缺点:实际上,这些架构会快速消耗标记。在我们的数据中,智能体通常比聊天交互多使用约 4 倍的标记,而多智能体系统比聊天多使用约 15 倍的标记。为了经济可行性,多智能体系统需要任务的价值足够高以支付增加的性能。此外,一些需要所有智能体共享相同上下文或涉及智能体之间许多依赖关系的领域目前不适合多智能体系统。例如,大多数编码任务的真正并行化程度低于研究,并且 LLM 智能体在实时协调和委托给其他智能体方面还不太擅长。我们发现,多智能体系统在涉及大量并行化、超出单个上下文窗口的信息以及与众多复杂工具交互的有价值任务中表现出色。
研究架构概览
我们的研究系统采用多智能体架构,使用协调者-工作者模式,其中一个主智能体协调过程,同时委托给并行操作的专用子智能体。

当用户提交查询时,主智能体会分析它,制定策略,并生成子智能体以同时探索不同的方面。如上图所示,子智能体充当智能过滤器,通过迭代使用搜索工具收集信息(在本例中是 2025 年的 AI 智能体公司),然后将公司列表返回给主智能体,以便其编译最终答案。
传统使用检索增强生成(RAG)的方法采用静态检索。也就是说,它们获取一组与输入查询最相似的块,并使用这些块生成响应。相比之下,我们的架构使用多步骤搜索,动态查找相关信息,适应新发现,并分析结果以形成高质量的答案。

研究智能体的提示工程和评估
多智能体系统与单智能体系统存在关键差异,包括协调复杂性迅速增长。早期智能体犯了诸如为简单查询生成 50 个子智能体、无休止地搜索网络中不存在的来源以及通过过度更新分散彼此注意力等错误。由于每个智能体都由一个提示来引导,因此提示工程是我们改进这些行为的主要杠杆。以下是我们从提示智能体中学到的一些原则:
- 像您的智能体一样思考。 要迭代提示,您必须了解它们的效果。为了帮助我们做到这一点,我们使用我们的 Console 建立了模拟,其中包含我们系统中的精确提示和工具,然后逐步观察智能体的工作。这立即揭示了失败模式:智能体在已经有足够结果时继续工作,使用过于冗长的搜索查询,或选择不正确的工具。有效的提示依赖于开发对智能体的准确心智模型,这可以使最具影响力的更改变得显而易见。
- 教导协调器如何委派。 在我们的系统中,主智能体将查询分解为子任务并将其描述给子智能体。每个子智能体都需要一个目标、一个输出格式、关于要使用的工具和源的指导以及清晰的任务边界。没有详细的任务描述,智能体就会重复工作、留下空白或未能找到必要信息。我们最初允许主智能体给出简单的短指令,如“研究半导体短缺”,但发现这些指令通常模糊不清,以至于子智能体误解了任务或执行了与其他智能体完全相同的搜索。例如,一个子智能体探索 2021 年汽车芯片危机,而另外 2 个则重复研究当前的 2025 年供应链,没有有效的劳动分工。
- 根据查询复杂性调整工作量。 智能体难以判断不同任务的适当工作量,因此我们在提示中嵌入了缩放规则。简单的查找只需 1 个智能体进行 3-10 次工具调用,直接比较可能需要 2-4 个子智能体进行 10-15 次调用,复杂研究可能使用 10 多个子智能体,并明确分工。这些明确的指导方针有助于主智能体有效分配资源,并防止对简单查询过度投入,这是我们早期版本中常见的失败模式。
- 工具设计和选择至关重要。 智能体-工具接口与人机接口同样重要。使用正确的工具是高效的——通常,它是绝对必要的。例如,一个搜索仅存在于 Slack 中的上下文的智能体注定会失败。有了 MCP 服务器,模型可以访问外部工具,这个问题会变得更加复杂,因为智能体会遇到描述质量差异很大的未知工具。我们给了我们的智能体明确的启发式方法:例如,首先检查所有可用工具,将工具使用与用户意图匹配,搜索网络以进行广泛的外部探索,或优先选择专用工具而不是通用工具。糟糕的工具描述会将智能体引入完全错误的路径,因此每个工具都需要有独特的目的和清晰的描述。
- 让智能体自我改进。 我们发现 Claude 4 模型可以是出色的提示工程师。当给定一个提示和一个失败模式时,它们能够诊断智能体失败的原因并提出改进建议。我们甚至创建了一个工具测试智能体——当给定一个有缺陷的 MCP 工具时,它会尝试使用该工具,然后重写工具描述以避免失败。通过测试该工具数十次,该智能体发现了关键的细微差别和错误。这种改进工具人体工程学的方法使未来使用新描述的智能体任务完成时间减少了 40%,因为它们能够避免大多数错误。
- 先广后深。 搜索策略应模仿人类专家研究:在深入细节之前探索全景。智能体通常默认使用过长、过于具体的查询,返回结果很少。我们通过提示智能体从简短、宽泛的查询开始,评估可用内容,然后逐步缩小范围来抵消这种趋势。
- 引导思维过程。 扩展思维模式,使 Claude 输出额外标记以进行可见的思维过程,可以充当可控的草稿本。主智能体使用思维来规划其方法,评估哪些工具适合任务,确定查询复杂性和子智能体数量,并定义每个子智能体的角色。我们的测试表明,扩展思维提高了指令遵循、推理和效率。子智能体还会进行规划,然后在工具结果后使用交错思维来评估质量、识别差距并完善其下一个查询。这使得子智能体在适应任何任务方面更有效。
- 并行工具调用改变速度和性能。 复杂的科研任务自然涉及探索许多来源。我们早期的智能体执行顺序搜索,速度慢得令人痛苦。为了提高速度,我们引入了两种并行化:(1) 主智能体并行启动 3-5 个子智能体而不是串行启动;(2) 子智能体并行使用 3 个以上工具。这些变化使复杂查询的研究时间缩短了 90%,使 Research 能够在几分钟而不是几小时内完成更多工作,同时涵盖比其他系统更多的信息。
我们的提示策略侧重于灌输良好的启发式方法,而不是严格的规则。我们研究了熟练的人类如何处理研究任务,并将这些策略编码到我们的提示中——例如将难题分解为更小的任务,仔细评估来源质量,根据新信息调整搜索方法,以及识别何时专注于深度(详细调查一个主题)与广度(并行探索许多主题)。我们还通过设置明确的护栏来主动缓解意外的副作用,以防止智能体失控。最后,我们专注于通过可观察性和测试用例进行快速迭代循环。
智能体的有效评估
良好的评估对于构建可靠的人工智能应用程序至关重要,智能体也不例外。然而,评估多智能体系统带来了独特的挑战。传统评估通常假设人工智能每次都遵循相同的步骤:给定输入 X,系统应遵循路径 Y 生成输出 Z。但多智能体系统并非如此。即使起点相同,智能体也可能采取完全不同的有效路径来达到目标。一个智能体可能搜索三个来源,而另一个搜索十个,或者它们可能使用不同的工具找到相同的答案。因为我们并不总是知道正确的步骤是什么,所以我们通常不能仅仅检查智能体是否遵循了我们预先规定的“正确”步骤。相反,我们需要灵活的评估方法,既能判断智能体是否达到了正确的结果,又能判断它们是否遵循了合理的流程。
- 立即开始使用小样本进行评估。 在智能体开发的早期,变化往往会产生巨大影响,因为有大量唾手可得的成果。一次提示调整可能会将成功率从 30% 提高到 80%。在效果如此大的情况下,只需几个测试用例即可发现变化。我们从一组大约 20 个代表真实使用模式的查询开始。测试这些查询通常使我们能够清楚地看到变化的影响。我们经常听说人工智能开发团队推迟创建评估,因为他们认为只有包含数百个测试用例的大型评估才有用。然而,最好立即开始小规模测试,使用少量示例,而不是推迟到可以构建更全面的评估时。
- LLM 作为判断的评估在做得好时可以扩展。 研究输出很难以编程方式评估,因为它们是自由格式文本,很少有唯一的正确答案。LLM 非常适合评分输出。我们使用了一个 LLM 判断器,根据评估标准(事实准确性(声明是否与来源匹配?)、引用准确性(引用来源是否与声明匹配?)、完整性(是否涵盖所有请求的方面?)、来源质量(是否使用主要来源而不是质量较低的次要来源?)和工具效率(是否以合理的次数使用了正确的工具?))评估每个输出。我们尝试了多个判断器来评估每个组件,但发现使用一个 LLM 调用,一个提示输出 0.0-1.0 的分数和一个通过/失败等级是最一致的,并且与人类判断相符。当评估测试用例确实有明确答案时,这种方法尤其有效,我们可以使用 LLM 判断器简单地检查答案是否正确(即,它是否准确列出了研发预算前三名的制药公司?)。使用 LLM 作为判断器使我们能够可扩展地评估数百个输出。
- 人工评估捕获自动化遗漏的内容。 测试智能体的人员会发现评估遗漏的边缘情况。这包括对异常查询的幻觉答案、系统故障或微妙的来源选择偏差。在我们的案例中,人工测试人员注意到,我们早期的智能体始终选择 SEO 优化的内容农场,而不是权威但排名较低的来源,例如学术 PDF 或或个人博客。在我们的提示中添加来源质量启发式方法有助于解决此问题。即使在自动化评估的世界中,手动测试仍然至关重要。
多智能体系统具有涌现行为,它们是在没有特定编程的情况下产生的。例如,对主智能体的微小更改可能会不可预测地改变子智能体的行为。成功需要理解交互模式,而不仅仅是单个智能体的行为。因此,这些智能体的最佳提示不仅仅是严格的指令,而是定义分工、解决问题方法和工作预算的协作框架。要做到这一点,需要仔细的提示和工具设计、可靠的启发式方法、可观察性以及紧密的反馈循环。有关我们系统中的示例提示,请参阅我们食谱中的开源提示。
生产可靠性和工程挑战
在传统软件中,一个 bug 可能会破坏功能、降低性能或导致中断。在智能体系统中,微小的变化会级联为大的行为变化,这使得为必须在长时间运行过程中维护状态的复杂智能体编写代码异常困难。
- 智能体是有状态的,错误会累积。 智能体可以长时间运行,并在多次工具调用中保持状态。这意味着我们需要持久地执行代码并在此过程中处理错误。如果没有有效的缓解措施,微小的系统故障对智能体来说可能是灾难性的。当发生错误时,我们不能仅仅从头开始:重新启动既昂贵又令用户沮丧。相反,我们构建了可以在智能体发生错误时从其所在位置恢复的系统。我们还利用模型的智能来优雅地处理问题:例如,让智能体知道工具何时出现故障并让其适应效果出奇地好。我们将基于 Claude 构建的 AI 智能体的适应性与重试逻辑和定期检查点等确定性保障措施结合起来。
- 调试受益于新方法。 智能体做出动态决策,并且在运行之间是非确定性的,即使使用相同的提示也是如此。这使得调试更加困难。例如,用户会报告智能体“找不到明显信息”,但我们无法看到原因。智能体是否使用了糟糕的搜索查询?选择了糟糕的来源?还是遇到了工具故障?添加完整的生产跟踪使我们能够诊断智能体失败的原因并系统地修复问题。除了标准可观察性之外,我们还监控智能体决策模式和交互结构——所有这些都无需监控单个对话的内容,以维护用户隐私。这种高级别可观察性帮助我们诊断根本原因、发现意外行为并修复常见故障。
- 部署需要仔细协调。 智能体系统是高度有状态的提示、工具和执行逻辑的网络,几乎连续运行。这意味着无论何时我们部署更新,智能体都可能处于其过程中的任何位置。因此,我们需要防止我们善意的代码更改破坏现有智能体。我们无法同时将所有智能体更新到新版本。相反,我们使用彩虹部署来避免中断正在运行的智能体,通过逐渐将流量从旧版本转移到新版本,同时保持两者同时运行。
- 同步执行造成瓶颈。 目前,我们的主智能体同步执行子智能体,等待每组子智能体完成才能继续。这简化了协调,但在智能体之间的信息流中造成了瓶颈。例如,主智能体无法引导子智能体,子智能体无法协调,整个系统可能会在等待单个子智能体完成搜索时被阻塞。异步执行将实现额外的并行性:智能体并发工作并在需要时创建新的子智能体。但这种异步性增加了结果协调、状态一致性以及跨子智能体错误传播方面的挑战。随着模型能够处理更长、更复杂的研究任务,我们预计性能提升将证明其复杂性是合理的。
结论
在构建人工智能智能体时,最后一公里往往成为旅程的大部分。在开发人员机器上工作的代码库需要大量的工程工作才能成为可靠的生产系统。智能体系统中错误的复合性质意味着传统软件中的小问题可能会完全破坏智能体。一步失败可能导致智能体探索完全不同的轨迹,从而导致不可预测的结果。由于本文中描述的所有原因,原型和生产之间的差距通常比预期要大。
尽管面临这些挑战,多智能体系统已被证明对开放式研究任务很有价值。用户表示,Claude 帮助他们发现了以前未曾考虑的商机,浏览复杂的医疗保健选择,解决了棘手的技术错误,并通过发现他们自己无法找到的研究联系节省了长达数天的工作。通过细致的工程、全面的测试、注重细节的提示和工具设计、稳健的操作实践以及研究、产品和工程团队之间对当前智能体能力有深刻理解的紧密协作,多智能体研究系统可以可靠地大规模运行。我们已经看到这些系统正在改变人们解决复杂问题的方式。

致谢
由 Jeremy Hadfield、Barry Zhang、Kenneth Lien、Florian Scholz、Jeremy Fox 和 Daniel Ford 撰写。这项工作反映了 Anthropic 多个团队的集体努力,他们使研究功能成为可能。特别感谢 Anthropic 应用程序工程团队,他们的奉献使这个复杂的多智能体系统投入生产。我们也非常感谢早期用户提供的宝贵反馈。
附录
以下是多智能体系统的一些额外杂项提示。
- 对经过多轮状态突变的智能体进行终态评估。 评估在多轮对话中修改持久状态的智能体带来了独特的挑战。与只读研究任务不同,每个操作都可能改变后续步骤的环境,从而产生传统评估方法难以处理的依赖关系。我们发现专注于终态评估而不是逐轮分析取得了成功。与其判断智能体是否遵循特定过程,不如评估它是否达到了正确的最终状态。这种方法承认智能体可能会找到达到相同目标的其他路径,同时仍确保它们提供预期的结果。对于复杂的工作流程,将评估分解为应发生特定状态变化的离散检查点,而不是尝试验证每个中间步骤。
- 长时程会话管理。 生产智能体通常会进行数百轮对话,需要仔细的上下文管理策略。随着对话的延长,标准上下文窗口变得不足,需要智能压缩和记忆机制。我们实现了这样一种模式:智能体总结已完成的工作阶段,并将基本信息存储在外部内存中,然后再进行新任务。当上下文限制接近时,智能体可以生成具有干净上下文的新子智能体,同时通过仔细的交接保持连续性。此外,它们可以从内存中检索存储的上下文(例如研究计划),而不是在达到上下文限制时丢失之前的工作。这种分布式方法可以防止上下文溢出,同时在长时间交互中保持对话连贯性。
- 子智能体输出到文件系统以最小化“传话游戏”。 某些类型的结果,子智能体可以直接输出,绕过主协调器,从而提高保真度和性能。与其要求子智能体通过主智能体传达所有信息,不如实现文物系统,让专门的智能体可以创建独立持久化的输出。子智能体调用工具将其工作存储在外部系统中,然后将轻量级引用传递回协调器。这可以防止多阶段处理过程中的信息丢失,并减少通过对话历史复制大量输出的标记开销。这种模式特别适用于结构化输出,如代码、报告或数据可视化,其中子智能体的专用提示比通过通用协调器过滤产生更好的结果。