<p align="right"><font color="#3f3f3f">2025年06月22日</font></p>
Claude现在具备了[研究能力](https://www.anthropic.com/news/research),可以在网络、Google Workspace和任何集成系统中搜索,以完成复杂任务。
从原型到生产的多智能体系统开发过程,教给了我们关于系统架构、工具设计和提示工程的重要经验。多智能体系统由多个智能体(在循环中自主使用工具的LLM)协同工作。我们的研究功能涉及一个智能体,它根据用户查询规划研究过程,然后使用工具创建并行智能体,同时搜索信息。具有多个智能体的系统在智能体协调、评估和可靠性方面带来了新的挑战。
这篇文章分解了对我们有效的原则——我们希望当你构建自己的多智能体系统时,会发现它们很有用。
> **注解1:多智能体系统的定义和架构**
>
> 这里明确了多智能体系统的核心概念:多个LLM智能体在循环中自主使用工具并协同工作。关键在于"自主"和"协同"两个特征,这与传统的单一AI系统有本质区别。
## 多智能体系统的优势
研究工作涉及开放性问题,很难提前预测所需的步骤。你无法为探索复杂主题硬编码固定路径,因为这个过程本质上是动态的和路径依赖的。当人们进行研究时,他们倾向于根据发现持续更新方法,跟踪在调查过程中出现的线索。
这种不可预测性使AI智能体特别适合研究任务。研究需要灵活性,以便在调查展开时转向或探索切线连接。模型必须自主运行许多轮,根据中间发现做出关于追求哪些方向的决定。线性的一次性管道无法处理这些任务。
> **注解2:为什么需要多智能体系统**
>
> 关键洞察:研究任务的开放性和路径依赖性。这与我们讨论的"启发式方法"相关——因为无法预先定义所有步骤,所以需要基于经验的指导原则来帮助智能体在动态环境中做决策。
搜索的本质是压缩:从庞大的语料库中提炼洞察。子智能体通过在各自的上下文窗口中并行操作来促进压缩,同时探索问题的不同方面,然后在为主要研究智能体压缩最重要的标记之前。每个子智能体还提供关注点分离——不同的工具、提示和探索轨迹——这减少了路径依赖性,并支持彻底、独立的调查。
> **注解3:多智能体系统的核心优势机制**
>
> "压缩"是一个关键概念:通过并行处理和独立上下文窗口,多智能体系统能够从大量信息中提炼出关键洞察。这类似于人类团队工作的方式——每个成员专注不同方面,最后汇总最重要的发现。
一旦智能达到某个阈值,多智能体系统就成为扩展性能的重要方式。例如,虽然个体人类在过去10万年中变得更加智能,但人类社会在信息时代变得指数级更有能力,这是因为我们的集体智能和协调能力。即使是通用智能智能体在作为个体操作时也面临限制;智能体群体可以完成更多工作。
我们的内部评估显示,多智能体研究系统在涉及同时追求多个独立方向的广度优先查询方面表现特别出色。我们发现,以Claude Opus 4为主智能体、Claude Sonnet 4为子智能体的多智能体系统在我们的内部研究评估中比单智能体Claude Opus 4性能提升了90.2%。例如,当被要求识别信息技术S&P 500公司的所有董事会成员时,多智能体系统通过将其分解为子智能体任务找到了正确答案,而单智能体系统在缓慢的顺序搜索中未能找到答案。
> **注解4:性能提升的量化数据**
>
> 90.2%的性能提升是一个显著的数据。这个提升主要来自于并行处理能力和任务分解能力。注意这里强调的是"广度优先查询"——这与我们讨论的启发式方法中的"先宽后窄"策略相吻合。
多智能体系统之所以有效,主要是因为它们有助于花费足够的标记来解决问题。在我们的分析中,三个因素解释了[BrowseComp](https://openai.com/index/browsecomp/)评估中95%的性能差异(该评估测试浏览智能体定位难以找到信息的能力)。我们发现,仅标记使用量就解释了80%的差异,工具调用次数和模型选择是另外两个解释因素。这一发现验证了我们的架构,即在具有独立上下文窗口的智能体间分配工作,以增加并行推理的容量。最新的Claude模型在标记使用上充当大型效率乘数,升级到Claude Sonnet 4比在Claude Sonnet 3.7上加倍标记预算带来更大的性能提升。多智能体架构有效地扩展了超出单个智能体限制的任务的标记使用量。
> **注解5:性能提升的根本原因**
>
> 这是一个重要发现:标记使用量解释了80%的性能差异。这意味着多智能体系统的本质是通过分布式处理扩展标记使用量。这也解释了为什么多智能体系统消耗更多资源但性能更好。
有一个缺点:在实践中,这些架构会快速消耗标记。在我们的数据中,智能体通常比聊天交互使用约4倍的标记,多智能体系统比聊天使用约15倍的标记。为了经济可行性,多智能体系统需要任务价值足够高,以支付增加的性能成本。此外,一些需要所有智能体共享相同上下文或涉及智能体间许多依赖关系的领域,目前不适合多智能体系统。例如,大多数编码任务涉及的真正可并行化任务比研究少,LLM智能体还不擅长实时协调和委派给其他智能体。我们发现多智能体系统在涉及大量并行化、超出单一上下文窗口的信息以及与众多复杂工具接口的有价值任务中表现出色。
> **注解6:多智能体系统的适用边界**
>
> 这段内容明确了多智能体系统的适用场景:
>
> - 适合:高价值任务、大量并行化、信息量大、复杂工具接口
> - 不适合:共享上下文需求、高依赖关系、低价值任务
>
> 成本是15倍标记消耗,这需要在性能提升和成本之间做权衡。
## 研究系统的架构概述
我们的研究系统使用具有编排者-工作者模式的多智能体架构,其中主智能体协调过程,同时委派给并行操作的专门子智能体。
当用户提交查询时,主智能体分析它,制定策略,并生成子智能体来同时探索不同方面。如上图所示,子智能体充当智能过滤器,通过迭代使用搜索工具收集信息,在这种情况下关于2025年AI智能体公司,然后将公司列表返回给主智能体,以便它可以编制最终答案。
> **注解7:架构模式的选择**
>
> "编排者-工作者模式"是一个经典的分布式系统架构模式。这里的关键是主智能体负责协调和决策,子智能体负责执行具体任务。这种模式确保了系统的协调性和效率。
使用检索增强生成(RAG)的传统方法使用静态检索。也就是说,它们获取与输入查询最相似的一些块,并使用这些块生成响应。相比之下,我们的架构使用多步搜索,动态查找相关信息,适应新发现,并分析结果以制定高质量答案。
[交错思考](https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking#interleaved-thinking),并将发现返回给主研究员。主研究员综合这些结果并决定是否需要更多研究——如果需要,它可以创建额外的子智能体或改进其策略。一旦收集到足够的信息,系统退出研究循环并将所有发现传递给引用智能体,该智能体处理文档和研究报告以识别引用的具体位置。这确保所有声明都正确归属于其来源。然后将包含引用的最终研究结果返回给用户。
> **注解8:动态vs静态检索的区别**
>
> 这里对比了传统RAG(静态检索)和多智能体系统(动态检索)的区别:
>
> - 静态:预先获取相似内容,然后生成答案
> - 动态:根据发现调整搜索策略,迭代优化结果
>
> 这体现了我们讨论的"信息验证方法论"的技术实现。
## 研究智能体的提示工程和评估
多智能体系统与单智能体系统有关键区别,包括协调复杂性的快速增长。早期智能体犯了一些错误,比如为简单查询生成50个子智能体,无休止地搜索不存在的来源,以及用过度更新分散彼此的注意力。由于每个智能体都由提示指导,提示工程是我们改进这些行为的主要杠杆。以下是我们学到的一些智能体提示原则:
> **注解9:协调复杂性的挑战**
>
> 多智能体系统的复杂性呈指数级增长。这里提到的早期错误(生成50个子智能体、无休止搜索、过度更新)都是协调失败的典型例子。这说明了为什么需要精心设计的启发式原则来指导智能体行为。
- **像你的智能体一样思考。** 要迭代提示,你必须理解它们的效果。为了帮助我们做到这一点,我们使用我们的[控制台](https://console.anthropic.com/)构建了模拟,使用来自我们系统的确切提示和工具,然后逐步观察智能体工作。这立即揭示了失败模式:智能体在已经有足够结果时继续,使用过于冗长的搜索查询,或选择错误的工具。有效的提示依赖于开发智能体的准确心理模型,这可以使最有影响力的变化变得明显。
> **注解10:智能体心理模型的重要性**
>
> 这里强调了理解智能体工作方式的重要性。"像你的智能体一样思考"意味着开发者需要建立智能体的心理模型,这与我们讨论的"理解领域专家方法论"有相似之处——都需要深入理解执行主体的认知模式。
- **教编排者如何委派。** 在我们的系统中,主智能体将查询分解为子任务并向子智能体描述它们。每个子智能体需要一个目标、输出格式、工具和来源使用指导,以及明确的任务边界。没有详细的任务描述,智能体会重复工作、留下空白或未能找到必要信息。我们开始允许主智能体给出简单、简短的指令,如"研究半导体短缺",但发现这些指令通常足够模糊,子智能体会误解任务或执行与其他智能体完全相同的搜索。例如,一个子智能体探索2021年汽车芯片危机,而另外2个重复工作调查当前2025年供应链,没有有效的分工。
> **注解11:任务委派的精确性要求**
>
> 这里体现了启发式方法中"工作量分配方法论"的重要性。模糊的指令导致重复工作和低效率,这说明了为什么需要明确的任务边界和详细的指导原则。
- **根据查询复杂性调整工作量。** 智能体难以判断不同任务的适当工作量,所以我们在提示中嵌入了调整规则。简单的事实查找只需要1个智能体进行3-10次工具调用,直接比较可能需要2-4个子智能体,每个进行10-15次调用,复杂研究可能使用超过10个子智能体,责任明确分工。这些明确的指导原则帮助主智能体有效分配资源,防止在简单查询上过度投资,这是我们早期版本中的常见失败模式。
> **注解12:启发式的工作量分配策略**
>
> 这是启发式方法的一个典型例子:将人类专家的经验转化为具体的指导规则。简单任务1个智能体3-10次调用,复杂任务超过10个智能体——这些都是基于实践经验总结的启发式原则。
- **工具设计和选择至关重要。** 智能体-工具接口与人机接口一样重要。使用正确的工具是高效的——通常,这是严格必要的。例如,在网络上搜索仅存在于Slack中的上下文的智能体从一开始就注定失败。使用为模型提供外部工具访问权限的[MCP服务器](https://modelcontextprotocol.io/introduction),这个问题变得复杂,因为智能体遇到质量差异很大的未见工具描述。我们给智能体明确的启发式方法:例如,首先检查所有可用工具,将工具使用与用户意图匹配,在网络上搜索广泛的外部探索,或优先使用专门工具而非通用工具。糟糕的工具描述可能会让智能体走上完全错误的道路,所以每个工具都需要独特的目的和清晰的描述。
> **注解13:工具选择的启发式方法**
>
> 这里展示了我们讨论的"工具选择启发式"的具体实现:
>
> - 首先检查所有可用工具
> - 匹配工具使用与用户意图
> - 优先专用工具而非通用工具
>
> 这些都是从人类专家工作方式中抽象出来的方法论。
- **让智能体改进自己。** 我们发现Claude 4模型可以成为优秀的提示工程师。当给定提示和失败模式时,它们能够诊断智能体失败的原因并建议改进。我们甚至创建了一个工具测试智能体——当给定有缺陷的MCP工具时,它尝试使用该工具,然后重写工具描述以避免失败。通过数十次测试该工具,这个智能体发现了关键细节和错误。这个改进工具人体工程学的过程导致未来使用新描述的智能体任务完成时间减少了40%,因为它们能够避免大多数错误。
> **注解14:自我改进能力的实现**
>
> 这正是我们讨论的"让Claude 4自行优化启发式Prompt"的具体例证。工具描述优化的40%性能提升证明了这种自我改进机制的有效性。这为更广泛的启发式规则自优化提供了概念验证。
### **补充:AI反馈自循环优化的深度分析**
**扩展自优化的可能性方向:**
基于Claude 4在工具描述优化上的成功,我们可以设想更广泛的自优化应用:
**1. 启发式Prompt的自优化循环设计**
```
自优化流程设计:
第一阶段:性能基线建立
- 收集多智能体系统的执行数据
- 记录失败案例和成功模式
- 建立性能评估指标体系
第二阶段:模式识别与分析
- 让Claude 4分析失败案例的共同特征
- 识别当前启发式规则的局限性
- 发现高性能执行中的隐含模式
第三阶段:规则生成与验证
- 基于分析结果生成改进的启发式规则
- A/B测试验证新规则的有效性
- 逐步部署经过验证的改进
第四阶段:持续迭代优化
- 建立反馈循环,持续收集新的执行数据
- 定期重新评估和调整启发式规则
- 适应新的任务类型和环境变化
```
**2. 具体的技术实现方案**
```python
# 伪代码:启发式规则自优化系统
class HeuristicOptimizer:
def analyze_failures(self, failure_cases, current_heuristics):
# Claude 4分析失败模式
analysis = claude4.analyze(
prompt="分析这些失败案例,识别当前启发式规则的问题",
data=failure_cases,
current_rules=current_heuristics
)
return analysis
def generate_improvements(self, analysis, domain_knowledge):
# 生成改进的启发式规则
improved_rules = claude4.generate(
prompt="基于分析结果,生成改进的启发式规则",
analysis=analysis,
domain_context=domain_knowledge
)
return improved_rules
def validate_improvements(self, new_rules, test_cases):
# A/B测试验证改进效果
results = run_ab_test(
control_group=current_heuristics,
test_group=new_rules,
test_cases=test_cases
)
return results
```
**面临的关键挑战:**
**1. 评估复杂性挑战**
- **工具描述优化**:有明确的成功/失败指标(工具能否正常工作)
- **启发式规则优化**:需要多维度评估(质量、效率、适应性、稳定性)
- **解决方案**:建立分层评估体系,结合定量指标和定性分析
**2. 过度优化风险**
```
风险类型:
- 对特定测试案例的过度拟合
- 丧失对新任务类型的泛化能力
- 在优化某一指标时损害其他指标
缓解策略:
- 使用多样化的评估数据集
- 设置性能边界和约束条件
- 保持一定比例的保守规则作为安全网
```
**3. 稳定性保证挑战**
```
问题:
- 自动优化可能引入不稳定因素
- 连续变化可能导致系统行为不可预测
- 优化周期可能与生产需求冲突
解决方案:
- 渐进式部署和回滚机制
- 严格的变更验证流程
- 人工审核关键改动
- 建立性能监控和预警系统
```
**4. 领域适应性挑战**
```
挑战:
- 不同领域的启发式规则差异很大
- 通用优化器可能无法理解领域特定的细节
- 需要领域专家知识的持续输入
解决方案:
- 为每个领域训练专门的优化模块
- 建立领域专家反馈机制
- 保持人机协作的优化流程
```
**实际应用的渐进路径:**
**阶段1:半自动优化(当前可行)**
- Claude 4提供优化建议,人工审核和实施
- 专注于明确的改进方向(效率、准确性)
- 建立基础的评估和监控体系
**阶段2:监督自动优化(中期目标)**
- 在受控环境中进行自动优化
- 设置严格的性能边界和安全机制
- 保持人工监督和干预能力
**阶段3:自主优化系统(长期愿景)**
- 完全自主的优化循环
- 多领域适应能力
- 高级的安全和质量保证机制
这种自优化能力如果成功实现,将代表AI系统向真正的自进化能力迈进的重要一步。
- **从宽泛开始,然后缩小范围。** 搜索策略应该反映专家人类研究:在深入具体内容之前探索景观。智能体通常默认使用过长、特定的查询,返回很少结果。我们通过提示智能体从简短、广泛的查询开始,评估可用内容,然后逐步缩小焦点来抵消这种倾向。
> **注解15:搜索策略的启发式方法**
>
> "先宽后窄"是典型的人类专家研究方法论。这种启发式方法避免了过早聚焦导致的信息遗漏,体现了从人类专家工作方式中提取的认知模式。
- **指导思考过程。** [扩展思考模式](https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking),引导Claude在可见的思考过程中输出额外标记,可以作为可控制的草稿本。主智能体使用思考来规划其方法,评估哪些工具适合任务,确定查询复杂性和子智能体数量,并定义每个子智能体的角色。我们的测试显示,扩展思考改进了指令遵循、推理和效率。子智能体也进行规划,然后在工具结果后使用[交错思考](https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking#interleaved-thinking)来评估质量、识别差距并改进下一个查询。这使子智能体在适应任何任务方面更加有效。
> **注解16:交错思考 = 信息验证方法论的技术实现**
>
> 这正是我们讨论的核心观点:Interleaved Thinking是启发式Prompt中"信息验证方法论"的具体技术实现。子智能体通过思考来评估质量、识别差距、改进查询,这完全对应了人类专家的信息验证工作流程。
- **并行工具调用改变速度和性能。** 复杂的研究任务自然涉及探索许多来源。我们早期的智能体执行顺序搜索,这非常缓慢。为了速度,我们引入了两种并行化:(1)主智能体并行而非串行地启动3-5个子智能体;(2)子智能体并行使用3+工具。这些变化将复杂查询的研究时间减少了多达90%,允许研究在几分钟而不是几小时内完成更多工作,同时覆盖比其他系统更多的信息。
> **注解17:并行化的效率提升**
>
> 90%的时间减少是一个巨大的效率提升。这种并行化策略(主智能体层面的并行 + 子智能体层面的并行)体现了"效率优化方法论"的技术实现。
我们的提示策略专注于灌输良好的启发式方法而不是僵化的规则。我们研究了熟练人类如何处理研究任务,并在我们的提示中编码这些策略——如将困难问题分解为较小任务、仔细评估来源质量、根据新信息调整搜索方法,以及认识何时专注于深度(详细调查一个主题)与广度(并行探索许多主题)的策略。我们还通过设置明确的防护栏来主动缓解意外副作用,防止智能体失控。最后,我们专注于具有可观察性和测试用例的快速迭代循环。
> **注解18:启发式方法 vs 严格规则的设计哲学**
>
> 这段总结了我们讨论的核心观点:启发式方法来源于对人类专家工作方式的研究和抽象。关键是"灌输良好的启发式方法而不是僵化的规则"——这正是为什么启发式方法比严格规则更适合处理开放性、不可预测的任务。
### **补充:其他领域启发式Prompt的设计例子**
基于我们讨论的"从领域专家方法论到启发式Prompt"的设计原则,以下是一些具体领域的示例:
**电商领域Multi-Agent的启发式Prompt设计:**
```
# 电商专家方法论分析
1. 市场分析师的工作方式:
- 数据驱动决策:优先查看历史销售数据、趋势分析
- 季节性考虑:评估时间因素对需求的影响
- 竞争对手分析:横向比较产品和定价策略
2. 转化为启发式Prompt:
- 数据验证原则:任何商业建议都必须有数据支撑
- 时间敏感性:考虑季节、促销节点、市场周期
- 多维度评估:从用户体验、成本效益、竞争优势多角度分析
- ROI导向:每个决策都要评估投资回报率
# 具体Prompt示例
"在分析电商策略时,你应该:
- 首先收集至少3个月的历史数据作为基线
- 识别季节性模式和异常值
- 从用户视角评估体验影响
- 计算具体的成本效益比
- 分析2-3个主要竞争对手的策略
- 提供可量化的ROI预期"
```
**医疗诊断Multi-Agent的启发式Prompt设计:**
```
# 医生专家方法论分析
1. 临床医生的思维模式:
- 鉴别诊断:系统性排除可能疾病
- 证据等级:区分症状、体征、检查结果的权重
- 风险评估:考虑假阳性/假阴性的后果
2. 转化为启发式Prompt:
- 系统性排查:按器官系统或病因分类逐步分析
- 证据分层:区分高可信度和低可信度信息
- 安全优先:对于高风险情况给予更多关注
- 多源验证:交叉验证不同类型的医学证据
```
**法律研究Multi-Agent的启发式Prompt设计:**
```
# 律师专家方法论分析
1. 法律专家的工作方式:
- 法条检索:从一般到特殊的法律条文查找
- 案例分析:寻找相似案例和判例法
- 时效性验证:确保法律条文的现行有效性
2. 转化为启发式Prompt:
- 层级检索:宪法->法律->法规->司法解释的顺序
- 案例优先:优先查找最高法院和本地法院判例
- 时间敏感:验证法条的生效时间和修订历史
- 权威性验证:优先使用官方发布的法律文本
```
## 智能体的有效评估
良好的评估对于构建可靠的AI应用程序至关重要,智能体也不例外。然而,评估多智能体系统提出了独特的挑战。传统评估通常假设AI每次都遵循相同的步骤:给定输入X,系统应该遵循路径Y产生输出Z。但多智能体系统不是这样工作的。即使起点相同,智能体也可能采取完全不同的有效路径来达到目标。一个智能体可能搜索三个来源,而另一个搜索十个,或者它们可能使用不同的工具找到相同的答案。因为我们并不总是知道正确的步骤是什么,我们通常无法仅仅检查智能体是否遵循了我们预先规定的"正确"步骤。相反,我们需要灵活的评估方法,判断智能体是否在遵循合理过程的同时实现了正确的结果。
> **注解19:多智能体评估的复杂性**
>
> 这里指出了多智能体系统评估的根本挑战:路径的多样性和不可预测性。这与我们讨论的"涌现行为"相关——系统的行为无法完全预测,因此评估方法必须适应这种特性。
**立即开始用小样本评估。** 在早期智能体开发中,变化往往产生巨大影响,因为有大量低hanging果实。提示调整可能将成功率从30%提升到80%。有了这样大的效应大小,你可以用几个测试用例就发现变化。我们从约20个代表真实使用模式的查询集开始。测试这些查询通常让我们清楚地看到变化的影响。我们经常听到AI开发团队延迟创建评估,因为他们认为只有具有数百个测试用例的大型评估才有用。然而,最好立即开始小规模测试几个例子,而不是延迟到能够构建更彻底的评估。
**LLM作为评判者评估在做好时可以扩展。** 研究输出很难以程序方式评估,因为它们是自由形式文本,很少有单一正确答案。LLM天然适合评分输出。我们使用LLM评判者根据评分标准中的标准评估每个输出:事实准确性(声明是否与来源匹配?)、引用准确性(引用的来源是否与声明匹配?)、完整性(是否涵盖所有请求的方面?)、来源质量(是否使用主要来源而不是低质量的二级来源?),以及工具效率(是否合理次数使用正确工具?)。我们尝试使用多个评判者评估每个组件,但发现使用单个LLM调用和单个提示输出0.0-1.0分数和通过/失败等级最一致且与人类判断一致。当评估测试用例确实有明确答案时,这种方法特别有效,我们可以使用LLM评判者简单检查答案是否正确(即它是否准确列出了R&D预算前3大的制药公司?)。使用LLM作为评判者允许我们可扩展地评估数百个输出。
> **注解20:评估方法的实用性**
>
> 这里展示了实用的评估策略:从小样本开始,使用LLM作为评判者。这种方法平衡了成本和效果,特别适合多智能体系统的复杂性评估需求。
**人工评估捕获自动化遗漏的内容。** 测试智能体的人发现评估遗漏的边缘情况。这包括对不寻常查询的幻觉答案、系统故障或微妙的来源选择偏差。在我们的案例中,人工测试者注意到我们早期的智能体一致选择SEO优化的内容农场,而不是权威但排名较低的来源,如学术PDF或个人博客。在我们的提示中添加来源质量启发式方法有助于解决这个问题。即使在自动化评估的世界中,手动测试仍然至关重要。
> **注解21:人工评估的不可替代性**
>
> 这个例子(选择SEO内容农场而非权威源)说明了人工评估发现的微妙问题。这种发现后来转化为"来源质量启发式方法",体现了人工评估对系统改进的重要作用。
多智能体系统具有涌现行为,这些行为在没有特定编程的情况下出现。例如,对主智能体的小改变可能不可预测地改变子智能体的行为方式。成功需要理解交互模式,而不仅仅是个体智能体行为。因此,这些智能体的最佳提示不仅仅是严格的指令,而是定义分工、问题解决方法和工作量预算的协作框架。正确处理这取决于仔细的提示和工具设计、可靠的启发式方法、可观察性和紧密的反馈循环。参见我们[Cookbook中的开源提示](https://github.com/anthropics/anthropic-cookbook/tree/main/patterns/agents/prompts)获取我们系统的示例提示。
> **注解22:涌现行为和协作框架**
>
> "涌现行为"是多智能体系统的重要特征——小变化导致不可预测的大变化。这里强调了启发式方法作为"协作框架"而非"严格指令"的重要性,这与我们讨论的设计哲学完全一致。
## 生产可靠性和工程挑战
在传统软件中,错误可能会破坏功能、降低性能或导致中断。在智能体系统中,小的变化会级联成大的行为变化,这使得为必须在长期运行过程中维护状态的复杂智能体编写代码变得极其困难。
**智能体是有状态的,错误会复合。** 智能体可以长时间运行,在许多工具调用中维护状态。这意味着我们需要持久执行代码并处理过程中的错误。没有有效的缓解措施,小的系统故障对智能体来说可能是灾难性的。当错误发生时,我们不能只是从头开始重启:重启既昂贵又让用户沮丧。相反,我们构建了可以从错误发生时智能体所在位置恢复的系统。我们还使用模型的智能来优雅地处理问题:例如,让智能体知道工具何时失败并让它适应工作得出奇地好。我们将构建在Claude上的AI智能体的适应性与重试逻辑和定期检查点等确定性保护措施相结合。
> **注解23:状态管理和容错机制**
>
> 这里说明了多智能体系统的一个关键挑战:错误的复合性质。与传统软件不同,智能体系统中的小错误可能导致完全不同的执行路径,因此需要更复杂的容错机制。
**调试受益于新方法。** 智能体做出动态决策,即使使用相同的提示,运行之间也是非确定性的。这使得调试更加困难。例如,用户会报告智能体"找不到明显信息",但我们看不出原因。智能体是在使用糟糕的搜索查询吗?选择了糟糕的来源?遇到工具故障?添加完整的生产追踪让我们诊断智能体失败的原因并系统地修复问题。除了标准可观察性之外,我们监控智能体决策模式和交互结构——所有这些都不监控个别对话的内容,以维护用户隐私。这种高级可观察性帮助我们诊断根本原因、发现意外行为并修复常见故障。
> **注解24:调试和可观察性的重要性**
>
> 非确定性行为使得传统调试方法不适用。这里强调的"智能体决策模式和交互结构"监控体现了理解智能体认知模式的重要性,这与我们讨论的"建立智能体心理模型"相呼应。
**部署需要仔细协调。** 智能体系统是高度有状态的提示、工具和执行逻辑网络,几乎连续运行。这意味着每当我们部署更新时,智能体可能在其过程中的任何地方。因此,我们需要防止我们善意的代码更改破坏现有智能体。我们不能同时将每个智能体更新到新版本。相反,我们使用[彩虹部署](https://brandon.dimcheff.com/2018/02/rainbow-deploys-with-kubernetes/)来避免干扰运行中的智能体,通过在保持两者同时运行的同时逐渐将流量从旧版本转移到新版本。
> **注解25:生产部署的复杂性**
>
> 彩虹部署是处理有状态系统更新的一种方法,这体现了多智能体系统在生产环境中的复杂性。传统的一次性更新在这种持续运行的系统中是不可行的。
**同步执行创建瓶颈。** 目前,我们的主智能体同步执行子智能体,等待每组子智能体完成后再继续。这简化了协调,但在智能体之间的信息流中创建了瓶颈。例如,主智能体无法引导子智能体,子智能体无法协调,整个系统可能在等待单个子智能体完成搜索时被阻塞。异步执行将启用额外的并行性:智能体并发工作并在需要时创建新的子智能体。但这种异步性在子智能体间的结果协调、状态一致性和错误传播方面增加了挑战。随着模型能够处理更长、更复杂的研究任务,我们预期性能提升将证明复杂性是合理的。
> **注解26:同步vs异步执行的权衡**
>
> 这里描述了系统架构的一个重要权衡:同步执行简化协调但创建瓶颈,异步执行提高并行性但增加复杂性。这体现了分布式系统设计中的经典权衡。
## 结论
在构建AI智能体时,最后一英里往往成为大部分旅程。在开发机器上工作的代码库需要大量工程才能成为可靠的生产系统。智能体系统中错误的复合性质意味着传统软件的小问题可能完全使智能体脱轨。一个步骤失败可能导致智能体探索完全不同的轨迹,导致不可预测的结果。由于本文描述的所有原因,原型和生产之间的差距往往比预期更大。
> **注解27:从原型到生产的挑战**
>
> "最后一英里往往成为大部分旅程"很好地总结了多智能体系统工程化的挑战。错误的复合性质使得生产化比传统软件更困难,这需要更加谨慎的工程实践。
尽管存在这些挑战,多智能体系统已被证明对开放式研究任务有价值。用户说Claude帮助他们找到了没有考虑过的商业机会,导航复杂的医疗保健选项,解决棘手的技术错误,并通过发现他们单独无法找到的研究联系节省了多达几天的工作。多智能体研究系统可以通过仔细的工程、全面的测试、面向细节的提示和工具设计、强大的运营实践,以及对当前智能体能力有深刻理解的研究、产品和工程团队之间的紧密协作,在规模上可靠运行。我们已经看到这些系统改变了人们解决复杂问题的方式。
> **注解28:价值和前景**
>
> 尽管技术挑战很大,但用户价值是明确的:发现商业机会、导航复杂选择、解决技术问题、节省大量时间。这证明了多智能体系统的投资回报。
![Clio嵌入图显示人们今天使用研究功能的最常见方式。顶级用例类别是开发跨专业领域的软件系统(10%),开发和优化专业和技术内容(8%),制定业务增长和收入生成策略(8%),协助学术研究和教育材料开发(7%),以及研究和验证关于人员、地点或组织的信息(5%)。]
> **注解29:实际应用场景**
>
> 这个使用场景分布图显示了多智能体系统的实际价值领域,从软件开发到业务策略,从学术研究到信息验证,体现了系统的通用性和实用性。
## 附录
以下是多智能体系统的一些额外杂项提示。
**改变多轮状态的智能体的端状态评估。** 评估在多轮对话中修改持久状态的智能体提出了独特的挑战。与只读研究任务不同,每个动作都可能为后续步骤改变环境,创建传统评估方法难以处理的依赖关系。我们发现专注于端状态评估而不是逐轮分析是成功的。不是判断智能体是否遵循了特定过程,而是评估它是否实现了正确的最终状态。这种方法承认智能体可能找到达到相同目标的替代路径,同时仍确保它们交付预期结果。对于复杂工作流程,将评估分解为应该发生特定状态变化的离散检查点,而不是试图验证每个中间步骤。
> **注解30:端状态评估的方法论**
>
> 这种评估方法体现了对多智能体系统特性的深刻理解:因为路径的多样性,所以关注结果而非过程。这与我们讨论的"灵活评估方法"完全一致。
**长期对话管理。** 生产智能体经常参与跨越数百轮的对话,需要仔细的上下文管理策略。随着对话延长,标准上下文窗口变得不足,需要智能压缩和记忆机制。我们实施了智能体总结已完成工作阶段并在继续新任务之前将基本信息存储在外部记忆中的模式。当上下文限制接近时,智能体可以生成具有清洁上下文的新子智能体,同时通过仔细的交接维护连续性。此外,它们可以从记忆中检索存储的上下文,如研究计划,而不是在达到上下文限制时丢失以前的工作。这种分布式方法防止了上下文溢出,同时在扩展交互中保持对话连贯性。
> **注解31:长期对话的状态管理**
>
> 这里描述的外部记忆和分布式上下文管理策略,体现了我们讨论的"状态管理策略"的具体实现。通过外部存储和子智能体生成来解决上下文限制问题。
**子智能体输出到文件系统以最小化'传话游戏'。** 直接子智能体输出可以绕过主协调员处理某些类型的结果,改善保真度和性能。而不是要求子智能体通过主智能体传达一切,实施工件系统,专门智能体可以创建独立持续的输出。子智能体调用工具将其工作存储在外部系统中,然后将轻量级引用传回协调员。这防止了多阶段处理期间的信息丢失,并减少了通过对话历史复制大型输出的标记开销。该模式对于结构化输出(如代码、报告或数据可视化)特别有效,其中子智能体的专门提示产生比通过通用协调员过滤更好的结果。
> **注解32:避免信息传递损失**
>
> "传话游戏"是一个很好的比喻,说明了多层信息传递可能导致的信息失真。这种直接输出到文件系统的方法,体现了我们讨论的"分布式输出管理"策略。
---
**总结注解:**
本文展示了一个完整的多智能体系统工程实践框架,核心思想是将人类专家的工作方法论抽象为启发式原则,然后通过技术机制加以实现。关键洞察包括:
1. **方法论驱动**:从理解领域专家的认知模式开始
2. **启发式原则**:灵活的指导框架而非僵化规则
3. **技术实现**:如Interleaved Thinking实现信息验证方法论
4. **持续优化**:让AI系统自我改进启发式规则
5. **系统工程**:处理涌现行为、状态管理、容错等生产挑战
这为构建其他领域的多智能体系统提供了可操作的设计模式和实践指导。