Claude:我们如何构建多智能体研究系统

转载

很良心,Claude把迭代、评估的过程和思考都给出来了。显然是想教育市场的。

Claude 的 Research 功能通过多个 Claude agents 协作,能够更高效地探索复杂主题。本文将分享我们在构建该系统过程中遇到的工程挑战与经验教训。

Claude 的 Research 现在具备了跨 Web、Google Workspace 及其他集成工具执行复杂任务的能力。

从原型到生产系统的演进过程中,我们在系统架构、工具设计与 prompt engineering 上学到了很多关键经验。一个 multi-agent system(多智能体系统)由多个 LLM 驱动的智能体构成,它们以工具循环(tool use loop)为基础协同工作。我们的 Research 系统中,有一个主 agent 负责制定研究计划,并调用工具来创建并行的 subagents 同时进行信息搜索。多智能体系统带来了新的挑战,例如智能体之间的协调、评估方式以及系统可靠性等问题。


多智能体系统的优势

研究工作往往是开放式问题,很难预设固定路径。你无法硬编码一条探索复杂问题的流程,因为研究的过程具有动态性与路径依赖性。人类进行研究时,会不断根据新发现调整策略,追踪新的线索。

这种不可预测性使得 AI agents 非常适合研究任务。研究需要灵活地转向或挖掘新兴相关内容,模型必须具备在多轮交互中自主决策的能力。一种线性的 one-shot pipeline(一次性流水线)并不适合此类任务。

搜索的本质是压缩------从海量信息中提取出关键洞见。Subagents 通过独立上下文窗口并行运行,能够探索问题的不同方面,然后将最关键的 tokens 压缩给主 agent。这种结构也实现了关注点分离(separation of concerns):每个 subagent 使用不同工具、prompt、探索路径,从而避免路径依赖并支持深入、独立的研究。

一旦模型智能达到一定门槛,多智能体系统将成为扩展性能的关键方式。比如人类个体智力在过去十万年变化不大,但人类社会通过集体智能与协调机制,在信息时代实现了指数级提升。同样,即使是通用智能体也面临单个 agent 的局限,而 agent 组则可以做得更多。

我们的内部评估显示,对于需要同时展开多个独立方向的 breadth-first 查询,多智能体系统表现尤为优秀。我们发现,Claude Opus 4 担任主 agent、Claude Sonnet 4 作为 subagents 的系统,比单个 Claude Opus 4 的性能提升了 90.2%。例如在"找出 S&P 500 信息技术公司所有董事会成员"这一任务中,多智能体系统能够通过任务分解并行处理找到答案,而单智能体系统在缓慢的线性搜索中失败了。

这些系统的工作原理可以归结为"让模型消耗足够多的 token 去解决问题"。我们在 BrowseComp(用于评估 agent 浏览能力)中的分析表明,任务 token 的使用量单独就可以解释 80% 的性能差异;另外两个关键因素是工具调用次数与所用模型种类。这进一步验证了我们的架构设计------通过并行 agent 分担 token 使用,提升整体处理能力。Claude 最新版本的模型在 token 使用效率上极高,例如使用 Claude Sonnet 4 比在 Claude Sonnet 3.7 上增加两倍 token 预算的性能提升还大。多智能体系统通过横向扩展 token 使用,有效应对了超出单个 agent 能力的任务。

不过也有代价:这类架构在实践中 token 消耗极大。数据表明,多智能体系统的 token 消耗大约是普通 chat 的 15 倍,普通 agent 的 4 倍。因此,多智能体架构需用于任务价值足够高、能够承担其 token 成本的场景。此外,那些需要所有 agent 共享上下文或 agent 之间依赖紧密的任务,当前并不适合多智能体模式。例如,大多数编程任务的并行空间有限,LLM agents 也尚不擅长实时协调与分工。我们发现最适合多智能体的任务是:高度并行、信息超出单个上下文窗口、需与多个复杂工具交互的场景。


Research 系统架构概览

我们的 Research 系统采用 orchestrator-worker 架构:一个主 agent 负责整体流程,派遣多个并行 subagents 执行专业子任务。

当用户提交查询时,主 agent 分析问题、制定策略,并生成 subagents 同时处理不同方面的搜索任务。如上图所示,subagents 利用搜索工具迭代获取信息(此例为 2025 年的 AI agent 公司),返回公司列表后由主 agent 汇总出最终答案。

