多智能体在「燃烧」Token!Anthropic公开发现的一切

多智能体在「燃烧」Token!Anthropic公开发现的一切

文章图片

多智能体在「燃烧」Token!Anthropic公开发现的一切

文章图片

机器之心报道
机器之心编辑部

研究多智能体必读指南 。


「Anthropic 发布了他们如何使用多个 Claude AI 智能体构建多智能体研究系统的精彩解释 。 对于任何构建多智能体系统的人来说 , 这是一本必读的指南 。 」刚刚 , X 知名博主 Rohan Paul 强力推荐了 Anthropic 一项新研究 。





最近一段时间 , 关于智能体的研究层出不穷 。 但这也为广大研究者带来一些困惑 , 比如什么任务需要多智能体?多个 AI 智能体如何协作?怎么解决上下文和记忆问题……


面对这些问题 , 你不妨读读 Anthropic 的这篇文章 , 或许能找到答案 。





文章地址:https://www.anthropic.com/engineering/built-multi-agent-research-system


多智能体系统的优势


有些研究涉及开放式问题 , 这类问题往往难以预先确定所需的步骤 。 对于复杂问题的探索 , 人类无法硬性规定固定路径 , 因为这一过程本质上是动态且具有路径依赖性的 。 当人们开展研究时 , 通常会根据发现持续调整方法 , 沿着调查过程中浮现的线索不断推进 。


【多智能体在「燃烧」Token!Anthropic公开发现的一切】这种不可预测性使得 AI 智能体特别适合执行研究类任务 。 研究工作要求具备灵活性 , 能够在调查过程中根据发展情况进行转向或探索相关联的内容 。 模型必须能够自主进行多轮推理 , 根据中间发现决定进一步的探索方向 。 线性的一次性流程无法胜任这样的任务 。


研究的本质是压缩:从庞大的语料中提炼出有价值的见解 。 子智能体通过并行运行、各自拥有独立的上下文窗口来辅助这一压缩过程 , 它们能同时探索问题的不同方面 , 然后将最重要的内容提炼出来 , 交给主研究智能体处理 。 每个子智能体还承担了关注点分离的作用 —— 它们使用不同的工具、提示词和探索路径 , 从而减少路径依赖 , 确保研究过程更为全面且相互独立 。


一旦智能达到一定门槛 , 多智能体系统就成为提升性能的关键方式 。 例如 , 尽管在过去的十万年中 , 个体人类的智力有所提升 , 但正是由于我们在信息时代的集体智能和协作能力 , 人类社会的整体能力才呈指数级增长 。 即使是具备通用智能的智能体 , 作为个体在执行任务时也存在极限;而多个智能体协作 , 则能完成更多复杂任务 。


Anthropic 内部评估显示 , 多智能体研究系统在「广度优先」的查询任务中表现尤为出色 , 这类任务通常需要同时探索多个相互独立的方向 。 他们发现 , 在以 Claude Opus 4 为主智能体、Claude Sonnet 4 为子智能体组成的多智能体系统中 , 表现比单一的 Claude Opus 4 智能体高出 90.2% 。


多智能体系统的核心优势在于能够通过充分的 token 消耗来解决问题 。 分析显示 , 在 BrowseComp 评估(该测试衡量浏览型智能体定位高难度信息的能力)中 , 三个因素共同解释了 95% 的性能差异 。 研究发现:


  • token 消耗量单独解释了 80% 的差异;
  • 工具调用次数和模型选择构成是另外两个关键因素 。


这一发现验证了 Anthropic 之前所采用的架构:通过将任务分发给拥有各自上下文窗口的不同智能体 , 从而为并行推理增加容量 。 最新的 Claude 模型在 token 使用效率上具有强大的乘数效应 , 例如 , 将 Claude Sonnet 升级至 4 版本所带来的性能提升 , 甚至超过了将 Claude Sonnet 3.7 的 token 预算翻倍所带来的提升 。 对于那些超出单一智能体处理极限的任务 , 多智能体架构可以有效扩展 token 使用 , 从而实现更强的处理能力 。


