目录
原文链接: https://www.anthropic.com/engineering/multi-agent-research-system
我们如何构建multi-agent research系统
我们的Reseaerch 功能借助多个 Claude agent,能更高效地探索复杂主题。本文将分享构建该系统过程中遇到的工程挑战,以及我们从中汲取的经验教训。
如今,Claude 具备Research能力 有:跨网页搜索、Google Workspace 及各类集成工具 来完成复杂任务。
这套多Agent体系统从原型到产品的研发历程,让我们在系统架构、工具设计和提示词工程方面获得了关键经验。多智能体系统由多个Agent(LLM 自主循环使用Tool)协同工作构成。我们的Research功能包含一个核心智能体:它会根据用户查询制定Research流程,随后借助工具创建多个子agent,同时并行搜索信息。multi-agent系统在agent协同、评估和可靠性方面带来了新的挑战。
本文将拆解对我们有效的核心原则,希望能为你构建自己的multi-agent系系统提供实用参考。
multi-agent架构的优势
Research工作涉及的开放式问题,往往难以提前预测所需步骤。探索复杂主题的过程具有内在动态性和路径依赖性,无法通过硬编码设定固定流程。人类开展研究时,会根据发现不断调整方法,追踪调查中出现的新线索。
这种不可预测性使得 AI Agent特别适合Research任务。研究需要随着调查推进灵活调整方向或探索相关关联点,模型必须自主完成多轮操作,并根据中间结果决定后续探索方向 —— 线性的 “一次性” 流程无法应对这类任务。
搜索的本质是 “压缩”:从海量信息中提炼核心洞见。子智能体通过以下方式助力这一过程:凭借各自的上下文窗口并行运作,同时探索问题的不同方面,再将最重要的信息片段整合后反馈给主导研究的核心智能体。此外,每个子智能体各司其职,拥有独立的工具、提示词和探索路径,这不仅降低了路径依赖性,还能实现全面、独立的调查。
当智能水平达到一定阈值后,多智能体系统成为提升性能的关键方式。例如,过去 10 万年里,人类个体的智能水平虽有提升,但在信息时代,人类社会凭借集体智慧和协同能力,整体能力实现了指数级增长。即便具备通用智能的单个智能体也存在能力局限,而多个智能体协同则能完成远更复杂的任务。
我们的内部评估显示,多智能体研究系统在 “广度优先” 类查询中表现尤为突出 —— 这类查询需要同时探索多个独立方向。在内部研究评估中,以 Claude Opus 4 为核心智能体、Claude Sonnet 4 为子智能体的多智能体系统,性能比单个 Claude Opus 4 智能体高出 90.2%。例如,当要求 “找出标普 500 指数中信息技术类公司的所有董事会成员” 时,多智能体系统通过将任务拆解给子智能体,成功获取了正确答案;而单智能体系统因采用缓慢的串行搜索,最终未能完成任务。
多智能体系统之所以有效,核心在于它能投入足够的 “令牌(token)” 来解决问题。在我们的分析中,三个因素解释了 BrowseComp 评估(测试浏览智能体定位难获取信息能力的评估项目)中 95% 的性能差异:其中,令牌使用量本身占 80%,工具调用次数和模型选择则是另外两个影响因素。这一发现验证了我们的架构合理性 —— 将任务分配给拥有独立上下文窗口的多个智能体,能提升并行推理能力。最新的 Claude 模型大幅提高了令牌使用效率:升级到 Claude Sonnet 4 带来的性能提升,甚至超过了将 Claude Sonnet 3.7 的令牌预算翻倍的效果。对于单智能体上下文窗口无法承载的任务,多智能体架构能有效扩展令牌使用能力。
但多智能体系统也存在缺点:实际应用中,这类架构的令牌消耗速度极快。数据显示,单个智能体的令牌使用量通常是普通聊天交互的 4 倍左右,而多智能体系统则是普通聊天的 15 倍。从经济可行性角度,多智能体系统仅适用于 “任务价值足以覆盖性能提升成本” 的场景。此外,部分领域目前并不适合多智能体系统,例如需要所有智能体共享相同上下文、或智能体间存在大量依赖关系的场景。以编码任务为例,其可并行的子任务数量远少于研究任务,且目前 LLM 智能体在实时协同和任务委派方面仍有不足。我们发现,多智能体系统在以下任务中表现最佳:高度可并行、信息规模超出单智能体上下文窗口、需对接多个复杂工具,且任务价值较高。
研究系统的架构概述
我们的研究系统采用 “协调者 – 工作者” 模式的多智能体架构:由一个核心智能体(Lead Agent)协调整体流程,同时将任务委派给多个专业子智能体(Subagent),子智能体之间并行运作。
多智能体架构的实际运作逻辑:用户查询先传递给核心智能体,核心智能体创建专业子智能体,并行探索问题的不同方面。例如,当查询 “2025 年的 AI 智能体公司” 时,子智能体通过迭代使用搜索工具收集信息,将公司列表反馈给核心智能体,再由核心智能体整合出最终答案。
传统的检索增强生成(RAG)技术采用 “静态检索”—— 即获取与输入查询最相似的一组信息片段,再基于这些片段生成回复。与之不同,我们的架构采用 “多步动态搜索”:动态查找相关信息、根据新发现调整策略、分析结果以生成高质量答案。
- 用户发送查询请求;
- 系统创建核心研究智能体;
- 核心智能体启动迭代式研究流程:
- 思考(制定研究方案)并将方案存入记忆模块;
- 调取上下文信息,为 “方面 A”“方面 B” 分别创建子智能体;
- 子智能体各自执行网页搜索,思考(评估结果)后完成任务并反馈;
- 核心智能体整合结果,判断是否需要进一步研究:
- 无需继续:退出循环,生成研究结果;
- 需要继续:重复上述流程(创建新子智能体或优化策略);
- 引用智能体处理文档和研究报告,定位需添加引用的位置,生成带引用的报告;
- 系统持久化存储结果,并向用户返回含引用的研究结论。
研究智能体的提示词工程与评估
多智能体系统与单智能体系统存在关键差异,其中最突出的是协同复杂度的急剧提升。早期智能体常出现各类问题:如为简单查询生成 50 个子智能体、无休无止地搜索不存在的信息源、或通过过多更新干扰其他智能体。由于每个智能体的行为由提示词引导,提示词工程成为我们改善这些问题的主要手段。以下是我们总结的提示词设计原则:
-
换位思考,理解智能体逻辑:要优化提示词,必须先理解其对智能体行为的影响。为此,我们利用控制台(Console)搭建了仿真环境,使用与系统完全一致的提示词和工具,逐步观察智能体的运作过程。这一方法直接暴露了多种失效模式:例如智能体已获取足够结果仍继续搜索、使用过于冗长的搜索查询、选择错误工具等。有效的提示词设计依赖于对智能体形成准确的 “心智模型”,这能让关键优化方向变得清晰。
-
教会协调者如何委派任务:在我们的系统中,核心智能体需将查询拆解为子任务,并向子智能体清晰描述。每个子智能体都需要明确的目标、输出格式、工具 / 信息源使用指南,以及清晰的任务边界。若任务描述模糊,子智能体可能重复工作、遗漏关键信息,或无法找到必要内容。早期,我们允许核心智能体给出简单指令(如 “研究半导体短缺问题”),但发现这类指令过于模糊,导致子智能体误解任务,或与其他子智能体重复搜索。例如,一个子智能体研究 2021 年汽车芯片危机,另外两个则重复调查 2025 年当前供应链情况,完全没有实现有效的任务分工。
-
根据查询复杂度匹配投入力度:智能体难以判断不同任务所需的合理投入,因此我们在提示词中嵌入了 “规模规则”:简单事实查询仅需 1 个智能体,搭配 3-10 次工具调用;直接对比类任务可能需要 2-4 个子智能体,每个子智能体调用 10-15 次工具;复杂研究任务则可能需要 10 个以上子智能体,并明确划分职责。这些明确准则帮助核心智能体高效分配资源,避免在简单查询上过度投入 —— 这是早期版本中常见的失效问题。
-
工具设计与选择至关重要:智能体与工具的交互接口,其重要性不亚于人机交互接口。使用合适的工具不仅高效,往往更是完成任务的必要前提。例如,若某个信息仅存在于 Slack 中,而智能体却在网页上搜索,从一开始就注定失败。由于 MCP 服务器(为模型提供外部工具访问权限)的存在,这一问题会进一步加剧:智能体可能遇到各类工具,且工具描述的质量参差不齐。为此,我们为智能体提供了明确的启发式规则:例如先检查所有可用工具、根据用户意图匹配工具、通过网页搜索进行广泛外部探索、优先使用专业工具而非通用工具等。糟糕的工具描述会让智能体误入歧途,因此每个工具都需要明确的用途和清晰的说明。
-
让智能体自我优化:我们发现,Claude 4 系列模型具备出色的提示词优化能力。当提供提示词和失效案例时,模型能诊断智能体失效的原因并提出改进建议。我们甚至开发了一个 “工具测试智能体”:给定一个设计有缺陷的 MCP 工具,它会尝试使用该工具,然后重写工具描述以避免失效。通过数十次测试,该智能体能发现工具的关键细节问题和漏洞。这种优化工具易用性的方法,使后续使用新描述的智能体的任务完成时间缩短了 40%—— 因为它们能规避大多数错误。
-
先广度探索,再聚焦细节:搜索策略应模仿人类专家的研究方式:先了解整体情况,再深入具体细节。智能体通常会默认使用过长、过具体的查询,导致结果寥寥。为应对这一倾向,我们通过提示词引导智能体:先使用简短、宽泛的查询,评估可用信息后,再逐步缩小搜索范围。
-
引导智能体的思考过程:“扩展思考模式” 能让 Claude 输出更多可见的思考过程令牌,相当于一个可控的 “草稿本”。核心智能体利用这一模式规划研究方案:评估哪些工具适合任务、判断查询复杂度和子智能体数量、定义每个子智能体的角色。测试表明,扩展思考模式能提升智能体的指令遵循度、推理能力和效率。子智能体也会先规划,再在获取工具结果后通过 “交错思考” 评估结果质量、识别信息缺口、优化下一次查询 —— 这让子智能体在应对各类任务时更具适应性。
-
并行工具调用大幅提升速度与性能:复杂研究任务天然需要探索多个信息源。早期智能体采用串行搜索,速度极慢。为提升速度,我们引入了两种并行机制:(1)核心智能体并行启动 3-5 个子智能体,而非串行启动;(2)子智能体并行使用 3 个以上工具。这些改进使复杂查询的研究时间缩短了高达 90%,让研究功能能在几分钟内完成原本需要数小时的工作,同时覆盖比其他系统更多的信息。
我们的提示词策略核心是 “植入良好的启发式规则”,而非制定僵化的指令。我们研究了人类专家的研究方法,并将这些策略编码到提示词中 —— 例如将复杂问题拆解为小任务、仔细评估信息源质量、根据新信息调整搜索策略、判断何时需聚焦深度(深入研究单个主题)或广度(并行探索多个主题)。同时,我们通过设置明确的 “护栏” 来主动规避意外副作用,防止智能体失控。最后,我们注重构建 “快速迭代循环”,结合可观测性和测试用例持续优化。
智能体的有效评估方法
良好的评估对于构建可靠的 AI 应用至关重要,智能体也不例外。但多智能体系统的评估存在独特挑战:传统评估通常假设 AI 每次都会遵循相同步骤 —— 给定输入 X,系统应沿路径 Y 生成输出 Z。但多智能体系统并非如此:即使初始条件相同,智能体也可能通过完全不同的有效路径达成目标。例如,一个智能体可能搜索 3 个信息源,另一个则搜索 10 个;或使用不同工具获取相同答案。由于我们往往无法预知 “正确步骤”,因此不能简单检查智能体是否遵循了预设的 “正确流程”。相反,我们需要灵活的评估方法:既要判断智能体是否达成正确结果,也要评估其过程是否合理。
-
从少量样本开始,立即启动评估:在智能体开发早期,由于存在大量 “低垂的果实”(易优化的问题),任何调整都可能带来显著影响 —— 例如一个提示词修改可能将成功率从 30% 提升至 80%。这种大幅效果差异意味着,仅通过少量测试用例就能发现变化。我们最初选取了约 20 个模拟真实使用场景的查询,测试这些查询通常能清晰反映调整的效果。我们常听到 AI 开发团队推迟评估,因为他们认为只有包含数百个测试用例的 “大规模评估” 才有用。但实际上,最好从少量示例开始即时进行小规模测试,而非等到能构建更全面的评估体系再行动。
-
LLM 作为评估者(LLM-as-judge):合理使用可实现规模化评估:研究输出难以通过编程方式评估 —— 因其是自由文本,且很少存在唯一正确答案。LLM 天然适合这类评估任务。我们使用 LLM 评估者,根据评分标准对每个输出进行评估,标准包括:事实准确性(主张是否与信息源一致?)、引用准确性(引用的信息源是否支撑主张?)、完整性(是否覆盖所有要求的方面?)、信息源质量(是否优先使用一手源而非低质量二手源?)、工具效率(是否使用正确工具,且调用次数合理?)。我们曾尝试用多个评估者分别评估各个维度,但发现 “单次 LLM 调用 + 单个提示词” 的方式最稳定,且与人类判断一致性最高 —— 该方式输出 0.0-1.0 的分数及 “通过 / 失败” 评级。当评估用例存在明确答案时(如 “准确列出研发预算前三的制药公司”),这种方法尤为有效,可直接让 LLM 评估者验证答案正确性。借助 LLM 作为评估者,我们得以规模化评估数百个输出结果。
-
人类评估:捕捉自动化评估遗漏的问题:人类测试者能发现评估用例未覆盖的边缘场景,例如特殊查询下的幻觉答案、系统故障、或细微的信息源选择偏差。在我们的开发中,人类测试者发现早期智能体总是优先选择 “SEO 优化内容农场”,而非学术 PDF 或个人博客等权威性更高但排名较低的信息源。随后,我们在提示词中添加了 “信息源质量启发式规则”,解决了这一问题。即便在自动化评估普及的今天,人工测试依然不可或缺。
多智能体系统存在 “涌现行为”—— 即无需特定编程即可出现的行为。例如,对核心智能体的微小修改,可能会意外改变子智能体的行为。要实现系统成功,需理解智能体间的交互模式,而非仅关注单个智能体的行为。因此,最有效的提示词并非僵化指令,而是 “协作框架”—— 明确分工、问题解决方法和资源预算。要实现这一点,需依赖细致的提示词设计、工具优化、可靠的启发式规则、可观测性,以及紧密的反馈循环。如需参考示例提示词,可查看我们工具包(Cookbook)中的开源提示词。
生产环境可靠性与工程挑战
在传统软件中,一个漏洞可能导致功能故障、性能下降或系统中断;但在智能体系统中,微小的修改可能引发巨大的行为连锁反应 —— 这使得为 “需在长期运行中维持状态的复杂智能体” 编写代码变得异常困难。
-
智能体具有状态性,错误会累积放大:智能体可长期运行,并在多次工具调用中维持状态。这意味着我们需要确保代码能稳定执行,并处理过程中的错误。若缺乏有效缓解措施,微小的系统故障可能对智能体造成灾难性影响。错误发生时,我们不能简单地从头重启(重启成本高且会让用户不满),因此我们构建了 “断点续跑” 系统 —— 能从智能体出错的位置恢复运行。同时,我们利用模型的智能来优雅处理问题:例如,告知智能体某个工具出现故障,让其自主调整策略,这种方法效果显著。我们将基于 Claude 构建的 AI 智能体的 “适应性”,与 “重试逻辑”“定期检查点” 等确定性保障措施相结合,提升系统稳定性。
-
调试需要新方法:即使使用相同的提示词,智能体的决策也具有动态性和非确定性,这增加了调试难度。例如,用户报告 “智能体找不到明显存在的信息”,但我们无法直接判断原因:是搜索查询不佳?信息源选择错误?还是工具调用失败?为此,我们添加了 “全生产链路追踪” 功能,能系统性诊断智能体失效原因并修复问题。除标准可观测性工具外,我们还监控智能体的决策模式和交互结构 —— 同时严格不监控单个对话内容,以保护用户隐私。这种高层级的可观测性帮助我们定位根本原因、发现意外行为、修复常见故障。
-
部署需要精细协调:智能体系统是由提示词、工具和执行逻辑构成的高度有状态网络,且几乎持续运行。这意味着每当我们部署更新时,智能体可能正处于运行流程的任意阶段。因此,我们必须避免 “善意的代码修改” 破坏正在运行的智能体,且不能将所有智能体同时升级到新版本。为此,我们采用 “彩虹部署(Rainbow Deployment)” 策略:让新旧版本同时运行,逐步将流量从旧版本切换到新版本,从而避免干扰正在运行的智能体。
-
同步执行存在瓶颈:目前,我们的核心智能体采用 “同步执行” 方式调用子智能体 —— 需等待一组子智能体全部完成任务后才能继续。这种方式简化了协同,但造成了智能体间信息流动的瓶颈:例如,核心智能体无法实时引导子智能体、子智能体间无法协同、整个系统可能因等待某个子智能体完成搜索而陷入停滞。“异步执行” 可进一步提升并行性:智能体可并发工作,并在需要时创建新子智能体。但异步性也带来了新挑战,如结果协同、状态一致性、子智能体间的错误传播等。随着模型能处理更长、更复杂的研究任务,我们认为异步执行带来的性能提升将足以抵消其复杂度增加的成本。
结语
构建 AI 智能体时,“最后一公里” 往往占据了研发旅程的大部分。能在开发者机器上运行的代码库,需要大量工程优化才能成为可靠的生产系统。智能体系统中 “错误的累积效应” 意味着:传统软件中的小问题,可能导致智能体完全失控。一个步骤失败,可能让智能体走向完全不同的路径,最终产生不可预测的结果。正因如此,原型与产品之间的差距往往比预期更大。
尽管面临这些挑战,多智能体系统已被证明在开放式研究任务中具有重要价值。用户反馈显示,Claude 帮助他们发现了此前未察觉的商业机会、梳理了复杂的医疗选择、解决了棘手的技术漏洞,还通过挖掘他们独自无法发现的研究关联,节省了多达数天的工作时间。
通过细致的工程设计、全面的测试、注重细节的提示词与工具优化、稳健的运维实践,以及 “深刻理解当前智能体能力” 的研究、产品和工程团队的紧密协作,多智能体研究系统能够实现规模化可靠运行。我们已看到这类系统正在改变人们解决复杂问题的方式。
补充说明
当前研究功能的主要使用场景(基于 Clio 嵌入图分析):
- 跨专业领域开发软件系统(10%)
- 开发和优化专业技术内容(8%)
- 制定业务增长与营收策略(8%)
- 辅助学术研究与教学材料开发(7%)
- 研究和验证个人、地点或组织相关信息(5%)
致谢
本文作者:杰里米・哈德菲尔德(Jeremy Hadfield)、巴里・张(Barry Zhang)、肯尼斯・连(Kenneth Lien)、弗洛里安・肖尔茨(Florian Scholz)、杰里米・福克斯(Jeremy Fox)、丹尼尔・福特(Daniel Ford)。
本研究成果体现了 Anthropic 多个团队的集体努力,正是他们让研究功能得以实现。特别感谢 Anthropic 应用工程团队,他们的投入将这套复杂的多智能体系统成功推向生产环境。同时,我们也感谢早期用户提供的宝贵反馈。
附录:多智能体系统的额外实用建议
-
对 “多轮状态变化智能体” 的终态评估:评估 “在多轮对话中修改持久化状态” 的智能体存在独特挑战。与 “只读” 研究任务不同,这类智能体的每个操作都会改变后续步骤的环境,形成传统评估方法难以处理的依赖关系。我们的解决方案是 “聚焦终态评估”,而非逐轮分析:不判断智能体是否遵循特定流程,而是评估其是否达成正确的最终状态。这种方法承认智能体可能通过不同路径实现同一目标,同时确保输出符合预期结果。对于复杂流程,可将评估拆解为多个 “离散检查点”—— 验证特定阶段是否发生了预期的状态变化,而非试图验证每一个中间步骤。
-
长周期对话管理:生产环境中的智能体常需进行数百轮对话,因此需要精心设计上下文管理策略。随着对话延长,标准上下文窗口会不足,需借助智能压缩和记忆机制。我们采用的方案是:智能体在完成每个工作阶段后,总结关键信息并存储到外部记忆中,再开始新任务;当接近上下文窗口上限时,智能体可创建新的子智能体(具备干净的上下文),同时通过细致的 “任务交接” 维持连贯性;此外,智能体可从记忆中调取研究计划等存储的上下文,避免因达到上下文限制而丢失前期工作。这种分布式方法既能防止上下文溢出,又能在长对话中保持连贯性。
-
子智能体输出至文件系统,减少 “信息传递误差”:对于特定类型的结果,子智能体可直接输出,绕过主协调者,从而提升准确性和性能。无需让子智能体通过核心智能体传递所有信息,而是构建 “成果系统”:专业子智能体创建的输出可独立持久化存储。具体而言,子智能体调用工具将成果存储到外部系统,再向协调者传递轻量化的引用链接。这种方式可防止多阶段处理中的信息丢失,同时减少 “将大量输出复制到对话历史” 带来的令牌开销。该模式尤其适用于代码、报告、数据可视化等结构化输出 —— 子智能体的专业提示词能生成比 “经通用协调者过滤” 更优的结果。