传统 RAG(Retrieval Augmented Generation)方式使用的是静态检索:即返回与输入查询最相似的一批 chunks,然后基于这些 chunks 作答。而我们的架构采用多步骤动态搜索机制:动态定位相关信息,根据中间发现调整搜索策略,并最终生成高质量回答。

该流程图展示了我们的多智能体 Research 系统的完整工作流程。

当用户提交查询后,系统会创建一个 LeadResearcher agent ,进入一个迭代式的研究流程。LeadResearcher 首先会思考研究方法,并将其计划保存到 Memory 中以保留上下文,因为一旦上下文窗口超过 200,000 个 token,将会被截断,因此保留研究计划非常关键。

随后,LeadResearcher 会创建若干个具有明确研究任务的 Subagents (图中展示了两个,但实际数量不限)。每个 Subagent 会独立执行网页搜索,利用 interleaved thinking(交错思维)对工具结果进行评估,并将发现反馈给 LeadResearcher。

LeadResearcher 对这些结果进行综合判断,并决定是否需要进一步研究------如果需要,可以创建更多 subagents 或调整研究策略。

一旦信息收集充分,系统将退出研究循环,并将所有发现传递给 CitationAgent,由其处理文档和研究报告,定位具体的引用位置,以确保所有观点都能准确溯源。

最终,系统将带有完整引用的研究结果返回给用户。

Prompt 工程与 agent 评估策略

多智能体系统相比单智能体系统,面临更高的协调复杂度。早期版本的问题包括:对简单问题生成了 50 个 subagents、无休止地在 web 上搜索不存在的内容、agent 之间频繁打扰彼此等。由于每个 agent 的行为主要受 prompt 控制,因此 prompt engineering 是我们最主要的调优手段。

我们学到的 prompt 工程经验包括:

  1. 像 agent 一样思考:我们在 Console 上模拟 prompt 和工具调用的真实交互,观察 agent 的行为路径。这种方法立刻揭示了很多失败模式:比如 agent 在已有充分结果的情况下继续搜索、构造过长无效的搜索语句、选择了错误工具等。
  2. 教会 orchestrator 如何分工:主 agent 要学会拆分任务并为 subagent 分配明确目标、输出格式、可用工具、搜索范围。早期简单指令如"研究芯片短缺"常常引发 subagent 重复劳动或误解任务边界。
  3. 根据任务复杂度调节 effort:通过在 prompt 中嵌入 effort scaling 规则,帮助主 agent 做出资源分配决策。比如:简单查询仅需 1 个 agent + 少量工具调用;对比查询用 2-4 个 agent;复杂研究任务可用 10+ agent 明确分工。
  4. 工具选择和设计至关重要:agent 工具接口的易用性与准确性和人类界面一样重要。坏的工具描述会导致 agent 使用错误工具。例如:在只有 Slack 上存在上下文的任务中,如果 agent 去搜索 web,注定失败。我们通过 prompt 加入判断规则,如:先评估所有工具、匹配工具与用户意图等。
  5. 让 agent 自我改进:Claude 4 模型在 prompt 优化上表现出色。我们甚至创建了 tool-testing agent,自动诊断 MCP 工具的问题并优化工具描述,提升后续 agent 成功率。
  6. 先广再深的搜索策略:早期 agent 倾向于使用过长、过具体的搜索查询,结果覆盖面差。我们鼓励先用宽泛短语,评估后再逐步聚焦。
  7. 引导 agent 的思维过程:我们使用 Claude 的 extended thinking 模式作为可控的草稿板,让 agent 显式输出自己的思考与规划过程,提升决策透明度和执行力。
  8. 并行工具调用提升速度与覆盖率:主 agent 可并发创建 3-5 个 subagent,而每个 subagent 又能同时调用 3+ 工具。该策略将复杂查询的耗时降低达 90%。

这些提示中没有硬性规则,而是遵循高效人类研究者的启发式策略,并在 prompt 中加以体现,例如:任务分解、动态调整搜索路径、辨别高质量来源、理解何时需要广度 vs 深度等。


多智能体系统的有效评估方式

