Skip to content

Anthropic 如何构建多 Agent 研究系统

官方原文: https://www.anthropic.com/engineering/multi-agent-research-system

发布日期: 2025年6月13日

作者: Jeremy Hadfield、Barry Zhang、Kenneth Lien、Florian Scholz、Jeremy Fox 和 Daniel Ford


概述

Claude 的 Research 功能可跨 Web、Google Workspace 和各类集成搜索,以处理复杂任务。本文讲述构建这套 multi-agent system 时遇到的工程挑战和经验。系统让多个 Claude Agent 协作:由 orchestrator 根据用户查询制定研究策略,再启动并行 subagent 同时收集信息。


多 Agent 系统的优势

研究涉及开放式问题,所需步骤无法预先预测。这个过程本质上是动态的、路径依赖的,就像人类根据发现不断更新研究方法一样。

研究工作要求随发现灵活调整方向,并跨多个回合自主决策,因此很适合 Agent;固定的线性流程无法胜任。

作者将搜索的本质视为压缩:从海量语料中提炼洞察。subagent 在并行 Context Window 中探索不同方向,再把发现压缩后交给主 Agent;不同工具、prompt 和探索轨迹也天然形成关注点分离。

他们类比了人类的集体智慧:虽然个体人类的智力在十万年间变化不大,但社会"因为集体智慧和协调能力,在信息时代变得指数级强大"。

内部评估显示,使用 Claude Opus 4 作为主 Agent、Claude Sonnet 4 作为子 Agent 的多 Agent 系统,在研究评估中"比单 Agent Claude Opus 4 的表现高出 90.2%"。在一个识别所有 IT 标普 500 公司董事会成员的任务中,多 Agent 系统通过任务分解成功完成,而单 Agent 则因缓慢的顺序搜索而失败。

三个因素解释了 BrowseComp 评估中 95% 的性能差异。仅 Token 使用量就占了 80% 的差异,工具调用次数和模型选择是另外两个因素。升级到 Claude Sonnet 4 带来的性能提升,比将 Claude Sonnet 3.7 的 Token 预算翻倍还要大。

权衡: multi-agent architecture 的 token 消耗约为普通聊天的 15 倍。它适合价值足以覆盖成本、可大规模并行、信息量超过单个 Context Window,且要使用许多复杂工具的任务。大多数编码任务可并行子任务较少,因此未必适合。


Research 架构概览

该系统采用编排器-工作者模式,由一个主 Agent 协调并委派给专门的并行子 Agent。

工作流程:

  1. 用户提交查询
  2. 主 Agent 分析查询,制定策略,生成子 Agent
  3. 子 Agent 充当智能过滤器,迭代使用搜索工具
  4. 子 Agent 将发现返回给主 Agent
  5. 主 Agent 综合结果,决定是否需要进一步研究
  6. 如果信息充足,发现会传递给 CitationAgent 进行来源归属
  7. 带引用的最终结果返回给用户

主 Agent 会把计划写入 Memory,因为超过 200,000 tokens 的 Context Window 会被截断。subagent 独立搜索网页,借助 interleaved thinking 评估结果并回传发现。与静态检索式 RAG 相比,这套系统会随着新发现动态调整。


提示词工程与经验教训

早期的 Agent 表现出问题行为:为简单查询生成 50 个子 Agent、无休止地搜索不存在的来源、以及通过过多的更新互相干扰。提示词工程是改进的主要手段。

8 条提示词原则:

1. 像你的 Agent 一样思考。 团队使用 Console 构建了模拟环境,使用完全相同的系统提示词和工具,观察 Agent 逐步工作。这揭示了失败模式,例如 Agent 在结果已经足够时继续搜索,或使用过于冗长的查询。

2. 教会编排器如何委派。 每个子 Agent 需要一个目标、输出格式、工具/来源指导和清晰的任务边界。最初允许"研究半导体短缺"这样的简短指令,导致了误解和跨 Agent 的重复工作。

3. 根据查询复杂度调整工作量。 嵌入扩展规则:简单的事实查找需要约 1 个 Agent 进行 3-10 次工具调用;直接比较需要 2-4 个子 Agent,每个进行 10-15 次调用;复杂研究使用 10 个以上子 Agent,分工负责。这可以防止在简单查询上过度投入。

4. 工具设计和选择至关重要。 Agent 与工具的接口和人机接口一样重要。随着 MCP 服务器提供外部工具,Agent 会遇到质量参差不齐的工具描述。Agent 被赋予了明确的启发式规则:先检查所有工具,将工具使用与意图匹配,优先使用专用工具而非通用工具。

5. 让 Agent 自我改进。 Claude 4 模型可以作为出色的提示词工程师,诊断失败并提出改进建议。一个工具测试 Agent 在测试了数十次后重写了 MCP 工具描述,"使未来 Agent 的任务完成时间减少了 40%"。

6. 先广泛搜索,再逐步缩小范围。 搜索策略应模仿专家级人类研究——先探索全局,再深入细节。Agent 往往默认使用过长、过于具体的查询,返回的结果很少。

