Anthropic:构建高效AI智能体的实用指南

数据有声导读大家好,今天咱们来聊聊Anthropic公司最新发布的研究成果——如何构建高效的AI智能体。这篇文章深入浅出地讲解了构建AI智能体的各种方法,从简单的流程到复杂的自主智能体,应有尽有!准备好你的小板凳,让我们一起走进AI智能体的奇妙世界吧!

正文

**导语:**本文分享了Anthropic公司在与众多团队合作构建大型语言模型(LLM)智能体的过程中获得的经验和实用建议,并对智能体的类型、应用场景以及构建方法进行了详细阐述。

「什么是智能体?」

“智能体”的定义有很多种,可以是完全自主运行的系统,也可以是遵循预定义工作流程的系统。Anthropic将所有这些都归类为「智能系统」,并区分了「工作流程」「智能体」两种架构:

「工作流程:」 LLM和工具通过预定义的代码路径进行协调;「智能体:」 LLM动态地指挥自身流程和工具的使用,控制完成任务的方式。

「何时(以及何时不)使用智能体?」

构建LLM应用程序时,建议尽可能找到最简单的解决方案,只有在需要时才增加复杂性。智能系统通常以延迟和成本为代价来换取更好的任务性能,因此需要权衡利弊。

当需要更多复杂性时,工作流程为定义明确的任务提供可预测性和一致性,而智能体则是在需要大规模的灵活性和模型驱动决策时更好的选择。然而,对于许多应用程序来说,使用检索和上下文示例优化单个LLM调用通常就足够了。

「何时以及如何使用框架?」

有很多框架可以简化智能系统的实现,包括LangChain的LangGraph、Amazon Bedrock的AI Agent框架、Rivet和Vellum等。这些框架通过简化标准低级任务(如调用LLM、定义和解析工具以及将调用链接在一起)来简化入门过程。但是,它们通常会创建额外的抽象层,从而使底层提示和响应难以调试。它们还可能使人们在简单的设置就足够的情况下,也倾向于增加复杂性。

建议开发人员先直接使用LLM API:许多模式可以用几行代码实现。如果确实使用了框架,请确保理解底层代码。对底层代码的错误假设是客户错误的常见来源。

「构建模块、工作流程和智能体」

本节将探讨我们在生产中看到的智能系统的常见模式。我们将从基本的构建块——增强型LLM开始,逐步增加复杂性,从简单的组合工作流程到自主智能体。

「构建块:增强型LLM」

智能系统的基本构建块是通过检索、工具和内存等增强功能增强的LLM。我们目前的模型可以主动使用这些功能——生成自己的搜索查询、选择合适的工具以及确定要保留哪些信息。

Anthropic:构建高效AI智能体的实用指南

The augmented LLM

我们建议关注实现的两个关键方面:根据您的具体用例调整这些功能,并确保它们为您的LLM提供简单易用的、有良好文档记录的接口。虽然有很多方法可以实现这些增强功能,但一种方法是通过我们最近发布的模型上下文协议,它允许开发人员使用简单的客户端实现与不断发展的第三方工具生态系统集成。

在本帖的其余部分,我们将假设每个LLM调用都可以访问这些增强功能。

「工作流程:提示链」

提示链将任务分解成一系列步骤,其中每个LLM调用都处理前一个调用的输出。你可以在任何中间步骤添加编程检查(见下图中的“gate”),以确保流程仍在正轨上。

Anthropic:构建高效AI智能体的实用指南

The prompt chaining workflow

**何时使用此工作流程:**此工作流程非常适合那些可以轻松干净地分解成固定子任务的情况。主要目标是通过使每个LLM调用都成为一项更简单的任务来权衡延迟以获得更高的精度。

「工作流程:路由」

路由对输入进行分类并将其定向到专门的后续任务。此工作流程允许分离关注点,并构建更专业的提示。如果没有此工作流程,则针对一种输入进行优化可能会损害其他输入的性能。

Anthropic:构建高效AI智能体的实用指南

The routing workflow

**何时使用此工作流程:**路由适用于存在更好的单独处理的独特类别,并且可以通过LLM或更传统的分类模型/算法准确处理分类的复杂任务。

「工作流程:并行化」

LLM有时可以同时处理任务,并以编程方式聚合其输出。此工作流程(并行化)体现在两个关键变体中:

**分段:**将任务分解成并行运行的独立子任务;**投票:**多次运行相同的任务以获得不同的输出。

Anthropic:构建高效AI智能体的实用指南

The parallelization workflow

**何时使用此工作流程:**当可以并行化子任务以提高速度,或者需要多个视角或尝试以获得更高的置信度结果时,并行化是有效的。对于具有多个考虑因素的复杂任务,当每个考虑因素都由单独的LLM调用处理时,LLM通常表现更好,从而允许集中关注每个特定方面。

「工作流程:协调器-工作器」

在协调器-工作器工作流程中,中心LLM动态地分解任务,将其委托给工作器LLM,并综合其结果。

Anthropic:构建高效AI智能体的实用指南

The orchestrator-workers workflow

**何时使用此工作流程:**此工作流程非常适合那些难以或无法预测所需子任务数量,并且无法硬编码固定路径的复杂任务。LLM可能会运行许多轮次,你必须在一定程度上信任它的决策能力。智能体的自主性使其成为在可信环境中扩展任务的理想选择。

「工作流程:评估器-优化器」

在评估器-优化器工作流程中,一个LLM调用生成响应,而另一个LLM调用在一个循环中提供评估和反馈。

Anthropic:构建高效AI智能体的实用指南

The evaluator-optimizer workflow

**何时使用此工作流程:**当我们有明确的评估标准,并且迭代改进提供了可衡量的价值时,此工作流程特别有效。两个适合的迹象是:首先,当人类表达他们的反馈时,LLM响应可以得到明显的改进;其次,LLM可以提供这样的反馈。这类似于人类作者在制作精美的文档时可能经历的迭代写作过程。

「智能体」

随着LLM在关键能力(理解复杂输入、进行推理和规划、可靠地使用工具以及从错误中恢复)方面的成熟,智能体正在生产中出现。智能体的工作始于来自人类用户的命令或交互式讨论。一旦任务明确,智能体就会独立规划和操作,可能会返回到人类以获取更多信息或判断。在执行过程中,智能体必须在每个步骤从环境中获得“基本事实”(例如工具调用结果或代码执行)以评估其进度。然后,智能体可以在检查点或遇到障碍时暂停以获取人类反馈。任务通常在完成后终止,但通常也包括停止条件(例如最大迭代次数)以保持控制。

智能体可以处理复杂的任务,但它们的实现通常很简单。它们通常只是基于环境反馈循环使用工具的LLM。因此,必须清晰而周到地设计工具集及其文档。我们在附录2(“提示工程你的工具”)中扩展了工具开发的最佳实践。

Anthropic:构建高效AI智能体的实用指南

Autonomous agent

**何时使用智能体:**智能体可用于开放式问题,在这些问题中,难以或不可能预测所需的步骤数量,并且你无法硬编码固定路径。LLM可能会运行许多轮次,你必须在一定程度上信任它的决策能力。智能体的自主性使其成为在可信环境中扩展任务的理想选择。

自主性意味着更高的成本以及复合错误的可能性。我们建议在沙盒环境中进行广泛的测试,以及适当的防护措施。

Anthropic:构建高效AI智能体的实用指南

High-level flow of a coding agent

「组合和定制这些模式」

这些构建块不是规范性的。它们是开发人员可以塑造和组合以适应不同用例的常见模式。与任何LLM功能一样,成功的关键是衡量性能并迭代实现。重申一下:你应该只有在它明显改善结果时才考虑增加复杂性。

「总结」

在LLM领域取得成功,不在于构建最复杂的系统,而在于构建满足您需求的正确系统。从简单的提示开始,使用全面的评估对其进行优化,并且只有在更简单的解决方案不足时才添加多步骤智能系统。

实现智能体时,我们尝试遵循三个核心原则:

保持智能体设计的「简单性」通过明确显示智能体的规划步骤来优先考虑「透明性」通过彻底的工具「文档和测试」来仔细设计你的智能体-计算机接口(ACI)。

框架可以帮助你快速入门,但在转向生产时,不要犹豫减少抽象层并使用基本组件进行构建。通过遵循这些原则,你可以创建不仅功能强大,而且可靠、可维护且受用户信任的智能体。

参考链接:https://www.anthropic.com/research/building-effective-agents

版权声明:lida 发表于 2025年1月3日 am11:45。
转载请注明:Anthropic:构建高效AI智能体的实用指南 | ChatGPT资源导航

相关文章