构建可靠 AI 应用,评估至关重要,多智能体系统也不例外。但它们评估难度更高。传统评估假设 AI 每次执行路径相同:输入 X → 路径 Y → 输出 Z。但多智能体系统不是这样工作的。即使输入相同,agent 的行为路径也可能完全不同:可能一个搜索 3 个来源,另一个搜索 10 个;或者使用不同工具得出相同结果。

因此,我们通常不能仅通过"是否按照预设步骤执行"来判断对错,而是需要更灵活的评估方式:即 agent 是否达成了正确结果,且过程是否合理。

快速启动评估:从小规模样本开始

在早期 agent 开发阶段,一个 prompt 的小修改可能带来从 30% → 80% 的成功率跃升。因此,用少量示例也能看出变化趋势。我们起步使用了约 20 个查询样例,覆盖真实使用场景。与其等到有几百个测试用例再开始,不如立即用几个样例测试迭代。

使用 LLM 作为评估者(LLM-as-judge)

研究任务输出是自由文本,通常没有唯一标准答案,因此难以程序化评估。但 LLM 非常适合充当评估者。我们使用一个 LLM 评委,根据以下评分标准打分:

  • factual accuracy(事实准确性):内容是否与来源一致?
  • citation accuracy(引用准确性):引用是否对应正确主张?
  • completeness(完整性):是否覆盖了所有被请求的方面?
  • source quality(来源质量):是否优先使用权威来源而非低质量二手内容?
  • tool efficiency(工具使用效率):是否使用了正确的工具,调用次数合理?

我们曾尝试用多个 LLM 分别打不同维度,但发现"一个 prompt 输出 0.0-1.0 分数 + pass/fail 结果"更加稳定,也更接近人工判断。这种方法在 test case 有标准答案的情况下效果尤其好,比如"列出研发投入最多的三家医药公司"。

这种评估方式支持我们规模化地评估数百个结果。

人工评估发现自动方法无法捕捉的问题

人类测试者能发现一些自动化评估遗漏的问题,例如:

  • 不常见查询中的幻觉回答
  • 系统崩溃
  • 来源选择偏差:如过度偏好 SEO 优化内容而忽视权威论文

我们发现 early agents 常常选择排名高但质量低的网页,而跳过了如学术 PDF、专家博客等高价值来源。通过 prompt 中增加"来源质量启发式",我们解决了这个问题。

哪怕在有自动化评估的世界里,人工测试仍不可或缺。


多智能体的涌现行为与 Prompt 策略设计

多智能体系统中经常出现"涌现行为"------即小变动引发不可预测的大变化。例如,修改主 agent 的逻辑会导致 subagents 行为完全改变。

因此,最好的 prompt 并非"严格规则",而是"协作框架":

  • 如何分工
  • 如何处理问题
  • 每个任务该投入多少 effort(token/calls/time)

成功的关键是:

  • 精心设计的 prompt 与工具接口
  • 高质量启发式
  • 强 observability(可观测性)
  • 快速迭代反馈回路

我们在 Cookbook 中开源了部分实际使用的 prompt,可供参考。


生产稳定性与工程挑战

传统软件出错常常是"功能失效",但 agent 系统一旦出错,可能会改变整个任务路径,导致结果完全不同。这种错误是"复合型"的,非常难调试与恢复。

多智能体系统中常见的生产挑战

1. Agent 是有状态的,错误会累积传播

Agent 会跨多个工具调用保持状态运行。一旦某个环节出错,不能简单地"重启从头再来"------这会浪费大量 token,并让用户沮丧。

我们采用了以下策略:

  • 允许系统"从中间恢复"
  • 明确告知 agent 某个工具挂了,让它灵活调整
  • 与此并行:构建了可靠的断点机制与 retry 机制

AI 的适应性 + 系统的确定性,共同实现了鲁棒性。

2. 调试方式必须与传统不同

由于 agent 是非确定性的(即便 prompt 相同,每次运行路径可能不同),调试非常难。

举例:用户说"agent 没找到明显信息",但我们不知道:

  • 是搜索语句写得烂?
  • 是网页工具失效了?
  • 是选择了劣质来源?

解决办法:

  • 引入完整的 production tracing(包括 token 使用、tool 使用、subagent 创建等结构化日志)
  • 在不监控内容的前提下,监控行为结构 → 实现隐私保护下的高级观测