7. 引导思考过程。 Extended thinking 可作为可控 scratchpad。主 Agent 用它规划;subagent 在工具返回后使用 interleaved thinking 评估质量、找出信息缺口。

8. 并行工具调用改变速度和性能。 有两种并行化方式:主 Agent 并行启动 3-5 个子 Agent,子 Agent 并行使用 3 个以上工具。"这些变化将复杂查询的研究时间缩短了高达 90%。"

整体提示词策略侧重于灌输良好的启发式方法而非刚性规则,编码从熟练的人类研究人员身上观察到的策略——分解问题、评估来源质量、根据新信息调整方法,以及知道何时追求深度 vs. 广度。


Agent 的有效评估

多 Agent 系统每次执行的步骤不同,因此传统的评估方法不适用。团队需要灵活的方法来判断 Agent 是否通过合理的过程达到了正确结果。

立即用小样本开始评估。 早期变化往往会产生巨大影响。团队从大约 20 个代表真实使用模式的查询开始。即使少量测试用例也能清楚显示变化的影响。团队不应等待大型测试集才开始构建评估。

LLM-as-judge 做得好时可以扩展。 研究输出通常是自由文本,很少有唯一正确答案。LLM judge 会按事实准确性、引用准确性、完整性、来源质量与工具效率评分。一次 LLM 调用输出 0.0 到 1.0 分数和通过/未通过结论的做法,最稳定且与人工判断最一致。

人工评估能捕捉自动化遗漏的内容。 手动测试人员发现了评估遗漏的边缘情况——在不常见查询上产生幻觉答案、系统故障和来源选择偏差。例如,早期 Agent"持续选择 SEO 优化的内容农场,而非权威但排名较低的来源"。

多 Agent 系统具有涌现行为——对主 Agent 的微小改变可能不可预测地影响子 Agent 的行为。最好的提示词充当"协作框架,定义分工、问题解决方法和工作量预算"。


生产环境可靠性与工程挑战

Agent 是有状态的,错误会累积。 长时间运行的 Agent 在多次工具调用中保持状态。从头开始重启既昂贵又令人沮丧,因此团队构建了恢复系统。他们让 Agent 知道工具何时失败,以便 Agent 可以适应,同时结合确定性的保障措施,如重试逻辑和定期检查点。

调试需要新方法。 Agent 在不同运行之间是非确定性的。当用户报告 Agent"找不到明显的信息"时,需要完整的生产追踪来诊断根本原因——糟糕的查询、不良的来源选择或工具故障。他们监控 Agent 的决策模式和交互结构,同时通过不监控对话内容来保护用户隐私。

部署需要细致协调。 Agent system 是几乎持续运行的有状态网络,代码变更不能同时切给全部 Agent。Rainbow deployment 会逐步把流量由旧版导向新版,同时让两版并行运行。

同步执行造成瓶颈。 目前主 Agent 同步执行子 Agent,等待完成后再继续。这简化了协调,但阻止了主 Agent 引导子 Agent 或子 Agent 之间进行协调。异步执行可以实现更多并行性,但在结果协调、状态一致性和错误传播方面增加了挑战。


结论

作者强调,对于 Agent 系统,"最后一英里往往成为旅程的大部分"。错误的复合性质意味着小问题可能完全破坏 Agent,"原型和生产之间的差距往往比预期的要大"。

尽管存在挑战,用户报告称发现了商业机会、导航医疗保健选项、解决技术 bug 并节省了数天的工作。成功需要精心的工程设计、全面的测试、注重细节的提示词和工具设计、稳健的运维实践以及紧密的跨团队协作。

一个 Clio 嵌入图显示了主要用例类别:跨专业领域开发软件系统(10%)、专业和技术内容(8%)、业务增长策略(8%)、学术研究(7%)以及验证关于人员/地点/组织的信息(5%)。


附录:额外建议

针对状态变更 Agent 的终态评估。 关注 Agent 是否达到了正确的最终状态,而不是评判每一步。将评估分解为离散的检查点,检查特定状态变更是否已发生。

长周期对话管理。 跨越数百个回合的对话需要智能压缩和记忆。Agent 在新任务之前总结已完成的工作阶段,并将必要信息存储在外部记忆中。当接近上下文限制时,可以生成具有干净上下文的新子 Agent,同时通过交接维护连续性。

子 Agent 输出到文件系统。 子 Agent 的直接输出可以通过工件系统绕过主协调器,Agent 将工作存储在外部系统中,并传回轻量级引用。这防止了多阶段处理中的信息丢失,减少了 Token 开销,特别适用于结构化输出,如代码、报告或数据可视化。


致谢

这项工作反映了 Anthropic 多个团队的集体努力。特别感谢 Anthropic 应用工程团队和早期用户的反馈。

AI 落地咨询
艾维禾砺数字科技

企业 AI 落地全链路服务

Agent 开发工作流搭建Claude Code 集成
微信咨询
d187l8801b6124
访问官网 ivheli.com