<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>智能体 on 冯威的博客</title><link>https://fwhyy.com/tags/%E6%99%BA%E8%83%BD%E4%BD%93/</link><description>Recent content in 智能体 on 冯威的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 25 Jun 2025 15:51:00 +0800</lastBuildDate><atom:link href="https://fwhyy.com/tags/%E6%99%BA%E8%83%BD%E4%BD%93/atom.xml" rel="self" type="application/rss+xml"/><item><title>如何构建多智能体系统？</title><link>https://fwhyy.com/2025/06/how-to-build-a-multiagent-system/</link><pubDate>Wed, 25 Jun 2025 15:51:00 +0800</pubDate><guid>https://fwhyy.com/2025/06/how-to-build-a-multiagent-system/</guid><description>&lt;p&gt;6 月 13 日，Anthropic 发布了一篇《How we built our multi-agent research system》的实战经验文章，文章分享了 Anthropic 在构建多个 Claude 智能体来更有效地探索复杂主题的系统过程中，遇到的工程挑战和获得的经验教训。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;原文地址如下：&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/built-multi-agent-research-system"&gt;https://www.anthropic.com/engineering/built-multi-agent-research-system&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;全文翻译可以看：https://www.fwhyy.com/2025/06/how-to-build-a-multi-agent-research-system-translation/&lt;/p&gt;
&lt;p&gt;下面是我看文章时记录的一些知识点：&lt;/p&gt;
&lt;p&gt;1、在过去十万年里，单个人的智力并未发生巨变，但人类社会在信息时代的能力却呈指数级增长，这得益于我们的集体智慧和协调能力。所以说要想突破能力极限，还得靠协作。&lt;/p&gt;
&lt;p&gt;2、映射到现在的智能体就是单个智能体会出现 token 使用的极限，多智能体可以使用更多的计算资源来处理现实问题。&lt;/p&gt;
&lt;p&gt;3、多智能体的功能架构是协调者和工作者模式，有专门负责分析和指派任务的智能体，也有负责特定工作的智能体。有点像一个项目团队中的项目经理和项目的其他成员。&lt;/p&gt;
&lt;p&gt;4、多智能体的一个应用场景是做问答类的应用，和 RAG 不同的是，RAG 依赖静态检索，根据查询的问题找相似块，然后组织成答案。多智能体是多步骤进行检索，动态发现关键信息，并且还会对结果进行分析，进而做进一步分析和处理，使答案有更高的质量。&lt;/p&gt;
&lt;p&gt;5、多智能体在运行时，会遵循下面步骤。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系统会先创建一个主智能体，进行任务的思考，然后制定计划，将计划保存起来。&lt;/li&gt;
&lt;li&gt;主智能体会创建一个或多个子智能体，进行具体任务的分配。&lt;/li&gt;
&lt;li&gt;每个子智能体独自研究并将结果返回给主智能体。&lt;/li&gt;
&lt;li&gt;主智能体会判断是否需要进行进一步研究，如果需要会创建额外的子智能体，这个过程是一个循环。&lt;/li&gt;
&lt;li&gt;当主智能体发现不用继续研究，会退出循环，将所有结果交给引文智能体进行引文标记的工作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;6、大模型虽然越来越强，但提示词依然很重要，每个智能体都是由提示词进行引导，我们需要使用日志记录的方式来检查智能体的行为，观察什么时候会出错，然后优化提示词。&lt;/p&gt;
&lt;p&gt;7、主智能体在进行任务的分配时，需要将需求写的尽可能明确和详尽，这样子智能体才能更好的执行。&lt;/p&gt;
&lt;p&gt;8、提示词有个伸缩规则，能够区分简单的事实查询还是复杂问题的研究，让智能体的资源利用率达到最高。现在向深度思考的大模型一些简单的问题，比如：今天星期几？1+1 等于几？大模型还是会自言自语分析一通，很久才会给出答案。这应该就是伸缩规则没有做好。&lt;/p&gt;
&lt;p&gt;9、良好的评估对于构建可靠的 AI 应用至关重要，智能体也不例外。即使输入完全相同，智能体也可能采取完全不同的路径来达到目标。所以，我们需要灵活的评估方法，既能判断智能体是否得到了正确的结果，又能判断它们是否遵循了合理的过程。&lt;/p&gt;
&lt;p&gt;10、这个评估方法有下面几个标准。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;事实准确性（声明是否与来源匹配？）&lt;/li&gt;
&lt;li&gt;引文准确性（引用的来源是否与声明匹配？）&lt;/li&gt;
&lt;li&gt;完整性（是否覆盖了所有被要求的内容？）&lt;/li&gt;
&lt;li&gt;来源质量（是否使用了主要来源而非质量较低的次要来源？）&lt;/li&gt;
&lt;li&gt;以及工具效率（是否以合理的次数使用了正确的工具？）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;11、当然，多智能体也有缺点，比如消耗 token 会非常快，对于智能体之间需要共享上下文、或者智能体之间要频繁交互的不太适合。A2A 的发展应该有助于多智能体的普及。&lt;/p&gt;
&lt;p&gt;读完 Anthropic 的多智能体文章，我也结合我自己的知识有了一些思考。&lt;/p&gt;
&lt;p&gt;1、现阶段，由于单智能体 token 的限制，导致会往多智能体发展，否则很多复杂任务无法进行。但如果有一天技术的进步让 token 的限制不存在了，应该又会回归到单智能体。或者说当 token 不存在限制，智能体之间交互没有障碍，就可以根据场景灵活选择了。&lt;/p&gt;
&lt;p&gt;2、在大模型能力还没那么强的时候，提示词工程很火，后来模型能力增强，特别是推理型模型出来后，提示词工程被弱化了。这篇文章强调提示词依然非常重要，提示词不只是语言沟通，更是任务分配、格式规范的集中承载体。提示词工程是值得系统去学习的。&lt;/p&gt;
&lt;p&gt;3、即使输入完全相同，智能体也可能采取完全不同的路径。也就是说输出是不确定的，尽管可以让大模型进行自评估来提升结果的质量，但对于容错率很低的场景，怎么能保证前 100 次都是对的，第 101 次就不会出现错误呢？&lt;/p&gt;
&lt;p&gt;4、都说 AI 的发展会淘汰掉部分程序员，但从这篇文章表达的思想来看，具备架构思维和能力的程序员一定在未来有一席之地。需要关注整体流程、关注错误处理机制（风险）、关注对结果的评估等。&lt;/p&gt;</description></item><item><title>如何构建多智能体研究系统（翻译）</title><link>https://fwhyy.com/2025/06/how-to-build-a-multi-agent-research-system-translation/</link><pubDate>Fri, 20 Jun 2025 15:26:00 +0800</pubDate><guid>https://fwhyy.com/2025/06/how-to-build-a-multi-agent-research-system-translation/</guid><description>&lt;p&gt;我们的研究功能使用多个Claude智能体来更有效地探索复杂主题。我们分享了构建这个系统时遇到的工程挑战和学到的经验教训。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Claude现在具备研究能力，可以在网络、Google Workspace和任何集成中搜索，以完成复杂任务。&lt;/p&gt;
&lt;p&gt;这个多智能体系统从原型到生产的过程教会了我们关于系统架构、工具设计和提示工程的重要经验。多智能体系统由多个智能体（自主使用工具循环的LLM）协同工作组成。我们的研究功能包含一个基于用户查询规划研究过程的智能体，然后使用工具创建并行智能体同时搜索信息。具有多个智能体的系统在智能体协调、评估和可靠性方面带来了新的挑战。&lt;/p&gt;
&lt;p&gt;这篇文章分解了对我们有效的原则——我们希望您在构建自己的多智能体系统时能够发现它们的实用价值。&lt;/p&gt;
&lt;h2 id="多智能体系统的优势"&gt;多智能体系统的优势&lt;/h2&gt;
&lt;p&gt;研究工作涉及开放性问题，很难预先预测所需的步骤。您无法为探索复杂主题硬编码固定路径，因为这个过程本质上是动态的且路径依赖的。当人们进行研究时，他们往往根据发现不断更新方法，跟随调查过程中出现的线索。&lt;/p&gt;
&lt;p&gt;这种不可预测性使AI智能体特别适合研究任务。研究需要灵活性，能够在调查展开时转向或探索切向连接。模型必须自主运行多轮，根据中间发现决定追求哪些方向。线性、一次性的管道无法处理这些任务。&lt;/p&gt;
&lt;p&gt;搜索的本质是压缩：从庞大语料中提炼见解。子智能体通过在自己的上下文窗口中并行运行，同时探索问题的不同方面，然后为主研究智能体浓缩最重要的标记，从而促进压缩。每个子智能体还提供关注点分离——不同的工具、提示和探索轨迹——这减少了路径依赖性并实现了彻底的独立调查。&lt;/p&gt;
&lt;p&gt;一旦智能达到阈值，多智能体系统成为扩展性能的重要方式。例如，尽管个体人类在过去10万年中变得更加智能，但人类社会在信息时代因我们的集体智能和协调能力而呈指数级提高能力。即使是通用智能的智能体在作为个体运行时也面临限制；智能体群体可以完成更多工作。&lt;/p&gt;
&lt;p&gt;我们的内部评估显示，多智能体研究系统在涉及同时追求多个独立方向的广度优先查询方面表现尤为出色。我们发现，以Claude Opus 4为主智能体和Claude Sonnet 4子智能体的多智能体系统在我们的内部研究评估中比单一智能体Claude Opus 4的性能高出90.2%。例如，当被要求识别信息技术标普500指数公司的所有董事会成员时，多智能体系统通过将其分解为子智能体的任务找到了正确答案，而单一智能体系统则因缓慢的顺序搜索而未能找到答案。&lt;/p&gt;
&lt;p&gt;多智能体系统之所以有效，主要是因为它们帮助使用足够的标记来解决问题。在我们的分析中，三个因素解释了BrowseComp评估（测试浏览智能体定位难以找到信息的能力）中95%的性能差异。我们发现标记使用本身解释了80%的差异，工具调用次数和模型选择是另外两个解释因素。这一发现验证了我们的架构，该架构将工作分配给具有独立上下文窗口的智能体，为并行推理增加更多容量。最新的Claude模型在标记使用上充当大型效率乘数，升级到Claude Sonnet 4比在Claude Sonnet 3.7上将标记预算翻倍带来更大的性能提升。多智能体架构有效地扩展了超出单一智能体限制的任务的标记使用。&lt;/p&gt;
&lt;p&gt;有一个缺点：实际上，这些架构会快速消耗标记。在我们的数据中，智能体通常使用比聊天交互多约4倍的标记，而多智能体系统使用比聊天多约15倍的标记。为了经济可行，多智能体系统需要任务的价值足够高，以支付增加的性能成本。此外，一些需要所有智能体共享相同上下文或涉及智能体之间许多依赖关系的领域目前不适合多智能体系统。例如，大多数编码任务比研究涉及更少的真正可并行化任务，LLM智能体在实时协调和委派给其他智能体方面尚不出色。我们发现，多智能体系统在涉及大量并行化、超出单一上下文窗口的信息以及与众多复杂工具接口的有价值任务中表现出色。&lt;/p&gt;
&lt;h2 id="研究的架构概述"&gt;研究的架构概述&lt;/h2&gt;
&lt;p&gt;我们的研究系统使用具有协调者-工作者模式的多智能体架构，其中主智能体协调过程，同时委派给并行运行的专业子智能体。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2025/202506241128639.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;当用户提交查询时，主智能体分析它，制定策略，并生成子智能体同时探索不同方面。如上图所示，子智能体通过迭代使用搜索工具收集信息（在本例中是关于2025年AI智能体公司的信息）充当智能过滤器，然后向主智能体返回公司列表，以便它可以编制最终答案。&lt;/p&gt;
&lt;p&gt;使用检索增强生成（RAG）的传统方法使用静态检索。也就是说，它们获取与输入查询最相似的一组块，并使用这些块生成响应。相比之下，我们的架构使用多步搜索，动态查找相关信息，适应新发现，并分析结果以制定高质量答案。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.fwhyy.com/2025/202506241128866.webp" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="研究智能体的提示工程和评估"&gt;研究智能体的提示工程和评估&lt;/h2&gt;
&lt;p&gt;多智能体系统与单一智能体系统有关键区别，包括协调复杂性的快速增长。早期智能体犯了错误，如为简单查询生成50个子智能体，无休止地搜索网络寻找不存在的来源，以及用过多更新相互干扰。由于每个智能体都由提示引导，提示工程是我们改进这些行为的主要杠杆。以下是我们学到的提示智能体的一些原则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;像智能体一样思考&lt;/strong&gt;。要迭代提示，您必须了解它们的效果。为了帮助我们做到这一点，我们使用我们的Console构建了模拟，使用系统中的确切提示和工具，然后一步步观察智能体工作。这立即揭示了失败模式：智能体在已经有足够结果时继续，使用过于冗长的搜索查询，或选择不正确的工具。有效的提示依赖于开发对智能体的准确心理模型，这可以使最有影响力的变化变得明显。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;教协调者如何委派&lt;/strong&gt;。在我们的系统中，主智能体将查询分解为子任务并向子智能体描述它们。每个子智能体需要一个目标、输出格式、关于使用工具和来源的指导以及明确的任务边界。没有详细的任务描述，智能体会重复工作，留下空白，或无法找到必要的信息。我们最初允许主智能体给出简单、简短的指令，如&amp;quot;研究半导体短缺&amp;quot;，但发现这些指令通常模糊到子智能体误解任务或与其他智能体执行完全相同的搜索。例如，一个子智能体探索了2021年汽车芯片危机，而另外2个重复工作调查当前2025年供应链，没有有效的分工。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;根据查询复杂性调整努力&lt;/strong&gt;。智能体难以判断不同任务的适当努力，因此我们在提示中嵌入了扩展规则。简单的事实查找只需要1个智能体进行3-10次工具调用，直接比较可能需要2-4个子智能体，每个进行10-15次调用，而复杂研究可能使用10个以上具有明确分工的子智能体。这些明确的指导方针帮助主智能体有效分配资源，防止对简单查询过度投资，这是我们早期版本中常见的失败模式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;工具设计和选择至关重要&lt;/strong&gt;。智能体-工具接口与人机接口一样关键。使用正确的工具是高效的——通常，这是绝对必要的。例如，智能体在网络上搜索只存在于Slack中的上下文注定从一开始就失败。使用为模型提供外部工具访问权限的MCP服务器，这个问题会加剧，因为智能体会遇到具有质量差异很大的描述的未见过的工具。我们给智能体提供了明确的启发式方法：例如，首先检查所有可用工具，将工具使用与用户意图匹配，搜索网络进行广泛的外部探索，或偏好专业工具而非通用工具。糟糕的工具描述可能会将智能体引向完全错误的路径，因此每个工具都需要明确的目的和清晰的描述。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;让智能体自我改进&lt;/strong&gt;。我们发现Claude 4模型可以成为出色的提示工程师。当给定提示和失败模式时，它们能够诊断智能体失败的原因并提出改进建议。我们甚至创建了一个工具测试智能体——当给定有缺陷的MCP工具时，它尝试使用该工具，然后重写工具描述以避免失败。通过数十次测试工具，这个智能体发现了关键细微差别和错误。这个改进工具人体工程学的过程导致使用新描述的未来智能体的任务完成时间减少了40%，因为它们能够避免大多数错误。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;先广泛，再缩小范围&lt;/strong&gt;。搜索策略应该反映专家人类研究：在深入细节之前探索全局。智能体通常默认使用过长、过于具体的查询，返回很少结果。我们通过提示智能体从简短、广泛的查询开始，评估可用内容，然后逐步缩小焦点来抵消这种趋势。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;引导思考过程&lt;/strong&gt;。扩展思考模式，引导Claude在可见思考过程中输出额外标记，可以作为可控的草稿本。主智能体使用思考来规划其方法，评估哪些工具适合任务，确定查询复杂性和子智能体数量，并定义每个子智能体的角色。我们的测试表明，扩展思考改进了指令遵循、推理和效率。子智能体也进行规划，然后在工具结果后使用交错思考来评估质量，识别差距，并完善下一个查询。这使子智能体更有效地适应任何任务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;并行工具调用改变速度和性能&lt;/strong&gt;。复杂研究任务自然涉及探索多个来源。我们早期的智能体执行顺序搜索，这非常缓慢。为了提高速度，我们引入了两种并行化：(1)主智能体并行而非串行启动3-5个子智能体；(2)子智能体并行使用3+个工具。这些变化将复杂查询的研究时间减少了高达90%，使研究能够在几分钟而非几小时内完成更多工作，同时覆盖比其他系统更多的信息。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我们的提示策略专注于灌输良好的启发式方法而非严格规则。我们研究了熟练人类如何处理研究任务，并在我们的提示中编码了这些策略——如将困难问题分解为更小的任务，仔细评估来源质量，根据新信息调整搜索方法，以及识别何时专注于深度（详细调查一个主题）与广度（并行探索多个主题）。我们还通过设置明确的护栏来主动减轻意外副作用，防止智能体失控。最后，我们专注于具有可观察性和测试用例的快速迭代循环。&lt;/p&gt;
&lt;h2 id="智能体的有效评估"&gt;智能体的有效评估&lt;/h2&gt;
&lt;p&gt;良好的评估对于构建可靠的AI应用至关重要，智能体也不例外。然而，评估多智能体系统带来独特挑战。传统评估通常假设AI每次都遵循相同步骤：给定输入X，系统应该遵循路径Y产生输出Z。但多智能体系统不是这样工作的。即使起点相同，智能体可能采取完全不同的有效路径达到目标。一个智能体可能搜索三个来源，而另一个搜索十个，或者它们可能使用不同工具找到相同答案。因为我们并不总是知道正确步骤是什么，我们通常不能仅检查智能体是否遵循了我们预先规定的&amp;quot;正确&amp;quot;步骤。相反，我们需要灵活的评估方法，判断智能体是否达到了正确结果，同时也遵循了合理过程。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;立即开始用小样本评估&lt;/strong&gt;。在早期智能体开发中，变化往往有戏剧性影响，因为有大量容易实现的改进。提示调整可能将成功率从30%提高到80%。效果如此之大，您只需几个测试用例就能发现变化。我们从代表真实使用模式的约20个查询集开始。测试这些查询通常让我们清楚看到变化的影响。我们经常听说AI开发团队推迟创建评估，因为他们认为只有包含数百个测试用例的大型评估才有用。然而，最好立即开始小规模测试，而不是推迟到可以构建更全面的评估。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;作为评判的LLM在做得好时可扩展&lt;/strong&gt;。研究输出难以程序化评估，因为它们是自由形式文本，很少有单一正确答案。LLM自然适合评分输出。我们使用LLM评判，根据评分标准评估每个输出：事实准确性（声明是否与来源匹配？），引用准确性（引用的来源是否与声明匹配？），完整性（是否涵盖所有请求方面？），来源质量（是否使用主要来源而非低质量二手来源？），以及工具效率（是否合理次数使用正确工具？）。我们尝试使用多个评判来评估每个组件，但发现单一LLM调用，使用单一提示输出0.0-1.0分数和通过-失败等级，与人类判断最一致。当评估测试用例确实有明确答案时，这种方法特别有效，我们可以使用LLM评判简单检查答案是否正确（例如，它是否准确列出了研发预算最大的前3家制药公司？）。使用LLM作为评判让我们能够可扩展地评估数百个输出。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;人类评估捕捉自动化遗漏的内容&lt;/strong&gt;。测试智能体的人们发现评估遗漏的边缘情况。这些包括不寻常查询上的幻觉答案、系统故障或微妙的来源选择偏见。在我们的案例中，人类测试者注意到我们早期的智能体一致选择SEO优化的内容农场，而非权威但排名较低的来源，如学术PDF或个人博客。在我们的提示中添加来源质量启发式方法帮助解决了这个问题。即使在自动评估的世界中，手动测试仍然至关重要。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;多智能体系统具有涌现行为，这些行为在没有特定编程的情况下出现。例如，对主智能体的小变化可能不可预测地改变子智能体的行为方式。成功需要理解交互模式，而不仅仅是个体智能体行为。因此，这些智能体的最佳提示不仅仅是严格指令，而是定义分工、问题解决方法和努力预算的协作框架。正确实现这一点依赖于仔细的提示和工具设计、坚实的启发式方法、可观察性和紧密的反馈循环。请参阅我们Cookbook中的开源提示，了解系统中的示例提示。&lt;/p&gt;
&lt;h2 id="生产可靠性和工程挑战"&gt;生产可靠性和工程挑战&lt;/h2&gt;
&lt;p&gt;在传统软件中，错误可能破坏功能、降低性能或导致中断。在智能体系统中，微小变化级联成大的行为变化，这使得为必须在长时间运行过程中维护状态的复杂智能体编写代码非常困难。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;智能体有状态且错误复合&lt;/strong&gt;。智能体可以长时间运行，在多次工具调用中维护状态。这意味着我们需要持久执行代码并处理途中的错误。没有有效缓解措施，微小系统故障对智能体可能是灾难性的。当错误发生时，我们不能只是从头重启：重启对用户来说既昂贵又令人沮丧。相反，我们构建了可以从错误发生时智能体所处位置恢复的系统。我们还使用模型的智能优雅处理问题：例如，让智能体知道工具何时失败并让它适应，效果出奇地好。我们将基于Claude构建的AI智能体的适应性与确定性保障（如重试逻辑和定期检查点）相结合。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;调试受益于新方法&lt;/strong&gt;。智能体做出动态决策，即使使用相同提示，在运行之间也是非确定性的。这使调试更加困难。例如，用户会报告智能体&amp;quot;找不到明显信息&amp;quot;，但我们看不出为什么。智能体是否使用了糟糕的搜索查询？选择了糟糕的来源？遇到工具故障？添加完整生产跟踪让我们诊断智能体失败原因并系统地修复问题。除了标准可观察性外，我们还监控智能体决策模式和交互结构——所有这些都不监控个人对话内容，以维护用户隐私。这种高级可观察性帮助我们诊断根本原因，发现意外行为，并修复常见故障。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;部署需要仔细协调&lt;/strong&gt;。智能体系统是高度有状态的提示、工具和执行逻辑网络，几乎连续运行。这意味着每当我们部署更新时，智能体可能处于其过程中的任何位置。因此，我们需要防止我们善意的代码更改破坏现有智能体。我们不能同时将每个智能体更新到新版本。相反，我们使用彩虹部署避免中断运行中的智能体，通过逐渐将流量从旧版本转移到新版本，同时保持两者同时运行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;同步执行创建瓶颈&lt;/strong&gt;。目前，我们的主智能体同步执行子智能体，等待每组子智能体完成后再继续。这简化了协调，但在智能体之间的信息流中创建了瓶颈。例如，主智能体无法引导子智能体，子智能体无法协调，整个系统可能在等待单个子智能体完成搜索时被阻塞。异步执行将启用额外并行性：智能体并发工作并在需要时创建新子智能体。但这种异步性在子智能体之间的结果协调、状态一致性和错误传播方面增加了挑战。随着模型能够处理更长更复杂的研究任务，我们预计性能增益将证明复杂性是合理的。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="结论"&gt;结论&lt;/h2&gt;
&lt;p&gt;构建AI智能体时，最后一英里通常成为旅程的大部分。在开发者机器上工作的代码库需要大量工程才能成为可靠的生产系统。智能体系统中错误的复合性质意味着传统软件的微小问题可能完全使智能体脱轨。一个步骤失败可能导致智能体探索完全不同的轨迹，导致不可预测的结果。由于本文描述的所有原因，原型和生产之间的差距通常比预期更大。&lt;/p&gt;
&lt;p&gt;尽管存在这些挑战，多智能体系统已证明对开放式研究任务有价值。用户表示，Claude帮助他们发现未曾考虑的商业机会，导航复杂的医疗保健选择，解决棘手的技术错误，并通过发现他们单独无法找到的研究联系，节省了长达数天的工作时间。多智能体研究系统可以通过仔细的工程、全面测试、注重细节的提示和工具设计、强大的运营实践以及对当前智能体能力有深入了解的研究、产品和工程团队之间的紧密协作，在规模上可靠运行。我们已经看到这些系统正在改变人们解决复杂问题的方式。&lt;/p&gt;
&lt;h2 id="致谢"&gt;致谢&lt;/h2&gt;
&lt;p&gt;由Jeremy Hadfield、Barry Zhang、Kenneth Lien、Florian Scholz、Jeremy Fox和Daniel Ford撰写。这项工作反映了使研究功能成为可能的Anthropic多个团队的集体努力。特别感谢Anthropic应用工程团队，他们的奉献使这个复杂的多智能体系统投入生产。我们也感谢早期用户提供的出色反馈。&lt;/p&gt;
&lt;h2 id="附录"&gt;附录&lt;/h2&gt;
&lt;p&gt;以下是关于多智能体系统的一些额外杂项提示。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;在多轮中改变状态的智能体的终态评估&lt;/strong&gt;。评估在多轮对话中修改持久状态的智能体带来独特挑战。与只读研究任务不同，每个操作都可能改变后续步骤的环境，创建传统评估方法难以处理的依赖关系。我们发现成功专注于终态评估而非逐轮分析。不是判断智能体是否遵循特定过程，而是评估它是否达到了正确的最终状态。这种方法承认智能体可能找到通向相同目标的替代路径，同时仍确保它们提供预期结果。对于复杂工作流，将评估分解为应该发生特定状态变化的离散检查点，而不是尝试验证每个中间步骤。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;长期对话管理&lt;/strong&gt;。生产智能体通常参与跨越数百轮的对话，需要仔细的上下文管理策略。随着对话延伸，标准上下文窗口变得不足，需要智能压缩和记忆机制。我们实现了模式，智能体在继续新任务前总结已完成的工作阶段并在外部记忆中存储基本信息。当上下文限制接近时，智能体可以生成具有干净上下文的新子智能体，同时通过仔细交接维持连续性。此外，它们可以从记忆中检索存储的上下文，如研究计划，而不是在达到上下文限制时丢失先前工作。这种分布式方法防止上下文溢出，同时在延长交互中保持对话连贯性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;子智能体输出到文件系统以最小化&amp;quot;电话游戏&amp;quot;&lt;/strong&gt;。直接子智能体输出可以绕过主协调者处理某些类型的结果，提高保真度和性能。不是要求子智能体通过主智能体传达所有内容，而是实现工件系统，专业智能体可以创建独立持久的输出。子智能体调用工具将其工作存储在外部系统中，然后将轻量级引用传回协调者。这防止了多阶段处理期间的信息丢失，并减少了通过对话历史复制大型输出的标记开销。这种模式对结构化输出（如代码、报告或数据可视化）特别有效，其中子智能体的专业提示产生比通过通用协调者过滤更好的结果。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>