当然 , 这种架构也有一个缺点:在实际应用中 , 它们会非常快速地消耗 tokens 。 根据 Anthropic 统计 , 智能体通常会使用大约是普通聊天交互 4 倍 的 tokens , 而多智能体系统的 token 消耗甚至是聊天的 15 倍左右 。


因此 , 要实现经济上的可行性 , 多智能体系统需要用于那些任务价值足够高、足以覆盖其性能提升所带来的成本的场景 。 此外 , 一些领域并不适合当前的多智能体系统 , 比如那些要求所有智能体共享同一上下文 , 或智能体之间存在大量依赖关系的任务 。


例如 , 大多数编程任务中真正可并行化的部分相对较少 , 而且当前的大语言模型智能体在「实时协调和分配任务」方面的能力还不够强 。


因此 , 多智能体系统最擅长的场景是那些具有以下特点的高价值任务:需要大量并行处理、信息量超出单一上下文窗口、以及需要与大量复杂工具交互的任务 。


架构


Anthropic 的研究系统采用多智能体架构 , 使用「协调者 - 执行者(orchestrator-worker)」模式:由一个主导智能体负责整体协调 , 同时将任务分派给多个并行运行的专业子智能体 。



多智能体架构的实际运作方式:用户的查询首先通过主导智能体(lead agent) , 由它创建多个专业子智能体 , 分别并行地搜索查询的不同方面 。


当用户提交查询后 , 主导智能体会对其进行分析 , 制定策略 , 并生成子智能体 , 分别从不同角度同时展开探索 。 如上图所示 , 这些子智能体通过迭代地使用搜索工具来获取信息(例如在本例中是关于 2025 年的 AI 智能体公司) , 并充当「智能过滤器」的角色 , 最终将公司列表返回给主导智能体 , 由其整理出最终答案 。


传统的检索增强生成(RAG)方法采用的是静态检索 , 即从语料库中提取与输入查询最相似的一些片段 , 并用这些片段生成回答 。 相比之下 , Anthropic 提出的架构使用的是多步骤的动态搜索流程 , 能够根据中间结果不断调整方向、寻找相关信息 , 并进行深入分析 , 从而生成高质量的答案 。





上图的工作流程是这样的 。 当用户提交一个查询时 , 系统会创建一个名为 LeadResearcher 的主导研究智能体 , 它会进入一个迭代式的研究过程 。 LeadResearcher 首先会思考研究方法 , 并将其计划保存到 Memory(记忆模块)中 , 以便持久化上下文信息 —— 因为一旦上下文窗口超过 200000 个 token , 内容就会被截断 , 而保留研究计划对于后续推理至关重要 。


随后 , LeadResearcher 会创建多个专业子智能体(Subagents)(图中展示了两个 , 实际上可以是任意数量) , 并为每个子智能体分配具体的研究任务 。 每个 Subagent 会独立地进行网页搜索 , 使用交替式思维方式评估工具返回的结果 , 并将研究发现反馈给 LeadResearcher 。


LeadResearcher 对这些结果进行综合分析 , 并判断是否还需要进一步研究 —— 如果需要 , 它可以创建更多的子智能体 , 或优化已有的研究策略 。


一旦收集到足够的信息 , 系统就会退出研究循环 , 并将所有研究发现交给 CitationAgent(引用标注智能体) , 由它处理所有文档和研究报告 , 识别出每条论述所对应的具体引用位置 , 从而确保所有观点都有明确的来源支撑 。


最终 , 包含完整引用信息的研究成果将被返回给用户 。


研究型智能体的提示词工程与评估方法


多智能体系统与单智能体系统之间存在关键差异 , 其中之一就是协调复杂度会迅速上升 。 在早期阶段 , 智能体常常会出现一些错误行为 , 例如:为简单的问题生成多达 50 个子智能体、在网络上无休止地寻找根本不存在的资源 , 或者彼此频繁干扰、发送过多无关更新 。


由于每个智能体的行为都是由提示词(prompt)驱动的 , 因此提示词工程成为研究者优化这些行为的主要手段 。 以下是 Anthropic 在为智能体设计提示词过程中总结出的一些原则:


高效的提示词设计 。 要优化提示词(prompt) , 就必须理解其实际影响 。 为此 , Anthropic 通过控制台搭建了模拟环境 —— 完全复现系统中的提示词和工具配置 , 逐步骤观察智能体的工作过程 。 这种方法立刻暴露出典型失效模式:冗余执行 , 即已获得充分结果后仍继续操作;低效查询 , 即使用冗长模糊的搜索指令;以及工具误用 , 错误选择功能模块 。 因而 ,高效的提示词设计依赖于你对智能体行为建立起准确的心理模型 , 一旦理解深入 , 最有效的改进方向也会变得一目了然 。


教会协调者如何正确分工 。 在 Anthropic 所采用的系统中 , 主导智能体负责将用户的查询拆解为若干子任务 , 并将这些任务分配给子智能体 。 每个子智能体都需要明确的目标、输出格式、关于应使用哪些工具和信息来源的指导 , 以及清晰的任务边界 。 如果任务描述不够具体 , 智能体之间就会出现重复劳动、任务空缺 , 或者无法找到所需的信息 。


Anthropic 曾经历过一个深刻的教训:他们早期采用「研究芯片短缺」这类笼统指令时 ,发现这类指令往往过于模糊 , 导致子智能体误解任务 , 或者执行与其他智能体完全相同的搜索 。 比如三个子智能体不约而同地锁定 2025 年供应链数据 , 其中一个偏离到 2021 年汽车芯片危机却未覆盖制造端瓶颈 , 最终报告重复率高达 60% 且缺失晶圆厂产能分析 。


根据查询复杂度调整投入力度 。 由于智能体在判断不同任务所需的适当投入时存在困难 , 因此 Anthropic 在提示词中嵌入了分级投入规则 。 简单的事实查找只需要 1 个智能体调用 3-10 次工具;直接对比类任务可能需要 2-4 个子智能体 , 每个调用 10-15 次工具;而复杂的研究任务则可能使用超过 10 个子智能体 , 并且明确划分各自的职责 。


这些明确的指导原则帮助主导智能体更有效地分配资源 , 避免在简单查询上投入过多 。


工具的设计与选择至关重要 。 智能体与工具之间的接口就像人与计算机的交互界面一样重要 。 使用合适的工具可以显著提高效率 —— 在很多情况下 , 这不仅是优化手段 , 更是必要条件 。 例如 , 如果一个智能体试图通过网页搜索来获取只存在于 Slack 中的上下文信息 , 那么从一开始它就注定无法成功 。


随着 MCP 服务器让模型能够访问外部工具 , 这一问题变得更加复杂 —— 智能体可能会遇到从未使用过的工具 , 而这些工具的描述质量又参差不齐 。


因此 , Anthropic 为智能体设计了明确的启发式规则 , 比如:先查看所有可用工具、将工具的用途与用户意图进行匹配、使用网页搜索进行广泛的信息探索、优先选择专用工具而非通用工具等 。


糟糕的工具描述会导致智能体完全走上错误的路径 , 因此每个工具都必须具备明确的用途和清晰的描述 。


让智能体自我改进 。 Anthropic 发现 Claude 4 系列模型在提示词工程方面表现非常出色 。 当提供一个提示词和相应的失败模式时 , 它能够诊断出智能体失败的原因 , 并提出改进建议 。


Anthropic 甚至构建了一个工具测试智能体:当它接收到一个存在问题的 MCP 工具时 , 会尝试使用该工具 , 并随后重写其工具描述 , 以避免类似的失败发生 。 通过对该工具进行数十次测试 , 这个智能体能发现关键的使用细节和潜在的 bug 。


这种优化工具交互体验的流程 , 使后续智能体在使用新描述时的任务完成时间缩短了 40% , 因为它们能够避开大多数常见错误 。


先广后窄 , 循序渐进 。 搜索策略应当模仿人类专家的研究方式:先全面探索 , 再深入细化 。 然而 , 智能体往往倾向于一开始就使用冗长、具体的查询词 , 结果返回的内容却非常有限 。


