[翻译] Anthropic:我们如何构建多智能体 Research 系统
原文链接:https://www.anthropic.com/engineering/built-multi-agent-research-system
发表日期:2025 年 6 月 13 日
翻译:Dia
校对审阅:Kafka@自在哪吒
Claude 现在具备了 Research 能力,可以跨越 Web、Google Workspace 以及各种集成工具进行搜索,以完成复杂任务。
这个多智能体系统从原型到生产的历程,让我们在系统架构、工具设计和提示工程方面收获了关键经验。多智能体系统由多个智能体(LLM 在循环中自主使用工具)协同工作。我们的 Research 功能包括一个能根据用户查询规划研究流程的智能体,然后利用工具创建多个并行的子智能体同时搜索信息。多智能体系统带来了智能体协调、评估和可靠性等新的挑战。
本文将分解我们认为有效的原则——希望对你构建自己的多智能体系统有所帮助。
多智能体系统的优势
研究工作涉及开放性问题,很难提前预测所需步骤。你无法为探索复杂主题硬编码固定路径,因为过程本质上是动态且依赖路径的。当人类进行研究时,往往会根据不断出现的新发现持续调整方法,跟随调查过程中出现的线索。
这种不可预测性使得 AI 智能体非常适合研究任务。研究需要随时调整方向、探索边缘关联的能力。模型必须能自主运行多轮,根据中间发现决定后续方向。线性的单步流程无法胜任这些任务。
搜索的本质是压缩:从海量语料中提炼见解。子智能体通过各自的上下文窗口并行工作,实现压缩——同时探索问题的不同方面,然后将最重要的内容压缩给主研究智能体。每个子智能体还实现了关注点分离——不同的工具、提示和探索路径,减少了路径依赖,使研究更全面、独立。
一旦智能体达到一定水平,多智能体系统就成为扩展能力的关键方式。例如,虽然单个人类智慧的提升有限,但人类社会因集体智慧与协调能力,在信息时代变得“指数级”强大。即使是通用智能体,单打独斗也有极限;群体智能体能取得更大成就。
我们的内部评估显示,多智能体研究系统在需要同时探索多个独立方向的宽度优先查询上表现尤为突出。例如,在要求找出 S&P 500 信息技术公司所有董事会成员时,多智能体系统将任务分解给子智能体,成功找到答案,而单智能体系统用缓慢的顺序搜索却失败了。
多智能体系统之所以有效,主要是因为它们能消耗足够多的 token 来解决问题。在我们的分析中,三大因素解释了 BrowseComp 评测(测试浏览型智能体定位难找信息能力)性能方差的 95%。单独看 token 使用量就解释了 80% 的方差,工具调用次数和模型选择是另外两个解释因素。这一发现验证了我们的架构——把工作分配到拥有独立上下文窗口的智能体,实现并行推理。最新的 Claude 模型极大提升了 token 使用效率,比如升级到 Claude Sonnet 4 比在 Claude Sonnet 3.7 上加倍 token 预算带来的性能提升还要大。对于超出单智能体极限的任务,多智能体架构能有效扩展 token 使用。
但这也有缺点:这些架构在实践中 token 消耗极高。我们的数据显示,智能体通常比聊天交互多用约 4 倍 token,多智能体系统则比聊天多用约 15 倍 token。因此,要实现经济可行,多智能体系统必须用于任务价值足够高的场景。此外,要求所有智能体共享上下文或存在高度依赖的领域,如大多数编程任务,目前并不适合多智能体系统。我们发现,多智能体系统在需要高度并行、信息量超出单一上下文窗口、需对接多种复杂工具的高价值任务上表现最佳。
Research 系统的架构概述
我们的 Research 系统采用多智能体架构,遵循“协调者-工作者”模式:主智能体协调流程,分配任务给并行的专用子智能体。
当用户提交查询时,主智能体分析、制定策略,并生成子智能体同时探索不同方向。如上图所示,子智能体作为智能过滤器,反复使用搜索工具收集关于 2025 年 AI 智能体公司的信息,然后把公司名单返回主智能体,由主智能体整合最终答案。
传统的检索增强生成(RAG)采用静态检索,即检索与输入查询最相似的内容块用于生成答案。而我们的架构采用多步搜索,能动态发现相关信息,随新发现调整,分析结果以生成高质量答案。
研究智能体的提示工程与评估
多智能体系统与单智能体系统不同,协调复杂度激增。早期智能体会为简单查询生成 50 个子智能体、无休止地搜索不存在的来源、频繁打断彼此等。每个智能体都由提示引导,因此提示工程是我们改进行为的主要手段。以下是我们在提示工程上的经验原则:
像你的智能体一样思考。 要迭代提示,必须理解其效果。我们用 Console 搭建模拟,复现系统的提示和工具,观察智能体逐步工作。这立刻暴露了失败模式:如明明结果已足够却继续、搜索查询冗长、选错工具等。有效提示依赖于对智能体行为的准确心智模型,这样才能发现最有影响力的改动。
教会协调者如何分工。 主智能体需将查询拆解成子任务并清晰描述给子智能体。每个子智能体都需要明确目标、输出格式、工具和来源选择、清晰的任务边界。没有详细任务描述,智能体就会重复劳动、遗漏信息或找不到所需内容。比如,最初主智能体只给出“研究半导体短缺”这样的简单指令,但子智能体往往误解任务,或重复搜索同一主题。比如,一名子智能体研究 2021 年汽车芯片危机,另外两个却重复查找 2025 年供应链,分工无效。
根据查询复杂度匹配投入。 智能体难以判断不同任务所需的努力程度,因此我们把规则写入提示:简单事实查询只需 1 个智能体、3-10 次工具调用;直接对比需 2-4 个智能体、10-15 次调用;复杂研究则用 10 个以上智能体、分工明确。显式指导帮助主智能体高效分配资源,避免在简单查询上过度投入,这是早期常见的失败模式。
工具设计与选择至关重要。 智能体-工具接口和人机接口同样重要。用对工具很高效——有时甚至是必须的。例如,若智能体在网络上查找只存在于 Slack 的信息,必然失败。MCP 服务器让模型能访问外部工具,这一问题更突出,因为工具描述质量参差不齐。我们给智能体明确的启发式方法:先检查所有可用工具,工具选择要符合用户意图,广泛探索用网络搜索,专用任务优先选专用工具。糟糕的工具描述会让智能体走错路,所以每个工具都需要独特的功能和清晰的说明。
让智能体自我提升。 Claude 4 模型本身就是优秀的提示工程师。给定提示和失败案例,它能诊断失败原因并提出改进建议。我们甚至创建了工具测试智能体——给它一个有缺陷的 MCP 工具,它会尝试使用并重写工具描述以规避失败。通过多次测试,这个智能体能发现关键细节和漏洞。改进工具描述后,后续智能体完成任务时间减少了 40%,因为大部分错误都能避免。
先广后窄。 搜索策略应像专家进行研究那样:先广泛探索,再聚焦细节。智能体常常默认用过长、过具体的查询,结果很少。我们通过提示让智能体先用简短、宽泛的查询,评估可用信息后,再逐步聚焦。
引导思考过程。 扩展思考模式让 Claude 在输出时展示可控的思考过程。主智能体用思考来规划方法、评估工具、确定查询复杂度和子智能体数量、定义分工。测试显示,扩展思考能提升指令遵循、推理和效率。子智能体也会规划任务,并在工具调用后用交错思考评估质量、发现信息缺口、优化后续查询。这使得子智能体能适应各种任务。
并行调用工具极大提升速度和表现。 复杂研究任务自然需要查阅大量来源。早期智能体顺序搜索,速度极慢。为提升速度,我们引入两种并行:主智能体同时启动 3-5 个子智能体,而子智能体也能并行调用 3 个以上工具。这些改动将复杂查询的研究时间缩短多达 90%,几分钟内覆盖的信息量远超其他系统。
我们的提示策略重在灌输良好启发式而非死板规则。我们研究了人类专家如何进行研究,并将这些策略编码进提示中——比如把难题拆解成小任务、评估来源质量、根据新信息调整搜索方法、判断何时深挖(聚焦单一主题)与广泛探索(并行查找多个主题)。我们还通过显式的防护措施防止智能体“失控”。最后,我们注重快速迭代、可观测性和测试用例。
智能体的有效评估
良好的评估对可靠 AI 应用至关重要,多智能体系统也不例外。但多智能体系统评估有独特挑战。传统评估假设 AI 每次都走同一条路径:输入 X,应该沿路径 Y 得到输出 Z。但多智能体系统不是这样。即便起点相同,智能体可能走不同路径达到目标。一个智能体查 3 个来源,另一个查 10 个,或用不同工具得出同样答案。因为我们并不总知道“正确”步骤,所以通常无法仅仅检查智能体是否遵循了我们预设的流程。我们需要灵活的评估方法,既判断结果正确,也看过程是否合理。
用少量样本立即评估。 智能体开发早期,改动影响巨大,常有“低垂果实”。一个提示调整能让成功率从 30% 提升到 80%。在这种情况下,只需用 20 个左右的真实用例测试,就能明显看出效果。我们发现,AI 团队常因觉得只有几百条大样本评测才有用而拖延评测,其实应立刻用少量样本开始测试。
用 LLM 作为评审能很好扩展。 研究型输出难以用程序化方法评估,因为结果是开放文本,很少有唯一正确答案。LLM 非常适合打分。我们让 LLM 按照评分标准(事实准确性、引用准确性、完整性、来源质量、工具效率)为每个输出打分(0.0-1.0)并给出通过/未通过。我们尝试过多轮评审,但发现单次 LLM 打分最一致且与人工判断最接近。对于有标准答案的测试用例,LLM 评审尤其有效,比如检查是否准确列出制药公司研发投入前三的企业。用 LLM 作为评审能高效评估数百个输出。
人工评测能发现自动评估遗漏。 人工测试能发现边缘案例,比如罕见查询下的幻觉答案、系统故障或微妙的来源选择偏差。我们发现早期智能体总是倾向于选择 SEO 优化的内容农场,而不是权威但排名不高的学术 PDF 或个人博客。加上来源质量启发式后,这一问题得到解决。即使自动化评测已很强,人工测试仍必不可少。
多智能体系统有“涌现行为”,即未编程的行为自发出现。比如,主智能体的小改动会不可预测地影响子智能体。因此,最好的提示不是死板指令,而是协作框架:定义分工、解题策略和资源预算。要做到这一点,需要精心的提示和工具设计、良好的启发式、可观测性和紧密的反馈循环。我们的 Cookbook 中有开源提示示例可供参考。
生产环境下的可靠性与工程挑战
传统软件中,一个 bug 可能导致功能损坏、性能下降或宕机。而在智能体系统中,微小改动会级联成大行为变化,让编写能长期维护状态的复杂智能体代码极具挑战。
智能体有状态,错误易叠加。 智能体可长时间运行,在多次工具调用间维护状态。这就要求代码能持久执行并妥善处理错误。否则,小故障会导致灾难性后果。出错时不能简单重启——重启代价高且令人沮丧。我们构建了能从出错点恢复的系统,也利用模型智能优雅应对问题,比如让智能体知晓工具失效并自适应。我们结合了基于 Claude 的 AI 智能体适应力和确定性的保护机制(如重试逻辑和定期检查点)。
调试需要新方法。 智能体决策动态,哪怕提示相同,每次运行结果也不同,调试更难。比如,用户反馈“找不到明显信息”,我们却无法直接定位原因。是搜索查询不佳?选错来源?工具失效?加上全流程追踪后,我们能系统性诊断失败原因并修复。除了标准可观测性,我们还监控智能体决策模式和交互结构——但不监控具体对话内容,保障用户隐私。这种高层可观测性帮助我们诊断根因、发现意外行为并修复常见故障。
部署需精细协调。 智能体系统是高度有状态的提示、工具和执行逻辑网络,几乎持续运行。每次部署更新时,智能体可能正处于流程中某一步。我们不能让代码变更中断现有智能体,因此采用“彩虹部署”,逐步将流量从旧版本切换到新版本,同时保证两者并行运行。
同步执行带来瓶颈。 当前主智能体需等待所有子智能体完成后才能继续,这虽简化了协调,但造成信息流瓶颈。比如,主智能体无法实时引导子智能体,子智能体之间也无法协作,整个系统可能因一个子智能体卡住而停滞。异步执行能提升并行度——智能体可同时工作并按需生成新子智能体。但异步也带来结果协调、状态一致性和错误传播等新挑战。随着模型能处理更长更复杂的研究任务,我们预计性能提升将值得这份复杂性。
结论
构建 AI 智能体时,最后一公里常常变成了整个旅程的核心。开发环境下能跑的代码,要真正变成可靠的生产系统,需要大量工程工作。智能体系统的复合错误意味着传统软件中的小问题,可能让智能体完全“跑偏”,出现不可预测的结果。正因如此,从原型到生产的鸿沟比预期还要大。
尽管挑战重重,多智能体系统已在开放式研究任务中展现巨大价值。用户反馈 Claude 帮他们发现了未曾考虑的商机、理清了复杂医疗选项、解决了技术难题,甚至节省了数天的研究时间。只要工程细致、测试完善、提示与工具设计精良、运维健全、团队紧密协作,深刻理解智能体能力,多智能体研究系统就能可靠大规模运行。我们已经看到这些系统在解决复杂问题时带来的变革。
致谢
作者:Jeremy Hadfield、Barry Zhang、Kenneth Lien、Florian Scholz、Jeremy Fox 和 Daniel Ford。本项目凝聚了 Anthropic 多个团队的集体努力,特别感谢应用工程团队的奉献,以及早期用户的宝贵反馈。
附录
以下是多智能体系统的一些补充建议。
多轮对话中变更状态的智能体的终态评估。 评估在多轮对话中会持续变更状态的智能体极具挑战。与只读研究任务不同,每一步操作都可能影响后续,传统评估难以应对。我们发现关注最终状态而非每一步更为有效。只要最终达到目标即可,允许智能体用不同路径达成同一结果。对于复杂流程,可分为若干检查点,分别验证关键状态变化,而不是每一步都评判。
长对话管理。 生产环境下,智能体常需处理数百轮对话,需精细管理上下文。随着对话延长,常规上下文窗口已不够用,需用智能压缩和外部记忆机制。我们采用的模式是:智能体在每个阶段结束后总结工作并存入外部记忆,继续下一阶段。上下文接近极限时,智能体可生成新子智能体,保持上下文清晰,同时通过合理交接保证连续性。还可随时检索存储的研究计划,避免上下文溢出导致信息丢失。这种分布式方式能保证超长对话的连贯性。
子智能体输出到文件系统,减少“传话游戏”。 某些情况下,子智能体可直接将输出写入外部系统,而不是一层层传递给主协调者,这样既提升了结果的准确性,也提高了效率。子智能体调用工具,将成果存储到外部系统,再把引用返回给协调者。这样能避免多轮处理中的信息损失,减少 token 消耗。对于代码、报告、数据可视化等结构化输出尤其有效,因为子智能体的专用提示往往比主协调者过滤后更优。