我们如何构建多智能体研究系统
How we built our multi-agent research system
Claude now hasResearch capabilitiesthat allow it to search across the web, Google Workspace, and any integrations to accomplish complex tasks. The journey of this multi-agent system from prototype to production taught us critical lessons about system architecture, tool design, and prompt engineering. A multi-agent system consists of multiple agents (LLMs autonomously using tools in a loop) working together. Our Research feature involves an agent that plans a research process based on user queries, and then uses tools to create parallel agents that search for information simultaneously. Systems with multiple agents introduce new challenges in agent coordination, evaluation, and reliability. This post breaks down the principles that worked for us—we hope you'll find them useful to apply when building your own multi-agent systems.
Claude 现在具备研究能力,能够搜索网页、Google Workspace 以及任何集成工具来完成复杂任务。这个多智能体系统从原型到生产的过程,让我们在系统架构、工具设计和提示词工程方面收获了宝贵的经验教训。多智能体系统由多个智能体(Agent)(即在循环中自主使用工具的大语言模型)协同工作。我们的研究功能包含一个智能体,它根据用户查询规划研究过程,然后使用工具创建并行智能体来同时搜索信息。多智能体系统在智能体协调、评估和可靠性方面引入了新的挑战。 本文总结了对我们行之有效的原则——希望你在构建自己的多智能体系统时能从中受益。
Benefits of a multi-agent system
多智能体系统的优势
Research work involves open-ended problems where it’s very difficult to predict the required steps in advance. You can’t hardcode a fixed path for exploring complex topics, as the process is inherently dynamic and path-dependent. When people conduct research, they tend to continuously update their approach based on discoveries, following leads that emerge during investigation. This unpredictability makes AI agents particularly well-suited for research tasks. Research demands the flexibility to pivot or explore tangential connections as the investigation unfolds. The model must operate autonomously for many turns, making decisions about which directions to pursue based on intermediate findings. A linear, one-shot pipeline cannot handle these tasks. The essence of search is compression: distilling insights from a vast corpus. Subagents facilitate compression by operating in parallel with their own context windows, exploring different aspects of the question simultaneously before condensing the most important tokens for the lead research agent. Each subagent also provides separation of concerns—distinct tools, prompts, and exploration trajectories—which reduces path dependency and enables thorough, independent investigations. Once intelligence reaches a threshold, multi-agent systems become a vital way to scale performance. For instance, although individual humans have become more intelligent in the last 100,000 years, human societies have becomeexponentiallymore capable in the information age because of ourcollectiveintelligence and ability to coordinate. Even generally-intelligent agents face limits when operating as individuals; groups of agents can accomplish far more. Our internal evaluations show that multi-agent research systems excel especially for breadth-first queries that involve pursuing multiple independent directions simultaneously. We found that a multi-agent system with Claude Opus 4 as the lead agent and Claude Sonnet 4 subagents outperformed single-agent Claude Opus 4 by 90.2% on our internal research eval. For example, when asked to identify all the board members of the companies in the Information Technology S&P 500, the multi-agent system found the correct answers by decomposing this into tasks for subagents, while the single agent system failed to find the answer with slow, sequential searches. Multi-agent systems work mainly because they help spend enough tokens to solve the problem. In our analysis, three factors explained 95% of the performance variance in theBrowseCompevaluation (which tests the ability of browsing agents to locate hard-to-find information). We found that token usage by itself explains 80% of the variance, with the number of tool calls and the model choice as the two other explanatory factors. This finding validates our architecture that distributes work across agents with separate context windows to add more capacity for parallel reasoning. The latest Claude models act as large efficiency multipliers on token use, as upgrading to Claude Sonnet 4 is a larger performance gain than doubling the token budget on Claude Sonnet 3.7. Multi-agent architectures effectively scale token usage for tasks that exceed the limits of single agents. There is a downside: in practice, these architectures burn through tokens fast. In our data, agents typically use about 4× more tokens than chat interactions, and multi-agent systems use about 15× more tokens than chats. For economic viability, multi-agent systems require tasks where the value of the task is high enough to pay for the increased performance. Further, some domains that require all agents to share the same context or involve many dependencies between agents are not a good fit for multi-agent systems today. For instance, most coding tasks involve fewer truly parallelizable tasks than research, and LLM agents are not yet great at coordinating and delegating to other agents in real time. We’ve found that multi-agent systems excel at valuable tasks that involve heavy parallelization, information that exceeds single context windows, and interfacing with numerous complex tools.
研究工作涉及开放式问题,很难提前预测所需的步骤。你无法为探索复杂主题硬编码固定路径,因为这个过程本质上是动态且路径依赖的。当人们进行研究时,往往会根据发现不断更新方法,沿着调查过程中出现的线索推进。 这种不可预测性使得 AI 智能体特别适合研究任务。研究要求在调查展开时灵活地转向或探索相关联系。模型必须在多个回合中自主运行,根据中间发现决定追踪哪些方向。线性的一次性流水线无法处理这些任务。 搜索的本质是压缩:从海量语料库中提炼见解。子智能体(Subagent)通过在各自的上下文窗口中并行运作来促进压缩,在为主研究智能体凝聚最重要的信息之前同时探索问题的不同方面。每个子智能体还提供了关注点分离——不同的工具、提示词和探索路径——这减少了路径依赖性,实现了全面而独立的调查。 当智能达到一定阈值后,多智能体系统成为扩展性能的重要方式。例如,尽管在过去十万年间个体人类变得更加聪明,但人类社会在信息时代因为我们的集体智慧和协调能力而变得指数级地更强大。即使是通用智能体在作为个体运作时也面临局限;而智能体群体能够完成更多的事情。 我们的内部评估表明,多智能体研究系统在涉及同时追踪多个独立方向的广度优先查询方面表现尤为出色。我们发现,以 Claude Opus 4 为主智能体、Claude Sonnet 4 为子智能体的多智能体系统,在我们的内部研究评估中比单智能体 Claude Opus 4 高出 90.2%。例如,当被要求识别标准普尔 500 信息技术板块中所有公司的董事会成员时,多智能体系统通过将任务分解为子智能体的任务找到了正确答案,而单智能体系统在缓慢的顺序搜索中未能找到答案。 多智能体系统之所以有效,主要是因为它们有助于投入足够的 token 来解决问题。在我们的分析中,三个因素解释了 BrowseComp 评估(测试浏览智能体定位难以找到信息的能力)中 95% 的性能差异。我们发现,token 使用量本身就解释了 80% 的差异,工具调用次数和模型选择是另外两个解释因素。这一发现验证了我们的架构——将工作分配给拥有独立上下文窗口的智能体,以增加并行推理的能力。最新的 Claude 模型在 token 使用方面起到了巨大的效率倍增作用,因为升级到 Claude Sonnet 4 带来的性能提升比在 Claude Sonnet 3.7 上将 token 预算翻倍还要大。多智能体架构有效地扩展了超出单个智能体限制的任务的 token 使用。 但也有一个缺点:在实践中,这些架构会快速消耗大量 token。在我们的数据中,智能体通常使用的 token 大约是聊天交互的 4 倍,而多智能体系统使用的 token 大约是聊天的 15 倍。从经济可行性来看,多智能体系统需要任务的价值足够高,才能为增加的性能买单。此外,某些需要所有智能体共享相同上下文或涉及智能体间大量依赖关系的领域,目前并不适合使用多智能体系统。例如,大多数编码任务比研究任务涉及更少的真正可并行化任务,而且 LLM 智能体在实时协调和委派给其他智能体方面还不擅长。我们发现,多智能体系统在涉及大量并行化、超出单个上下文窗口的信息以及与众多复杂工具交互的高价值任务中表现出色。
Architecture overview for Research
研究系统的架构概览
Our Research system uses a multi-agent architecture with an orchestrator-worker pattern, where a lead agent coordinates the process while delegating to specialized subagents that operate in parallel. When a user submits a query, the lead agent analyzes it, develops a strategy, and spawns subagents to explore different aspects simultaneously. As shown in the diagram above, the subagents act as intelligent filters by iteratively using search tools to gather information, in this case on AI agent companies in 2025, and then returning a list of companies to the lead agent so it can compile a final answer. Traditional approaches using Retrieval Augmented Generation (RAG) use static retrieval. That is, they fetch some set of chunks that are most similar to an input query and use these chunks to generate a response. In contrast, our architecture uses a multi-step search that dynamically finds relevant information, adapts to new findings, and analyzes results to formulate high-quality answers.
我们的研究系统采用编排者-工作者(Orchestrator-Worker)模式的多智能体架构,由一个主智能体协调整个过程,同时将任务委派给并行运作的专业子智能体。 当用户提交查询时,主智能体分析查询、制定策略,并生成子智能体来同时探索不同的方面。如上图所示,子智能体充当智能过滤器,迭代使用搜索工具收集信息(本例中是关于 2025 年 AI 智能体公司的信息),然后将公司列表返回给主智能体,由其编制最终答案。 传统的检索增强生成(Retrieval Augmented Generation, RAG)方法使用静态检索。也就是说,它们获取与输入查询最相似的某些文本块,并使用这些文本来生成响应。相比之下,我们的架构使用多步骤搜索,动态查找相关信息,适应新发现,并分析结果以制定高质量的答案。
Prompt engineering and evaluations for research agents
研究智能体的提示词工程与评估
Multi-agent systems have key differences from single-agent systems, including a rapid growth in coordination complexity. Early agents made errors like spawning 50 subagents for simple queries, scouring the web endlessly for nonexistent sources, and distracting each other with excessive updates. Since each agent is steered by a prompt, prompt engineering was our primary lever for improving these behaviors. Below are some principles we learned for prompting agents:
多智能体系统与单智能体系统存在关键差异,包括协调复杂性的快速增长。早期的智能体会犯这样的错误:为简单查询生成 50 个子智能体、无休止地搜索不存在的信息源、以及通过过多更新相互干扰。由于每个智能体都由提示词引导,提示词工程是我们改进这些行为的主要手段。以下是我们学到的一些提示词编写原则:
- Think like your agents.To iterate on prompts, you must understand their effects. To help us do this, we built simulations using ourConsolewith the exact prompts and tools from our system, then watched agents work step-by-step. This immediately revealed failure modes: agents continuing when they already had sufficient results, using overly verbose search queries, or selecting incorrect tools. Effective prompting relies on developing an accurate mental model of the agent, which can make the most impactful changes obvious.
- Teach the orchestrator how to delegate.In our system, the lead agent decomposes queries into subtasks and describes them to subagents. Each subagent needs an objective, an output format, guidance on the tools and sources to use, and clear task boundaries. Without detailed task descriptions, agents duplicate work, leave gaps, or fail to find necessary information. We started by allowing the lead agent to give simple, short instructions like 'research the semiconductor shortage,' but found these instructions often were vague enough that subagents misinterpreted the task or performed the exact same searches as other agents. For instance, one subagent explored the 2021 automotive chip crisis while 2 others duplicated work investigating current 2025 supply chains, without an effective division of labor.
- Scale effort to query complexity.Agents struggle to judge appropriate effort for different tasks, so we embedded scaling rules in the prompts. Simple fact-finding requires just 1 agent with 3-10 tool calls, direct comparisons might need 2-4 subagents with 10-15 calls each, and complex research might use more than 10 subagents with clearly divided responsibilities. These explicit guidelines help the lead agent allocate resources efficiently and prevent overinvestment in simple queries, which was a common failure mode in our early versions.
- Tool design and selection are critical.Agent-tool interfaces are as critical as human-computer interfaces. Using the right tool is efficient—often, it’s strictly necessary. For instance, an agent searching the web for context that only exists in Slack is doomed from the start. WithMCP serversthat give the model access to external tools, this problem compounds, as agents encounter unseen tools with descriptions of wildly varying quality. We gave our agents explicit heuristics: for example, examine all available tools first, match tool usage to user intent, search the web for broad external exploration, or prefer specialized tools over generic ones. Bad tool descriptions can send agents down completely wrong paths, so each tool needs a distinct purpose and a clear description.
- Let agents improve themselves. We found that the Claude 4 models can be excellent prompt engineers. When given a prompt and a failure mode, they are able to diagnose why the agent is failing and suggest improvements. We even created a tool-testing agent—when given a flawed MCP tool, it attempts to use the tool and then rewrites the tool description to avoid failures. By testing the tool dozens of times, this agent found key nuances and bugs. This process for improving tool ergonomics resulted in a 40% decrease in task completion time for future agents using the new description, because they were able to avoid most mistakes.
- Start wide, then narrow down.Search strategy should mirror expert human research: explore the landscape before drilling into specifics. Agents often default to overly long, specific queries that return few results. We counteracted this tendency by prompting agents to start with short, broad queries, evaluate what’s available, then progressively narrow focus.
- Guide the thinking process.Extended thinking mode, which leads Claude to output additional tokens in a visible thinking process, can serve as a controllable scratchpad. The lead agent uses thinking to plan its approach, assessing which tools fit the task, determining query complexity and subagent count, and defining each subagent’s role. Our testing showed that extended thinking improved instruction-following, reasoning, and efficiency. Subagents also plan, then useinterleaved thinkingafter tool results to evaluate quality, identify gaps, and refine their next query. This makes subagents more effective in adapting to any task.
- Parallel tool calling transforms speed and performance.Complex research tasks naturally involve exploring many sources. Our early agents executed sequential searches, which was painfully slow. For speed, we introduced two kinds of parallelization: (1) the lead agent spins up 3-5 subagents in parallel rather than serially; (2) the subagents use 3+ tools in parallel. These changes cut research time by up to 90% for complex queries, allowing Research to do more work in minutes instead of hours while covering more information than other systems.
- 像智能体一样思考。 要迭代提示词,你必须理解它们的效果。为了帮助我们做到这一点,我们使用 Console 构建了模拟环境,使用系统中完全相同的提示词和工具,然后逐步观察智能体的工作过程。这立刻暴露了失败模式:智能体在已经获得足够结果时仍在继续、使用过于冗长的搜索查询、或选择错误的工具。有效的提示词编写依赖于对智能体建立准确的心智模型,这能让最具影响力的改动变得显而易见。
- 教编排者如何委派。 在我们的系统中,主智能体将查询分解为子任务并向子智能体描述它们。每个子智能体需要一个目标、一个输出格式、关于使用哪些工具和信息源的指导,以及明确的任务边界。没有详细的任务描述,智能体会重复工作、遗漏缺口,或找不到必要信息。我们最初允许主智能体给出简短的指令,如"研究半导体短缺",但发现这些指令往往过于模糊,导致子智能体误解任务或执行与其他智能体完全相同的搜索。例如,一个子智能体探索了 2021 年汽车芯片危机,而另外两个子智能体在没有有效分工的情况下重复调查 2025 年当前的供应链。
- 根据查询复杂度调整工作量。 智能体难以判断不同任务的适当工作量,因此我们在提示词中嵌入了扩展规则。简单的事实查找只需要 1 个智能体和 3-10 次工具调用,直接比较可能需要 2-4 个子智能体,每个 10-15 次调用,而复杂的研究可能使用 10 个以上的子智能体,并有明确的职责划分。这些明确的指导方针帮助主智能体高效分配资源,防止在简单查询上过度投入——这是我们早期版本中的常见失败模式。
- 工具设计和选择至关重要。 智能体-工具接口与人机界面一样关键。使用正确的工具是高效的——通常也是绝对必要的。例如,一个智能体在网上搜索只存在于 Slack 中的上下文,从一开始就注定失败。随着 MCP 服务器(MCP Servers)让模型能够访问外部工具,这个问题变得更加复杂,因为智能体会遇到从未见过的工具,其描述质量参差不齐。我们给智能体提供了明确的启发式规则:例如,首先检查所有可用工具,将工具使用与用户意图匹配,对于广泛的外部探索使用网页搜索,或者优先使用专用工具而非通用工具。糟糕的工具描述会将智能体引向完全错误的方向,因此每个工具都需要明确的用途和清晰的描述。
- 让智能体自我改进。 我们发现 Claude 4 模型可以成为出色的提示词工程师。当给定一个提示词和一个失败模式时,它们能够诊断智能体为什么失败并提出改进建议。我们甚至创建了一个工具测试智能体——当给定一个有缺陷的 MCP 工具时,它会尝试使用该工具,然后重写工具描述以避免失败。通过对工具进行数十次测试,这个智能体发现了关键的细节和错误。这种改进工具可用性的流程,使未来使用新描述的智能体的任务完成时间减少了 40%,因为它们能够避免大多数错误。
- 先广泛探索,再逐步聚焦。 搜索策略应该模仿专业研究人员的方法:先了解全貌,再深入细节。智能体经常默认使用过于冗长、过于具体的查询,返回的结果很少。我们通过提示智能体以简短、宽泛的查询开始,评估可用信息,然后逐步缩小焦点来对抗这种倾向。
- 引导思考过程。 扩展思考模式(Extended Thinking)让 Claude 在可见的思考过程中输出额外的 token,可以作为一个可控的草稿纸。主智能体使用思考来规划方法,评估哪些工具适合任务,确定查询复杂度和子智能体数量,并定义每个子智能体的角色。我们的测试表明,扩展思考改善了指令遵循、推理和效率。子智能体也会进行规划,然后在工具结果返回后使用交错思考(Interleaved Thinking)来评估质量、识别缺口,并优化下一次查询。这使得子智能体在适应任何任务时更加有效。
- 并行工具调用改变速度和性能。 复杂的研究任务自然涉及探索多个信息源。我们早期的智能体执行顺序搜索,速度极其缓慢。为了提速,我们引入了两种并行化方式:(1)主智能体并行启动 3-5 个子智能体,而非串行启动;(2)子智能体并行使用 3 个以上的工具。这些变化将复杂查询的研究时间缩短了高达 90%,使研究功能能够在几分钟内完成过去需要数小时的工作,同时覆盖比其他系统更多的信息。
Our prompting strategy focuses on instilling good heuristics rather than rigid rules. We studied how skilled humans approach research tasks and encoded these strategies in our prompts—strategies like decomposing difficult questions into smaller tasks, carefully evaluating the quality of sources, adjusting search approaches based on new information, and recognizing when to focus on depth (investigating one topic in detail) vs. breadth (exploring many topics in parallel). We also proactively mitigated unintended side effects by setting explicit guardrails to prevent the agents from spiraling out of control. Finally, we focused on a fast iteration loop with observability and test cases.
我们的提示词策略侧重于灌输良好的启发式规则,而非死板的指令。我们研究了熟练的人类如何处理研究任务,并将这些策略编码到我们的提示词中——例如将困难问题分解为更小的任务、仔细评估信息源的质量、根据新信息调整搜索方法,以及识别何时该注重深度(深入调查一个主题)vs. 广度(并行探索多个主题)。我们还通过设置明确的防护栏来主动减轻意外的副作用,防止智能体失控。最后,我们注重快速迭代循环,配合可观测性和测试用例。
Effective evaluation of agents
智能体的有效评估
Good evaluations are essential for building reliable AI applications, and agents are no different. However, evaluating multi-agent systems presents unique challenges. Traditional evaluations often assume that the AI follows the same steps each time: given input X, the system should follow path Y to produce output Z. But multi-agent systems don't work this way. Even with identical starting points, agents might take completely different valid paths to reach their goal. One agent might search three sources while another searches ten, or they might use different tools to find the same answer. Because we don’t always know what the right steps are, we usually can't just check if agents followed the “correct” steps we prescribed in advance. Instead, we need flexible evaluation methods that judge whether agents achieved the right outcomes while also following a reasonable process. Start evaluating immediately with small samples. In early agent development, changes tend to have dramatic impacts because there is abundant low-hanging fruit. A prompt tweak might boost success rates from 30% to 80%. With effect sizes this large, you can spot changes with just a few test cases. We started with a set of about 20 queries representing real usage patterns. Testing these queries often allowed us to clearly see the impact of changes. We often hear that AI developer teams delay creating evals because they believe that only large evals with hundreds of test cases are useful. However, it’s best to start with small-scale testing right away with a few examples, rather than delaying until you can build more thorough evals. LLM-as-judge evaluation scales when done well.Research outputs are difficult to evaluate programmatically, since they are free-form text and rarely have a single correct answer. LLMs are a natural fit for grading outputs. We used an LLM judge that evaluated each output against criteria in a rubric: factual accuracy (do claims match sources?), citation accuracy (do the cited sources match the claims?), completeness (are all requested aspects covered?), source quality (did it use primary sources over lower-quality secondary sources?), and tool efficiency (did it use the right tools a reasonable number of times?). We experimented with multiple judges to evaluate each component, but found that a single LLM call with a single prompt outputting scores from 0.0-1.0 and a pass-fail grade was the most consistent and aligned with human judgements. This method was especially effective when the eval test casesdidhave a clear answer, and we could use the LLM judge to simply check if the answer was correct (i.e. did it accurately list the pharma companies with the top 3 largest R&D budgets?). Using an LLM as a judge allowed us to scalably evaluate hundreds of outputs. Human evaluation catches what automation misses.People testing agents find edge cases that evals miss. These include hallucinated answers on unusual queries, system failures, or subtle source selection biases. In our case, human testers noticed that our early agents consistently chose SEO-optimized content farms over authoritative but less highly-ranked sources like academic PDFs or personal blogs. Adding source quality heuristics to our prompts helped resolve this issue. Even in a world of automated evaluations, manual testing remains essential. Multi-agent systems have emergent behaviors, which arise without specific programming. For instance, small changes to the lead agent can unpredictably change how subagents behave. Success requires understanding interaction patterns, not just individual agent behavior. Therefore, the best prompts for these agents are not just strict instructions, but frameworks for collaboration that define the division of labor, problem-solving approaches, and effort budgets. Getting this right relies on careful prompting and tool design, solid heuristics, observability, and tight feedback loops.See theopen-source prompts in our Cookbookfor example prompts from our system.
良好的评估对于构建可靠的 AI 应用至关重要,智能体也不例外。然而,评估多智能体系统面临着独特的挑战。传统的评估通常假设 AI 每次都遵循相同的步骤:给定输入 X,系统应遵循路径 Y 来产生输出 Z。但多智能体系统不是这样运作的。即使起点相同,智能体也可能走完全不同的有效路径来达到目标。一个智能体可能搜索三个信息源,而另一个搜索十个,或者它们可能使用不同的工具来找到相同的答案。由于我们并不总是知道正确的步骤是什么,通常不能只是检查智能体是否遵循了我们预先规定的"正确"步骤。相反,我们需要灵活的评估方法,既判断智能体是否达到了正确的结果,同时也评估它们是否遵循了合理的流程。
Production reliability and engineering challenges
立即用小样本开始评估。 在智能体开发早期,变化往往会产生巨大影响,因为有大量唾手可得的成果。一个提示词的调整可能将成功率从 30% 提升到 80%。在效应量如此大的情况下,只需几个测试用例就能发现变化。我们从大约 20 个代表真实使用模式的查询开始。测试这些查询通常能让我们清楚地看到变化的影响。我们经常听到 AI 开发团队推迟创建评估,因为他们认为只有包含数百个测试用例的大型评估才有用。然而,最好立即开始小规模测试,使用少量示例,而不是等到能构建更完善的评估后再开始。
In traditional software, a bug might break a feature, degrade performance, or cause outages. In agentic systems, minor changes cascade into large behavioral changes, which makes it remarkably difficult to write code for complex agents that must maintain state in a long-running process. Agents are stateful and errors compound.Agents can run for long periods of time, maintaining state across many tool calls. This means we need to durably execute code and handle errors along the way. Without effective mitigations, minor system failures can be catastrophic for agents. When errors occur, we can't just restart from the beginning: restarts are expensive and frustrating for users. Instead, we built systems that can resume from where the agent was when the errors occurred. We also use the model’s intelligence to handle issues gracefully: for instance, letting the agent know when a tool is failing and letting it adapt works surprisingly well. We combine the adaptability of AI agents built on Claude with deterministic safeguards like retry logic and regular checkpoints. Debugging benefits from new approaches.Agents make dynamic decisions and are non-deterministic between runs, even with identical prompts. This makes debugging harder. For instance, users would report agents “not finding obvious information,” but we couldn't see why. Were the agents using bad search queries? Choosing poor sources? Hitting tool failures? Adding full production tracing let us diagnose why agents failed and fix issues systematically. Beyond standard observability, we monitor agent decision patterns and interaction structures—all without monitoring the contents of individual conversations, to maintain user privacy. This high-level observability helped us diagnose root causes, discover unexpected behaviors, and fix common failures. Deployment needs careful coordination.Agent systems are highly stateful webs of prompts, tools, and execution logic that run almost continuously. This means that whenever we deploy updates, agents might be anywhere in their process. We therefore need to prevent our well-meaning code changes from breaking existing agents. We can’t update every agent to the new version at the same time. Instead, we userainbow deploymentsto avoid disrupting running agents, by gradually shifting traffic from old to new versions while keeping both running simultaneously. Synchronous execution creates bottlenecks.Currently, our lead agents execute subagents synchronously, waiting for each set of subagents to complete before proceeding. This simplifies coordination, but creates bottlenecks in the information flow between agents. For instance, the lead agent can’t steer subagents, subagents can’t coordinate, and the entire system can be blocked while waiting for a single subagent to finish searching. Asynchronous execution would enable additional parallelism: agents working concurrently and creating new subagents when needed. But this asynchronicity adds challenges in result coordination, state consistency, and error propagation across the subagents. As models can handle longer and more complex research tasks, we expect the performance gains will justify the complexity.
LLM 作为评判者在做好时可以规模化。 研究输出难以用程序化方式评估,因为它们是自由形式的文本,很少有唯一正确的答案。LLM 天然适合对输出进行评分。我们使用 LLM 评判者按照评分标准评估每个输出:事实准确性(声明是否与信息源匹配?)、引用准确性(引用的信息源是否与声明匹配?)、完整性(是否涵盖了所有请求的方面?)、信息源质量(是否优先使用了一手信息源而非低质量的二手信息源?)以及工具效率(是否以合理的次数使用了正确的工具?)。我们尝试过使用多个评判者分别评估每个组成部分,但发现单个 LLM 调用配合单个提示词,输出 0.0-1.0 的分数和通过/未通过等级,是最一致且与人类判断最吻合的方式。当评估测试用例确实有明确答案时,这种方法特别有效,我们可以使用 LLM 评判者直接检查答案是否正确(即它是否准确列出了研发预算前三名的制药公司?)。使用 LLM 作为评判者使我们能够大规模评估数百个输出。
Conclusion
人工评估能捕捉自动化遗漏的内容。 测试智能体的人员会发现评估遗漏的边缘情况。这些包括异常查询上的幻觉答案、系统故障或微妙的信息源选择偏差。在我们的案例中,人工测试者注意到,我们的早期智能体总是选择 SEO 优化的内容农场,而非权威但排名较低的信息源,如学术 PDF 或个人博客。在提示词中添加信息源质量启发式规则帮助解决了这个问题。即使在自动化评估的世界中,手动测试仍然不可或缺。
When building AI agents, the last mile often becomes most of the journey. Codebases that work on developer machines require significant engineering to become reliable production systems. The compound nature of errors in agentic systems means that minor issues for traditional software can derail agents entirely. One step failing can cause agents to explore entirely different trajectories, leading to unpredictable outcomes. For all the reasons described in this post, the gap between prototype and production is often wider than anticipated. Despite these challenges, multi-agent systems have proven valuable for open-ended research tasks. Users have said that Claude helped them find business opportunities they hadn’t considered, navigate complex healthcare options, resolve thorny technical bugs, and save up to days of work by uncovering research connections they wouldn't have found alone. Multi-agent research systems can operate reliably at scale with careful engineering, comprehensive testing, detail-oriented prompt and tool design, robust operational practices, and tight collaboration between research, product, and engineering teams who have a strong understanding of current agent capabilities. We're already seeing these systems transform how people solve complex problems.
多智能体系统具有涌现行为(Emergent Behaviors),这些行为并非通过特定编程产生。例如,对主智能体的微小更改可能会不可预测地改变子智能体的行为。成功需要理解交互模式,而不仅仅是单个智能体的行为。因此,这些智能体的最佳提示词不仅仅是严格的指令,而是定义分工、问题解决方法和工作量预算的协作框架。做好这一点依赖于精心的提示词和工具设计、可靠的启发式规则、可观测性以及紧密的反馈循环。参见 Cookbook 中的开源提示词,了解我们系统中的示例提示词。
Acknowlegements
生产环境可靠性与工程挑战
Written by Jeremy Hadfield, Barry Zhang, Kenneth Lien, Florian Scholz, Jeremy Fox, and Daniel Ford. This work reflects the collective efforts of several teams across Anthropic who made the Research feature possible. Special thanks go to the Anthropic apps engineering team, whose dedication brought this complex multi-agent system to production. We're also grateful to our early users for their excellent feedback.
在传统软件中,一个 bug 可能破坏功能、降低性能或导致停机。在智能体系统中,微小的变化会级联成巨大的行为变化,这使得为必须在长期运行过程中维护状态的复杂智能体编写代码变得异常困难。
Appendix
智能体是有状态的,错误会累积。 智能体可以运行很长时间,跨多次工具调用维护状态。这意味着我们需要持久化执行代码并处理沿途的错误。如果没有有效的缓解措施,微小的系统故障对智能体来说可能是灾难性的。当错误发生时,我们不能简单地从头开始:重新启动既昂贵又让用户沮丧。相反,我们构建了能够从错误发生时智能体所在位置恢复的系统。我们还利用模型的智能来优雅地处理问题:例如,让智能体知道工具何时出错并让它自行适应,效果出奇地好。我们将基于 Claude 构建的 AI 智能体的适应性与确定性保障措施(如重试逻辑和常规检查点)相结合。
Below are some additional miscellaneous tips for multi-agent systems. End-state evaluation of agents that mutate state over many turns.Evaluating agents that modify persistent state across multi-turn conversations presents unique challenges. Unlike read-only research tasks, each action can change the environment for subsequent steps, creating dependencies that traditional evaluation methods struggle to handle. We found success focusing on end-state evaluation rather than turn-by-turn analysis. Instead of judging whether the agent followed a specific process, evaluate whether it achieved the correct final state. This approach acknowledges that agents may find alternative paths to the same goal while still ensuring they deliver the intended outcome. For complex workflows, break evaluation into discrete checkpoints where specific state changes should have occurred, rather than attempting to validate every intermediate step. Long-horizon conversation management.Production agents often engage in conversations spanning hundreds of turns, requiring careful context management strategies. As conversations extend, standard context windows become insufficient, necessitating intelligent compression and memory mechanisms. We implemented patterns where agents summarize completed work phases and store essential information in external memory before proceeding to new tasks. When context limits approach, agents can spawn fresh subagents with clean contexts while maintaining continuity through careful handoffs. Further, they can retrieve stored context like the research plan from their memory rather than losing previous work when reaching the context limit. This distributed approach prevents context overflow while preserving conversation coherence across extended interactions. Subagent output to a filesystem to minimize the ‘game of telephone.’Direct subagent outputs can bypass the main coordinator for certain types of results, improving both fidelity and performance. Rather than requiring subagents to communicate everything through the lead agent, implement artifact systems where specialized agents can create outputs that persist independently. Subagents call tools to store their work in external systems, then pass lightweight references back to the coordinator. This prevents information loss during multi-stage processing and reduces token overhead from copying large outputs through conversation history. The pattern works particularly well for structured outputs like code, reports, or data visualizations where the subagent's specialized prompt produces better results than filtering through a general coordinator.
调试需要新方法。 智能体做出动态决策,即使使用相同的提示词,不同运行之间也不确定。这使得调试更加困难。例如,用户会报告智能体"没有找到显而易见的信息",但我们无法看出原因。是智能体使用了糟糕的搜索查询?选择了差的信息源?还是遇到了工具故障?添加完整的生产追踪让我们能够诊断智能体失败的原因并系统性地修复问题。除了标准的可观测性外,我们还监控智能体的决策模式和交互结构——同时不监控单个对话的内容,以维护用户隐私。这种高层次的可观测性帮助我们诊断根本原因、发现意外行为并修复常见故障。
Want to learn more?
部署需要仔细协调。 智能体系统是由提示词、工具和执行逻辑组成的高度有状态网络,几乎持续运行。这意味着每当我们部署更新时,智能体可能处于其流程中的任何位置。因此,我们需要防止善意的代码更改破坏正在运行的智能体。我们不能同时将所有智能体更新到新版本。相反,我们使用彩虹部署(Rainbow Deployments)来避免中断正在运行的智能体,通过逐步将流量从旧版本转移到新版本,同时保持两个版本同时运行。
同步执行造成瓶颈。 目前,我们的主智能体同步执行子智能体,等待每组子智能体完成后再继续。这简化了协调,但在智能体间的信息流中造成了瓶颈。例如,主智能体无法引导子智能体,子智能体之间无法协调,整个系统可能在等待单个子智能体完成搜索时被阻塞。异步执行将实现额外的并行性:智能体可以并发工作,并在需要时创建新的子智能体。但这种异步性在结果协调、状态一致性以及子智能体间的错误传播方面带来了挑战。随着模型能够处理更长、更复杂的研究任务,我们预计性能收益将证明这种复杂性是值得的。
结论
在构建 AI 智能体时,最后一公里往往成为旅程的大部分。在开发者机器上运行的代码库需要大量的工程投入才能成为可靠的生产系统。智能体系统中错误的累积特性意味着,传统软件中的微小问题可能会完全破坏智能体。一个步骤的失败可能导致智能体探索完全不同的轨迹,产生不可预测的结果。由于本文所述的所有原因,原型与生产之间的差距往往比预期的要大。
尽管存在这些挑战,多智能体系统已被证明对开放式研究任务具有重要价值。用户表示,Claude 帮助他们发现了未曾考虑过的商业机会、导航复杂的医疗选项、解决了棘手的技术错误,并通过挖掘他们自己无法找到的研究关联节省了数天的工作。多智能体研究系统通过精心的工程设计、全面的测试、注重细节的提示词和工具设计、稳健的运营实践,以及对当前智能体能力有深刻理解的研究、产品和工程团队之间的紧密协作,能够可靠地大规模运行。我们已经看到这些系统正在改变人们解决复杂问题的方式。
致谢
由 Jeremy Hadfield、Barry Zhang、Kenneth Lien、Florian Scholz、Jeremy Fox 和 Daniel Ford 撰写。这项工作反映了 Anthropic 多个团队的集体努力,使研究功能得以实现。特别感谢 Anthropic 应用工程团队,他们的奉献将这个复杂的多智能体系统带到了生产环境。我们也感谢早期用户的出色反馈。
附录
以下是关于多智能体系统的一些额外实用建议。
对跨多轮改变状态的智能体进行终态评估。 评估在多轮对话中修改持久状态的智能体面临独特的挑战。与只读的研究任务不同,每个操作都可能改变后续步骤的环境,产生传统评估方法难以处理的依赖关系。我们发现专注于终态评估而非逐轮分析的方法很有效。与其判断智能体是否遵循了特定流程,不如评估它是否达到了正确的最终状态。这种方法承认智能体可能找到通往同一目标的替代路径,同时仍然确保它们交付预期的结果。对于复杂的工作流,将评估分解为离散的检查点,在这些点上特定的状态变化应该已经发生,而不是试图验证每个中间步骤。
长周期对话管理。 生产环境中的智能体经常参与跨越数百轮的对话,需要仔细的上下文管理策略。随着对话的延伸,标准上下文窗口变得不足,需要智能压缩和记忆机制。我们实现了这样的模式:智能体在进入新任务之前总结已完成的工作阶段,并将必要信息存储在外部记忆中。当接近上下文限制时,智能体可以生成具有干净上下文的新子智能体,同时通过仔细的交接维护连续性。此外,它们可以从记忆中检索存储的上下文(如研究计划),而不是在达到上下文限制时丢失之前的工作。这种分布式方法在保持对话连贯性的同时防止了上下文溢出。
子智能体输出到文件系统以最小化"传话游戏"效应。 对于某些类型的结果,子智能体的直接输出可以绕过主协调器,提高保真度和性能。与其要求子智能体通过主智能体传递所有信息,不如实现工件(Artifact)系统,让专业智能体可以创建独立持久的输出。子智能体调用工具将其工作存储在外部系统中,然后将轻量级引用传递回协调器。这防止了多阶段处理中的信息丢失,并减少了通过对话历史复制大型输出的 token 开销。这种模式特别适用于结构化输出,如代码、报告或数据可视化,其中子智能体的专业提示词比通过通用协调器过滤能产生更好的结果。
想了解更多?
Claude 现在具备研究能力,能够搜索网页、Google Workspace 以及任何集成工具来完成复杂任务。这个多智能体系统从原型到生产的过程,让我们在系统架构、工具设计和提示词工程方面收获了宝贵的经验教训。多智能体系统由多个智能体(Agent)(即在循环中自主使用工具的大语言模型)协同工作。我们的研究功能包含一个智能体,它根据用户查询规划研究过程,然后使用工具创建并行智能体来同时搜索信息。多智能体系统在智能体协调、评估和可靠性方面引入了新的挑战。 本文总结了对我们行之有效的原则——希望你在构建自己的多智能体系统时能从中受益。
多智能体系统的优势
研究工作涉及开放式问题,很难提前预测所需的步骤。你无法为探索复杂主题硬编码固定路径,因为这个过程本质上是动态且路径依赖的。当人们进行研究时,往往会根据发现不断更新方法,沿着调查过程中出现的线索推进。 这种不可预测性使得 AI 智能体特别适合研究任务。研究要求在调查展开时灵活地转向或探索相关联系。模型必须在多个回合中自主运行,根据中间发现决定追踪哪些方向。线性的一次性流水线无法处理这些任务。 搜索的本质是压缩:从海量语料库中提炼见解。子智能体(Subagent)通过在各自的上下文窗口中并行运作来促进压缩,在为主研究智能体凝聚最重要的信息之前同时探索问题的不同方面。每个子智能体还提供了关注点分离——不同的工具、提示词和探索路径——这减少了路径依赖性,实现了全面而独立的调查。 当智能达到一定阈值后,多智能体系统成为扩展性能的重要方式。例如,尽管在过去十万年间个体人类变得更加聪明,但人类社会在信息时代因为我们的集体智慧和协调能力而变得指数级地更强大。即使是通用智能体在作为个体运作时也面临局限;而智能体群体能够完成更多的事情。 我们的内部评估表明,多智能体研究系统在涉及同时追踪多个独立方向的广度优先查询方面表现尤为出色。我们发现,以 Claude Opus 4 为主智能体、Claude Sonnet 4 为子智能体的多智能体系统,在我们的内部研究评估中比单智能体 Claude Opus 4 高出 90.2%。例如,当被要求识别标准普尔 500 信息技术板块中所有公司的董事会成员时,多智能体系统通过将任务分解为子智能体的任务找到了正确答案,而单智能体系统在缓慢的顺序搜索中未能找到答案。 多智能体系统之所以有效,主要是因为它们有助于投入足够的 token 来解决问题。在我们的分析中,三个因素解释了 BrowseComp 评估(测试浏览智能体定位难以找到信息的能力)中 95% 的性能差异。我们发现,token 使用量本身就解释了 80% 的差异,工具调用次数和模型选择是另外两个解释因素。这一发现验证了我们的架构——将工作分配给拥有独立上下文窗口的智能体,以增加并行推理的能力。最新的 Claude 模型在 token 使用方面起到了巨大的效率倍增作用,因为升级到 Claude Sonnet 4 带来的性能提升比在 Claude Sonnet 3.7 上将 token 预算翻倍还要大。多智能体架构有效地扩展了超出单个智能体限制的任务的 token 使用。 但也有一个缺点:在实践中,这些架构会快速消耗大量 token。在我们的数据中,智能体通常使用的 token 大约是聊天交互的 4 倍,而多智能体系统使用的 token 大约是聊天的 15 倍。从经济可行性来看,多智能体系统需要任务的价值足够高,才能为增加的性能买单。此外,某些需要所有智能体共享相同上下文或涉及智能体间大量依赖关系的领域,目前并不适合使用多智能体系统。例如,大多数编码任务比研究任务涉及更少的真正可并行化任务,而且 LLM 智能体在实时协调和委派给其他智能体方面还不擅长。我们发现,多智能体系统在涉及大量并行化、超出单个上下文窗口的信息以及与众多复杂工具交互的高价值任务中表现出色。
研究系统的架构概览
我们的研究系统采用编排者-工作者(Orchestrator-Worker)模式的多智能体架构,由一个主智能体协调整个过程,同时将任务委派给并行运作的专业子智能体。 当用户提交查询时,主智能体分析查询、制定策略,并生成子智能体来同时探索不同的方面。如上图所示,子智能体充当智能过滤器,迭代使用搜索工具收集信息(本例中是关于 2025 年 AI 智能体公司的信息),然后将公司列表返回给主智能体,由其编制最终答案。 传统的检索增强生成(Retrieval Augmented Generation, RAG)方法使用静态检索。也就是说,它们获取与输入查询最相似的某些文本块,并使用这些文本来生成响应。相比之下,我们的架构使用多步骤搜索,动态查找相关信息,适应新发现,并分析结果以制定高质量的答案。
研究智能体的提示词工程与评估
多智能体系统与单智能体系统存在关键差异,包括协调复杂性的快速增长。早期的智能体会犯这样的错误:为简单查询生成 50 个子智能体、无休止地搜索不存在的信息源、以及通过过多更新相互干扰。由于每个智能体都由提示词引导,提示词工程是我们改进这些行为的主要手段。以下是我们学到的一些提示词编写原则:
- 像智能体一样思考。 要迭代提示词,你必须理解它们的效果。为了帮助我们做到这一点,我们使用 Console 构建了模拟环境,使用系统中完全相同的提示词和工具,然后逐步观察智能体的工作过程。这立刻暴露了失败模式:智能体在已经获得足够结果时仍在继续、使用过于冗长的搜索查询、或选择错误的工具。有效的提示词编写依赖于对智能体建立准确的心智模型,这能让最具影响力的改动变得显而易见。
- 教编排者如何委派。 在我们的系统中,主智能体将查询分解为子任务并向子智能体描述它们。每个子智能体需要一个目标、一个输出格式、关于使用哪些工具和信息源的指导,以及明确的任务边界。没有详细的任务描述,智能体会重复工作、遗漏缺口,或找不到必要信息。我们最初允许主智能体给出简短的指令,如"研究半导体短缺",但发现这些指令往往过于模糊,导致子智能体误解任务或执行与其他智能体完全相同的搜索。例如,一个子智能体探索了 2021 年汽车芯片危机,而另外两个子智能体在没有有效分工的情况下重复调查 2025 年当前的供应链。
- 根据查询复杂度调整工作量。 智能体难以判断不同任务的适当工作量,因此我们在提示词中嵌入了扩展规则。简单的事实查找只需要 1 个智能体和 3-10 次工具调用,直接比较可能需要 2-4 个子智能体,每个 10-15 次调用,而复杂的研究可能使用 10 个以上的子智能体,并有明确的职责划分。这些明确的指导方针帮助主智能体高效分配资源,防止在简单查询上过度投入——这是我们早期版本中的常见失败模式。
- 工具设计和选择至关重要。 智能体-工具接口与人机界面一样关键。使用正确的工具是高效的——通常也是绝对必要的。例如,一个智能体在网上搜索只存在于 Slack 中的上下文,从一开始就注定失败。随着 MCP 服务器(MCP Servers)让模型能够访问外部工具,这个问题变得更加复杂,因为智能体会遇到从未见过的工具,其描述质量参差不齐。我们给智能体提供了明确的启发式规则:例如,首先检查所有可用工具,将工具使用与用户意图匹配,对于广泛的外部探索使用网页搜索,或者优先使用专用工具而非通用工具。糟糕的工具描述会将智能体引向完全错误的方向,因此每个工具都需要明确的用途和清晰的描述。
- 让智能体自我改进。 我们发现 Claude 4 模型可以成为出色的提示词工程师。当给定一个提示词和一个失败模式时,它们能够诊断智能体为什么失败并提出改进建议。我们甚至创建了一个工具测试智能体——当给定一个有缺陷的 MCP 工具时,它会尝试使用该工具,然后重写工具描述以避免失败。通过对工具进行数十次测试,这个智能体发现了关键的细节和错误。这种改进工具可用性的流程,使未来使用新描述的智能体的任务完成时间减少了 40%,因为它们能够避免大多数错误。
- 先广泛探索,再逐步聚焦。 搜索策略应该模仿专业研究人员的方法:先了解全貌,再深入细节。智能体经常默认使用过于冗长、过于具体的查询,返回的结果很少。我们通过提示智能体以简短、宽泛的查询开始,评估可用信息,然后逐步缩小焦点来对抗这种倾向。
- 引导思考过程。 扩展思考模式(Extended Thinking)让 Claude 在可见的思考过程中输出额外的 token,可以作为一个可控的草稿纸。主智能体使用思考来规划方法,评估哪些工具适合任务,确定查询复杂度和子智能体数量,并定义每个子智能体的角色。我们的测试表明,扩展思考改善了指令遵循、推理和效率。子智能体也会进行规划,然后在工具结果返回后使用交错思考(Interleaved Thinking)来评估质量、识别缺口,并优化下一次查询。这使得子智能体在适应任何任务时更加有效。
- 并行工具调用改变速度和性能。 复杂的研究任务自然涉及探索多个信息源。我们早期的智能体执行顺序搜索,速度极其缓慢。为了提速,我们引入了两种并行化方式:(1)主智能体并行启动 3-5 个子智能体,而非串行启动;(2)子智能体并行使用 3 个以上的工具。这些变化将复杂查询的研究时间缩短了高达 90%,使研究功能能够在几分钟内完成过去需要数小时的工作,同时覆盖比其他系统更多的信息。
我们的提示词策略侧重于灌输良好的启发式规则,而非死板的指令。我们研究了熟练的人类如何处理研究任务,并将这些策略编码到我们的提示词中——例如将困难问题分解为更小的任务、仔细评估信息源的质量、根据新信息调整搜索方法,以及识别何时该注重深度(深入调查一个主题)vs. 广度(并行探索多个主题)。我们还通过设置明确的防护栏来主动减轻意外的副作用,防止智能体失控。最后,我们注重快速迭代循环,配合可观测性和测试用例。
智能体的有效评估
良好的评估对于构建可靠的 AI 应用至关重要,智能体也不例外。然而,评估多智能体系统面临着独特的挑战。传统的评估通常假设 AI 每次都遵循相同的步骤:给定输入 X,系统应遵循路径 Y 来产生输出 Z。但多智能体系统不是这样运作的。即使起点相同,智能体也可能走完全不同的有效路径来达到目标。一个智能体可能搜索三个信息源,而另一个搜索十个,或者它们可能使用不同的工具来找到相同的答案。由于我们并不总是知道正确的步骤是什么,通常不能只是检查智能体是否遵循了我们预先规定的"正确"步骤。相反,我们需要灵活的评估方法,既判断智能体是否达到了正确的结果,同时也评估它们是否遵循了合理的流程。
立即用小样本开始评估。 在智能体开发早期,变化往往会产生巨大影响,因为有大量唾手可得的成果。一个提示词的调整可能将成功率从 30% 提升到 80%。在效应量如此大的情况下,只需几个测试用例就能发现变化。我们从大约 20 个代表真实使用模式的查询开始。测试这些查询通常能让我们清楚地看到变化的影响。我们经常听到 AI 开发团队推迟创建评估,因为他们认为只有包含数百个测试用例的大型评估才有用。然而,最好立即开始小规模测试,使用少量示例,而不是等到能构建更完善的评估后再开始。
LLM 作为评判者在做好时可以规模化。 研究输出难以用程序化方式评估,因为它们是自由形式的文本,很少有唯一正确的答案。LLM 天然适合对输出进行评分。我们使用 LLM 评判者按照评分标准评估每个输出:事实准确性(声明是否与信息源匹配?)、引用准确性(引用的信息源是否与声明匹配?)、完整性(是否涵盖了所有请求的方面?)、信息源质量(是否优先使用了一手信息源而非低质量的二手信息源?)以及工具效率(是否以合理的次数使用了正确的工具?)。我们尝试过使用多个评判者分别评估每个组成部分,但发现单个 LLM 调用配合单个提示词,输出 0.0-1.0 的分数和通过/未通过等级,是最一致且与人类判断最吻合的方式。当评估测试用例确实有明确答案时,这种方法特别有效,我们可以使用 LLM 评判者直接检查答案是否正确(即它是否准确列出了研发预算前三名的制药公司?)。使用 LLM 作为评判者使我们能够大规模评估数百个输出。
人工评估能捕捉自动化遗漏的内容。 测试智能体的人员会发现评估遗漏的边缘情况。这些包括异常查询上的幻觉答案、系统故障或微妙的信息源选择偏差。在我们的案例中,人工测试者注意到,我们的早期智能体总是选择 SEO 优化的内容农场,而非权威但排名较低的信息源,如学术 PDF 或个人博客。在提示词中添加信息源质量启发式规则帮助解决了这个问题。即使在自动化评估的世界中,手动测试仍然不可或缺。
多智能体系统具有涌现行为(Emergent Behaviors),这些行为并非通过特定编程产生。例如,对主智能体的微小更改可能会不可预测地改变子智能体的行为。成功需要理解交互模式,而不仅仅是单个智能体的行为。因此,这些智能体的最佳提示词不仅仅是严格的指令,而是定义分工、问题解决方法和工作量预算的协作框架。做好这一点依赖于精心的提示词和工具设计、可靠的启发式规则、可观测性以及紧密的反馈循环。参见 Cookbook 中的开源提示词,了解我们系统中的示例提示词。
生产环境可靠性与工程挑战
在传统软件中,一个 bug 可能破坏功能、降低性能或导致停机。在智能体系统中,微小的变化会级联成巨大的行为变化,这使得为必须在长期运行过程中维护状态的复杂智能体编写代码变得异常困难。
智能体是有状态的,错误会累积。 智能体可以运行很长时间,跨多次工具调用维护状态。这意味着我们需要持久化执行代码并处理沿途的错误。如果没有有效的缓解措施,微小的系统故障对智能体来说可能是灾难性的。当错误发生时,我们不能简单地从头开始:重新启动既昂贵又让用户沮丧。相反,我们构建了能够从错误发生时智能体所在位置恢复的系统。我们还利用模型的智能来优雅地处理问题:例如,让智能体知道工具何时出错并让它自行适应,效果出奇地好。我们将基于 Claude 构建的 AI 智能体的适应性与确定性保障措施(如重试逻辑和常规检查点)相结合。
调试需要新方法。 智能体做出动态决策,即使使用相同的提示词,不同运行之间也不确定。这使得调试更加困难。例如,用户会报告智能体"没有找到显而易见的信息",但我们无法看出原因。是智能体使用了糟糕的搜索查询?选择了差的信息源?还是遇到了工具故障?添加完整的生产追踪让我们能够诊断智能体失败的原因并系统性地修复问题。除了标准的可观测性外,我们还监控智能体的决策模式和交互结构——同时不监控单个对话的内容,以维护用户隐私。这种高层次的可观测性帮助我们诊断根本原因、发现意外行为并修复常见故障。
部署需要仔细协调。 智能体系统是由提示词、工具和执行逻辑组成的高度有状态网络,几乎持续运行。这意味着每当我们部署更新时,智能体可能处于其流程中的任何位置。因此,我们需要防止善意的代码更改破坏正在运行的智能体。我们不能同时将所有智能体更新到新版本。相反,我们使用彩虹部署(Rainbow Deployments)来避免中断正在运行的智能体,通过逐步将流量从旧版本转移到新版本,同时保持两个版本同时运行。
同步执行造成瓶颈。 目前,我们的主智能体同步执行子智能体,等待每组子智能体完成后再继续。这简化了协调,但在智能体间的信息流中造成了瓶颈。例如,主智能体无法引导子智能体,子智能体之间无法协调,整个系统可能在等待单个子智能体完成搜索时被阻塞。异步执行将实现额外的并行性:智能体可以并发工作,并在需要时创建新的子智能体。但这种异步性在结果协调、状态一致性以及子智能体间的错误传播方面带来了挑战。随着模型能够处理更长、更复杂的研究任务,我们预计性能收益将证明这种复杂性是值得的。
结论
在构建 AI 智能体时,最后一公里往往成为旅程的大部分。在开发者机器上运行的代码库需要大量的工程投入才能成为可靠的生产系统。智能体系统中错误的累积特性意味着,传统软件中的微小问题可能会完全破坏智能体。一个步骤的失败可能导致智能体探索完全不同的轨迹,产生不可预测的结果。由于本文所述的所有原因,原型与生产之间的差距往往比预期的要大。
尽管存在这些挑战,多智能体系统已被证明对开放式研究任务具有重要价值。用户表示,Claude 帮助他们发现了未曾考虑过的商业机会、导航复杂的医疗选项、解决了棘手的技术错误,并通过挖掘他们自己无法找到的研究关联节省了数天的工作。多智能体研究系统通过精心的工程设计、全面的测试、注重细节的提示词和工具设计、稳健的运营实践,以及对当前智能体能力有深刻理解的研究、产品和工程团队之间的紧密协作,能够可靠地大规模运行。我们已经看到这些系统正在改变人们解决复杂问题的方式。
致谢
由 Jeremy Hadfield、Barry Zhang、Kenneth Lien、Florian Scholz、Jeremy Fox 和 Daniel Ford 撰写。这项工作反映了 Anthropic 多个团队的集体努力,使研究功能得以实现。特别感谢 Anthropic 应用工程团队,他们的奉献将这个复杂的多智能体系统带到了生产环境。我们也感谢早期用户的出色反馈。
附录
以下是关于多智能体系统的一些额外实用建议。
对跨多轮改变状态的智能体进行终态评估。 评估在多轮对话中修改持久状态的智能体面临独特的挑战。与只读的研究任务不同,每个操作都可能改变后续步骤的环境,产生传统评估方法难以处理的依赖关系。我们发现专注于终态评估而非逐轮分析的方法很有效。与其判断智能体是否遵循了特定流程,不如评估它是否达到了正确的最终状态。这种方法承认智能体可能找到通往同一目标的替代路径,同时仍然确保它们交付预期的结果。对于复杂的工作流,将评估分解为离散的检查点,在这些点上特定的状态变化应该已经发生,而不是试图验证每个中间步骤。
长周期对话管理。 生产环境中的智能体经常参与跨越数百轮的对话,需要仔细的上下文管理策略。随着对话的延伸,标准上下文窗口变得不足,需要智能压缩和记忆机制。我们实现了这样的模式:智能体在进入新任务之前总结已完成的工作阶段,并将必要信息存储在外部记忆中。当接近上下文限制时,智能体可以生成具有干净上下文的新子智能体,同时通过仔细的交接维护连续性。此外,它们可以从记忆中检索存储的上下文(如研究计划),而不是在达到上下文限制时丢失之前的工作。这种分布式方法在保持对话连贯性的同时防止了上下文溢出。
子智能体输出到文件系统以最小化"传话游戏"效应。 对于某些类型的结果,子智能体的直接输出可以绕过主协调器,提高保真度和性能。与其要求子智能体通过主智能体传递所有信息,不如实现工件(Artifact)系统,让专业智能体可以创建独立持久的输出。子智能体调用工具将其工作存储在外部系统中,然后将轻量级引用传递回协调器。这防止了多阶段处理中的信息丢失,并减少了通过对话历史复制大型输出的 token 开销。这种模式特别适用于结构化输出,如代码、报告或数据可视化,其中子智能体的专业提示词比通过通用协调器过滤能产生更好的结果。
想了解更多?
Claude now hasResearch capabilitiesthat allow it to search across the web, Google Workspace, and any integrations to accomplish complex tasks. The journey of this multi-agent system from prototype to production taught us critical lessons about system architecture, tool design, and prompt engineering. A multi-agent system consists of multiple agents (LLMs autonomously using tools in a loop) working together. Our Research feature involves an agent that plans a research process based on user queries, and then uses tools to create parallel agents that search for information simultaneously. Systems with multiple agents introduce new challenges in agent coordination, evaluation, and reliability. This post breaks down the principles that worked for us—we hope you'll find them useful to apply when building your own multi-agent systems.
Benefits of a multi-agent system
Research work involves open-ended problems where it’s very difficult to predict the required steps in advance. You can’t hardcode a fixed path for exploring complex topics, as the process is inherently dynamic and path-dependent. When people conduct research, they tend to continuously update their approach based on discoveries, following leads that emerge during investigation. This unpredictability makes AI agents particularly well-suited for research tasks. Research demands the flexibility to pivot or explore tangential connections as the investigation unfolds. The model must operate autonomously for many turns, making decisions about which directions to pursue based on intermediate findings. A linear, one-shot pipeline cannot handle these tasks. The essence of search is compression: distilling insights from a vast corpus. Subagents facilitate compression by operating in parallel with their own context windows, exploring different aspects of the question simultaneously before condensing the most important tokens for the lead research agent. Each subagent also provides separation of concerns—distinct tools, prompts, and exploration trajectories—which reduces path dependency and enables thorough, independent investigations. Once intelligence reaches a threshold, multi-agent systems become a vital way to scale performance. For instance, although individual humans have become more intelligent in the last 100,000 years, human societies have becomeexponentiallymore capable in the information age because of ourcollectiveintelligence and ability to coordinate. Even generally-intelligent agents face limits when operating as individuals; groups of agents can accomplish far more. Our internal evaluations show that multi-agent research systems excel especially for breadth-first queries that involve pursuing multiple independent directions simultaneously. We found that a multi-agent system with Claude Opus 4 as the lead agent and Claude Sonnet 4 subagents outperformed single-agent Claude Opus 4 by 90.2% on our internal research eval. For example, when asked to identify all the board members of the companies in the Information Technology S&P 500, the multi-agent system found the correct answers by decomposing this into tasks for subagents, while the single agent system failed to find the answer with slow, sequential searches. Multi-agent systems work mainly because they help spend enough tokens to solve the problem. In our analysis, three factors explained 95% of the performance variance in theBrowseCompevaluation (which tests the ability of browsing agents to locate hard-to-find information). We found that token usage by itself explains 80% of the variance, with the number of tool calls and the model choice as the two other explanatory factors. This finding validates our architecture that distributes work across agents with separate context windows to add more capacity for parallel reasoning. The latest Claude models act as large efficiency multipliers on token use, as upgrading to Claude Sonnet 4 is a larger performance gain than doubling the token budget on Claude Sonnet 3.7. Multi-agent architectures effectively scale token usage for tasks that exceed the limits of single agents. There is a downside: in practice, these architectures burn through tokens fast. In our data, agents typically use about 4× more tokens than chat interactions, and multi-agent systems use about 15× more tokens than chats. For economic viability, multi-agent systems require tasks where the value of the task is high enough to pay for the increased performance. Further, some domains that require all agents to share the same context or involve many dependencies between agents are not a good fit for multi-agent systems today. For instance, most coding tasks involve fewer truly parallelizable tasks than research, and LLM agents are not yet great at coordinating and delegating to other agents in real time. We’ve found that multi-agent systems excel at valuable tasks that involve heavy parallelization, information that exceeds single context windows, and interfacing with numerous complex tools.
Architecture overview for Research
Our Research system uses a multi-agent architecture with an orchestrator-worker pattern, where a lead agent coordinates the process while delegating to specialized subagents that operate in parallel. When a user submits a query, the lead agent analyzes it, develops a strategy, and spawns subagents to explore different aspects simultaneously. As shown in the diagram above, the subagents act as intelligent filters by iteratively using search tools to gather information, in this case on AI agent companies in 2025, and then returning a list of companies to the lead agent so it can compile a final answer. Traditional approaches using Retrieval Augmented Generation (RAG) use static retrieval. That is, they fetch some set of chunks that are most similar to an input query and use these chunks to generate a response. In contrast, our architecture uses a multi-step search that dynamically finds relevant information, adapts to new findings, and analyzes results to formulate high-quality answers.
Prompt engineering and evaluations for research agents
Multi-agent systems have key differences from single-agent systems, including a rapid growth in coordination complexity. Early agents made errors like spawning 50 subagents for simple queries, scouring the web endlessly for nonexistent sources, and distracting each other with excessive updates. Since each agent is steered by a prompt, prompt engineering was our primary lever for improving these behaviors. Below are some principles we learned for prompting agents:
- Think like your agents.To iterate on prompts, you must understand their effects. To help us do this, we built simulations using ourConsolewith the exact prompts and tools from our system, then watched agents work step-by-step. This immediately revealed failure modes: agents continuing when they already had sufficient results, using overly verbose search queries, or selecting incorrect tools. Effective prompting relies on developing an accurate mental model of the agent, which can make the most impactful changes obvious.
- Teach the orchestrator how to delegate.In our system, the lead agent decomposes queries into subtasks and describes them to subagents. Each subagent needs an objective, an output format, guidance on the tools and sources to use, and clear task boundaries. Without detailed task descriptions, agents duplicate work, leave gaps, or fail to find necessary information. We started by allowing the lead agent to give simple, short instructions like 'research the semiconductor shortage,' but found these instructions often were vague enough that subagents misinterpreted the task or performed the exact same searches as other agents. For instance, one subagent explored the 2021 automotive chip crisis while 2 others duplicated work investigating current 2025 supply chains, without an effective division of labor.
- Scale effort to query complexity.Agents struggle to judge appropriate effort for different tasks, so we embedded scaling rules in the prompts. Simple fact-finding requires just 1 agent with 3-10 tool calls, direct comparisons might need 2-4 subagents with 10-15 calls each, and complex research might use more than 10 subagents with clearly divided responsibilities. These explicit guidelines help the lead agent allocate resources efficiently and prevent overinvestment in simple queries, which was a common failure mode in our early versions.
- Tool design and selection are critical.Agent-tool interfaces are as critical as human-computer interfaces. Using the right tool is efficient—often, it’s strictly necessary. For instance, an agent searching the web for context that only exists in Slack is doomed from the start. WithMCP serversthat give the model access to external tools, this problem compounds, as agents encounter unseen tools with descriptions of wildly varying quality. We gave our agents explicit heuristics: for example, examine all available tools first, match tool usage to user intent, search the web for broad external exploration, or prefer specialized tools over generic ones. Bad tool descriptions can send agents down completely wrong paths, so each tool needs a distinct purpose and a clear description.
- Let agents improve themselves. We found that the Claude 4 models can be excellent prompt engineers. When given a prompt and a failure mode, they are able to diagnose why the agent is failing and suggest improvements. We even created a tool-testing agent—when given a flawed MCP tool, it attempts to use the tool and then rewrites the tool description to avoid failures. By testing the tool dozens of times, this agent found key nuances and bugs. This process for improving tool ergonomics resulted in a 40% decrease in task completion time for future agents using the new description, because they were able to avoid most mistakes.
- Start wide, then narrow down.Search strategy should mirror expert human research: explore the landscape before drilling into specifics. Agents often default to overly long, specific queries that return few results. We counteracted this tendency by prompting agents to start with short, broad queries, evaluate what’s available, then progressively narrow focus.
- Guide the thinking process.Extended thinking mode, which leads Claude to output additional tokens in a visible thinking process, can serve as a controllable scratchpad. The lead agent uses thinking to plan its approach, assessing which tools fit the task, determining query complexity and subagent count, and defining each subagent’s role. Our testing showed that extended thinking improved instruction-following, reasoning, and efficiency. Subagents also plan, then useinterleaved thinkingafter tool results to evaluate quality, identify gaps, and refine their next query. This makes subagents more effective in adapting to any task.
- Parallel tool calling transforms speed and performance.Complex research tasks naturally involve exploring many sources. Our early agents executed sequential searches, which was painfully slow. For speed, we introduced two kinds of parallelization: (1) the lead agent spins up 3-5 subagents in parallel rather than serially; (2) the subagents use 3+ tools in parallel. These changes cut research time by up to 90% for complex queries, allowing Research to do more work in minutes instead of hours while covering more information than other systems.
Our prompting strategy focuses on instilling good heuristics rather than rigid rules. We studied how skilled humans approach research tasks and encoded these strategies in our prompts—strategies like decomposing difficult questions into smaller tasks, carefully evaluating the quality of sources, adjusting search approaches based on new information, and recognizing when to focus on depth (investigating one topic in detail) vs. breadth (exploring many topics in parallel). We also proactively mitigated unintended side effects by setting explicit guardrails to prevent the agents from spiraling out of control. Finally, we focused on a fast iteration loop with observability and test cases.
Effective evaluation of agents
Good evaluations are essential for building reliable AI applications, and agents are no different. However, evaluating multi-agent systems presents unique challenges. Traditional evaluations often assume that the AI follows the same steps each time: given input X, the system should follow path Y to produce output Z. But multi-agent systems don't work this way. Even with identical starting points, agents might take completely different valid paths to reach their goal. One agent might search three sources while another searches ten, or they might use different tools to find the same answer. Because we don’t always know what the right steps are, we usually can't just check if agents followed the “correct” steps we prescribed in advance. Instead, we need flexible evaluation methods that judge whether agents achieved the right outcomes while also following a reasonable process. Start evaluating immediately with small samples. In early agent development, changes tend to have dramatic impacts because there is abundant low-hanging fruit. A prompt tweak might boost success rates from 30% to 80%. With effect sizes this large, you can spot changes with just a few test cases. We started with a set of about 20 queries representing real usage patterns. Testing these queries often allowed us to clearly see the impact of changes. We often hear that AI developer teams delay creating evals because they believe that only large evals with hundreds of test cases are useful. However, it’s best to start with small-scale testing right away with a few examples, rather than delaying until you can build more thorough evals. LLM-as-judge evaluation scales when done well.Research outputs are difficult to evaluate programmatically, since they are free-form text and rarely have a single correct answer. LLMs are a natural fit for grading outputs. We used an LLM judge that evaluated each output against criteria in a rubric: factual accuracy (do claims match sources?), citation accuracy (do the cited sources match the claims?), completeness (are all requested aspects covered?), source quality (did it use primary sources over lower-quality secondary sources?), and tool efficiency (did it use the right tools a reasonable number of times?). We experimented with multiple judges to evaluate each component, but found that a single LLM call with a single prompt outputting scores from 0.0-1.0 and a pass-fail grade was the most consistent and aligned with human judgements. This method was especially effective when the eval test casesdidhave a clear answer, and we could use the LLM judge to simply check if the answer was correct (i.e. did it accurately list the pharma companies with the top 3 largest R&D budgets?). Using an LLM as a judge allowed us to scalably evaluate hundreds of outputs. Human evaluation catches what automation misses.People testing agents find edge cases that evals miss. These include hallucinated answers on unusual queries, system failures, or subtle source selection biases. In our case, human testers noticed that our early agents consistently chose SEO-optimized content farms over authoritative but less highly-ranked sources like academic PDFs or personal blogs. Adding source quality heuristics to our prompts helped resolve this issue. Even in a world of automated evaluations, manual testing remains essential. Multi-agent systems have emergent behaviors, which arise without specific programming. For instance, small changes to the lead agent can unpredictably change how subagents behave. Success requires understanding interaction patterns, not just individual agent behavior. Therefore, the best prompts for these agents are not just strict instructions, but frameworks for collaboration that define the division of labor, problem-solving approaches, and effort budgets. Getting this right relies on careful prompting and tool design, solid heuristics, observability, and tight feedback loops.See theopen-source prompts in our Cookbookfor example prompts from our system.
Production reliability and engineering challenges
In traditional software, a bug might break a feature, degrade performance, or cause outages. In agentic systems, minor changes cascade into large behavioral changes, which makes it remarkably difficult to write code for complex agents that must maintain state in a long-running process. Agents are stateful and errors compound.Agents can run for long periods of time, maintaining state across many tool calls. This means we need to durably execute code and handle errors along the way. Without effective mitigations, minor system failures can be catastrophic for agents. When errors occur, we can't just restart from the beginning: restarts are expensive and frustrating for users. Instead, we built systems that can resume from where the agent was when the errors occurred. We also use the model’s intelligence to handle issues gracefully: for instance, letting the agent know when a tool is failing and letting it adapt works surprisingly well. We combine the adaptability of AI agents built on Claude with deterministic safeguards like retry logic and regular checkpoints. Debugging benefits from new approaches.Agents make dynamic decisions and are non-deterministic between runs, even with identical prompts. This makes debugging harder. For instance, users would report agents “not finding obvious information,” but we couldn't see why. Were the agents using bad search queries? Choosing poor sources? Hitting tool failures? Adding full production tracing let us diagnose why agents failed and fix issues systematically. Beyond standard observability, we monitor agent decision patterns and interaction structures—all without monitoring the contents of individual conversations, to maintain user privacy. This high-level observability helped us diagnose root causes, discover unexpected behaviors, and fix common failures. Deployment needs careful coordination.Agent systems are highly stateful webs of prompts, tools, and execution logic that run almost continuously. This means that whenever we deploy updates, agents might be anywhere in their process. We therefore need to prevent our well-meaning code changes from breaking existing agents. We can’t update every agent to the new version at the same time. Instead, we userainbow deploymentsto avoid disrupting running agents, by gradually shifting traffic from old to new versions while keeping both running simultaneously. Synchronous execution creates bottlenecks.Currently, our lead agents execute subagents synchronously, waiting for each set of subagents to complete before proceeding. This simplifies coordination, but creates bottlenecks in the information flow between agents. For instance, the lead agent can’t steer subagents, subagents can’t coordinate, and the entire system can be blocked while waiting for a single subagent to finish searching. Asynchronous execution would enable additional parallelism: agents working concurrently and creating new subagents when needed. But this asynchronicity adds challenges in result coordination, state consistency, and error propagation across the subagents. As models can handle longer and more complex research tasks, we expect the performance gains will justify the complexity.
Conclusion
When building AI agents, the last mile often becomes most of the journey. Codebases that work on developer machines require significant engineering to become reliable production systems. The compound nature of errors in agentic systems means that minor issues for traditional software can derail agents entirely. One step failing can cause agents to explore entirely different trajectories, leading to unpredictable outcomes. For all the reasons described in this post, the gap between prototype and production is often wider than anticipated. Despite these challenges, multi-agent systems have proven valuable for open-ended research tasks. Users have said that Claude helped them find business opportunities they hadn’t considered, navigate complex healthcare options, resolve thorny technical bugs, and save up to days of work by uncovering research connections they wouldn't have found alone. Multi-agent research systems can operate reliably at scale with careful engineering, comprehensive testing, detail-oriented prompt and tool design, robust operational practices, and tight collaboration between research, product, and engineering teams who have a strong understanding of current agent capabilities. We're already seeing these systems transform how people solve complex problems.
Acknowlegements
Written by Jeremy Hadfield, Barry Zhang, Kenneth Lien, Florian Scholz, Jeremy Fox, and Daniel Ford. This work reflects the collective efforts of several teams across Anthropic who made the Research feature possible. Special thanks go to the Anthropic apps engineering team, whose dedication brought this complex multi-agent system to production. We're also grateful to our early users for their excellent feedback.
Appendix
Below are some additional miscellaneous tips for multi-agent systems. End-state evaluation of agents that mutate state over many turns.Evaluating agents that modify persistent state across multi-turn conversations presents unique challenges. Unlike read-only research tasks, each action can change the environment for subsequent steps, creating dependencies that traditional evaluation methods struggle to handle. We found success focusing on end-state evaluation rather than turn-by-turn analysis. Instead of judging whether the agent followed a specific process, evaluate whether it achieved the correct final state. This approach acknowledges that agents may find alternative paths to the same goal while still ensuring they deliver the intended outcome. For complex workflows, break evaluation into discrete checkpoints where specific state changes should have occurred, rather than attempting to validate every intermediate step. Long-horizon conversation management.Production agents often engage in conversations spanning hundreds of turns, requiring careful context management strategies. As conversations extend, standard context windows become insufficient, necessitating intelligent compression and memory mechanisms. We implemented patterns where agents summarize completed work phases and store essential information in external memory before proceeding to new tasks. When context limits approach, agents can spawn fresh subagents with clean contexts while maintaining continuity through careful handoffs. Further, they can retrieve stored context like the research plan from their memory rather than losing previous work when reaching the context limit. This distributed approach prevents context overflow while preserving conversation coherence across extended interactions. Subagent output to a filesystem to minimize the ‘game of telephone.’Direct subagent outputs can bypass the main coordinator for certain types of results, improving both fidelity and performance. Rather than requiring subagents to communicate everything through the lead agent, implement artifact systems where specialized agents can create outputs that persist independently. Subagents call tools to store their work in external systems, then pass lightweight references back to the coordinator. This prevents information loss during multi-stage processing and reduces token overhead from copying large outputs through conversation history. The pattern works particularly well for structured outputs like code, reports, or data visualizations where the subagent's specialized prompt produces better results than filtering through a general coordinator.