为了解决这一问题 , Anthropic 在提示词中引导智能体从简短、宽泛的查询开始 , 先评估可用信息 , 然后再逐步聚焦和深化研究方向 。


引导思维过程 。 「扩展思维模式」(Extended Thinking Mode)会让 Claude 在输出中展示出可见的思考过程 , 这相当于一个可控的「草稿本」 。 主导智能体会利用这种思维过程来规划整体策略 , 包括评估哪些工具适合当前任务、判断查询的复杂度和需要的子智能体数量 , 并明确每个子智能体的职责 。


测试表明 , 扩展思维能够显著提升智能体的指令遵循能力、推理能力和执行效率 。


子智能体同样会先制定计划 , 然后在工具调用之后使用交替思维(Interleaved Thinking)来评估结果质量、发现信息缺口 , 并改进下一步的查询 。 这使得子智能体在面对不同任务时具备更强的适应能力 。


并行调用工具彻底改变了研究任务的速度与性能 。 复杂的研究任务天然需要查阅大量信息来源 。 Anthropic 早期的智能体采用的是串行搜索 , 执行效率极低 。


为了解决这一问题 , 他们引入了两种并行机制:


  • 主导智能体同时创建 3-5 个子智能体 , 而不是依次生成;
  • 每个子智能体同时使用 3 个以上的工具 , 而不是逐个调用 。


这些改进将复杂查询的研究时间最多缩短了 90% , 让研究系统能在几分钟内完成原本需要几小时的工作 , 同时覆盖的信息范围也远超其他系统 。


有效评估方法


良好的评估机制对于构建可靠的 AI 应用至关重要 , 智能体系统也不例外 。 然而 , 评估多智能体系统面临独特的挑战 。


传统评估通常假设 AI 每次都会遵循相同的步骤:给定输入 X , 系统应按路径 Y 执行 , 并输出结果 Z 。 但多智能体系统的工作方式并非如此 。 即使起点相同 , 智能体可能会走上完全不同但同样有效的路径来实现目标 。 有的智能体可能只查阅 3 个信息源 , 有的可能会查 10 个;它们也可能使用不同的工具来得出相同的答案 。


由于我们并不总是知道哪一套操作步骤才是正确的 , 所以通常无法只靠检查是否遵循了预设流程来评估智能体表现 。 相反 , 我们需要更灵活的评估方法 , 既要判断智能体是否达成了正确的结果 , 也要衡量其执行过程是否合理 。


从小样本评估开始 。 在智能体开发的早期阶段 , 任何改动往往都会带来显著影响 。 例如 , 仅仅调整一下提示词 , 成功率就可能从 30% 提升到 80% 。 在这种影响幅度很大的阶段 , 只需少量测试用例就能看出变化的效果 。


Anthropic 最初使用了一组大约 20 个查询 , 这些查询代表了真实的使用模式 。 测试这些查询通常就足以清晰判断某项更改的效果 。


人们经常听到 AI 开发团队说他们推迟创建评估机制 , 是因为他们认为只有包含数百个测试用例的大规模评估才有价值 。 但实际上 , 最好的做法是立即从小规模测试开始 , 用几个示例立刻着手评估 , 而不是等到构建出完整评估系统之后再行动 。


如果使用得当 , 「由大语言模型担任评审官」(LLM-as-judge)的评估方式也是不错的选择 。


研究类的输出很难通过程序化手段进行评估 , 因为它们通常是自由格式的文本 , 且很少存在唯一正确的答案 。 而 LLM 天然适合担任这类输出的评分者 。


Anthropic 使用了一位「LLM 评审官」 , 根据一套评分标准(rubric)来评估每个输出 , 具体包括以下几个维度:


  • 事实准确性:陈述是否与引用来源相符?
  • 引用准确性:引用内容是否确实支持了对应的陈述?
  • 完整性:是否覆盖了所有被要求回答的内容?
  • 信息源质量:是否优先使用了高质量的一手来源 , 而非较低质量的二手资料?
  • 工具使用效率:是否合理选择并适当使用了相关工具?