3. 部署过程必须谨慎协调

Agent 系统像一张由 prompt、工具、执行逻辑组成的高状态网络。每次部署新版本时,系统中有些 agent 正在运行,不能统一强制升级。

我们使用 rainbow deployments:

  • 渐进式流量迁移:新旧版本并行
  • 避免中断已运行的 agent

4. 同步执行是瓶颈

目前的架构是:

  • 主 agent 同步等待一批 subagent 返回结果
  • Subagent 之间不协调
  • 整个系统可能卡在某一个 subagent 上

虽然同步逻辑简单,但会成为性能瓶颈。理想情况下,我们希望异步执行:

  • 主 agent 和 subagent 同时工作
  • agent 能随时 spawn 新 agent
  • 高并发下保持状态一致性、协调性、错误传播控制

我们预计未来模型能力增强后,这类异步架构将值得投入。


结语:从原型到生产,是"最后一公里"也是最难一程

构建 AI agent 系统,原型阶段只是开始。要做到真正的"生产可用",工程复杂度会迅速飙升:

  • 普通软件一个错误可能导致 5% 误差
  • Agent 系统中,一个错误会让整个探索路径跑偏,最后输出完全错误答案

这就是为什么从 demo 到 product 往往是一道鸿沟。

尽管挑战重重,我们依然发现多智能体系统在开放式研究任务中极具价值。用户表示 Claude 帮他们:

  • 发现了原本没考虑到的商业机会
  • 导航复杂的医疗保险选项
  • 解决难缠的技术问题
  • 节省数日研究时间,挖掘到了自己独立难以发现的深层信息联系

这些系统的可靠运行,离不开:

  • 严谨的 prompt 与工具设计
  • 稳健的测试机制与可观测性
  • 工程、产品与研究团队的密切协作

我们已经看到它们正在改变人们解决复杂问题的方式。


用户使用场景统计(Clio embedding plot)

目前 Claude Research 功能的主流使用场景包括:

  • 构建专业领域的软件系统(10%)
  • 开发优化技术/专业内容(8%)
  • 业务增长与营收战略制定(8%)
  • 学术研究与教育材料支持(7%)
  • 信息验证(关于人物、地点、组织)(5%)

附录:一些多智能体系统的杂项技巧

1. 用"最终状态评估"而非"过程步骤评估"

在涉及多轮对话、状态变更的场景中,传统"逐步验证"的评估方式无效。我们采用:

  • 聚焦最终输出是否符合预期
  • 为复杂流程设置"checkpoints"判断是否在关键步骤完成了状态变更
  • 允许多种路径达到同一个目标

2. 管理长对话(long-horizon conversation)

Agent 可能跨数百轮对话进行任务。需管理上下文爆炸问题:

  • 用外部 memory 存储阶段性总结
  • 超 context 限制后,用新的 agent 继续任务,并通过 memory 实现无缝衔接

这种"分布式上下文管理"确保长任务连贯性。

3. 用 artifact(产物)系统减少"电话游戏"效应

Subagent 的结果无需都通过主 agent 转发。例如:

  • Subagent 直接调用工具把结果写入外部存储(如文件系统)
  • 返回 lightweight 的 reference 给主 agent
  • 特别适用于代码、报告、图表等结构化产出物

这提升了 fidelity 与性能。

相关推荐
独隅8 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
独隅12 小时前
Claude 高效使用指南与效果展示
claude·claude code
ZzT16 小时前
Claude Duet 安全设计拆解:替你回邮件、付账单的 agent,碰不到你的密码
ai编程·claude
小七-七牛开发者17 小时前
当 Agent 接手更多工作,我们还能把好关吗?
ai·openai·agent·claude
独隅17 小时前
Claude 高效使用指南深度评测
java·开发语言·claude·claude code
yjm00217 小时前
如何用 Claude Opus 5.5 做一支音乐 MV?代码逐帧渲染完整教程(2026)
ai编程·claude
独隅18 小时前
Claude 新手入门与高效调用指南
claude
独隅19 小时前
Claude 高效应用实战指南
android·java·开发语言·claude·claude code
技术小甜甜21 小时前
【Copilot】能选 Claude 和 GPT-6 了,Excel 分析该交给谁
gpt·excel·copilot·claude·microsoft365·gpt-6