Anthropic 尝试过使用多个 LLM 来分别评估每一个维度 , 但最终发现:只使用一次 LLM 调用 , 通过单个提示词让模型输出 0.0–1.0 的评分以及「通过 / 未通过」的判断 , 是最稳定、最符合人类评审标准的方法 。


这种方法在测试用例本身有明确答案时尤其有效 , 比如:「是否准确列出了研发投入最高的三家制药公司?」 这种题目可以直接判断答案是否正确 。


借助 LLM 担任评审官 , 能够高效地扩展到对数百个输出结果进行评估 , 大幅提升了评估系统的可扩展性与实用性 。


人工评估能发现自动化评估遗漏的问题 。 实际测试智能体的人会发现一些评估系统无法捕捉的边缘案例 , 比如在不寻常查询中产生的幻觉答案、系统故障 , 或是细微的来源选择偏差 。 即使在自动化评估盛行的今天 , 人工测试依然不可或缺 。


生产可靠性与工程挑战


在传统软件中 , 程序缺陷可能导致功能失效、性能下降或系统宕机 。 而在智能体系统中 , 细微的变化可能引发巨大的行为变动 , 这使得为需要在长时间运行过程中维护状态的复杂智能体编写代码异常困难 。


智能体是有状态的 , 错误会累积 。 智能体可能运行很长时间 , 在多次调用工具过程中保持状态 。 这意味着我们需要持久地执行代码并在过程中处理错误 。 如果没有有效的缓解措施 , 轻微的系统故障对智能体来说可能是灾难性的 。 当发生错误时 , 我们不能简单地从头重启:重启成本高且令用户沮丧 。 相反 , Anthropic 构建了能够从智能体发生错误时的状态继续执行的系统 。


调试 。 智能体在运行时会做出动态决策 , 即使使用相同的提示 , 结果也具有非确定性 , 这使得调试变得更加困难 。 通过添加完整的生产追踪 , Anthropic 能够系统地诊断智能体失败的原因并修复问题 。


部署需要谨慎协调 。 智能体系统是高度有状态的提示、工具和执行逻辑的网络 , 几乎持续运行 。 这意味着每当我们部署更新时 , 智能体可能处于执行过程中的任何阶段 。 虽然不能同时将所有智能体更新到新版本 。 但 Anthropic 采用彩虹部署 , 通过逐步将流量从旧版本转移到新版本 , 同时保持两者并行运行 , 从而避免对正在运行的智能体造成干扰 。


同步执行会造成瓶颈 。 目前 , Anthropic 的主控智能体采用同步方式执行子智能体任务 , 会等待每批子智能体完成后才继续下一步 。 这简化了协调过程 , 但也在智能体之间的信息流动中形成了瓶颈 。 例如 , 主智能体无法实时引导子智能体 , 子智能体之间也无法协同 , 而整个系统可能会因为等待某个子智能体完成搜索而被阻塞 。


异步执行则能带来更多的并行性:智能体可以同时工作 , 并在需要时创建新的子智能体 。 但这种异步性也带来了结果协调、状态一致性以及错误传播等方面的挑战 。 随着模型能够处理更长更复杂的研究任务 , Anthropic 预计性能提升将足以抵消这些复杂性的增加 。


总结


在构建 AI 智能体时 , 最后一公里往往占据了整个旅程的大部分 。 从开发者机器上能运行的代码库 , 到变成可靠的生产系统 , 需要大量的工程投入 。 智能体系统中错误的复合特性意味着 , 传统软件中的小问题可能会彻底扰乱智能体的运行 。 某一步骤失败 , 可能导致智能体探索完全不同的路径 , 从而产生不可预测的结果 。 基于本文所述的各种原因 , 原型与生产环境之间的差距通常比预期更大 。


尽管面临这些挑战 , 多智能体系统在开放式研究任务中已经展现出巨大价值 。 只要经过细致的工程设计、全面的测试、注重细节的提示词和工具设计、健全的运维实践 , 以及研究、产品与工程团队之间紧密合作且对当前智能体能力有深刻理解 , 多智能体研究系统就能在大规模场景中稳定运行 。 我们已经看到这些系统正在改变人们解决复杂问题的方式 。



    推荐阅读