Anthropic:构建有效的Agents
在过去一年中,我们与数十个团队合作,构建了跨行业的大语言模型 (LLM) AI 智能体。我们发现,最成功的案例并非依赖复杂的框架或专门的库,而是采用简单且可组合的模式。 在这篇文章中,我们将分享我们与客户合作以及自身构建 AI 智能体的经验,并为开发者提供构建高效 AI 智能体的实用建议。 “Agent”(AI 智能体)可以用几种方式来定义。一些客户将智能体定义为完全自主的系统,这些系统在较长时间内独立运行,并使用各种工具来完成复杂的任务。另一些人则使用该术语来描述更具规范性的实现,这些实现遵循预定义的workflow(工作流程)。在Anthropic,我们将所有这些变体归类为agentic systems(智能体系统),但在架构上对workflows(工作流程)和agents(智能体)进行了重要的区分: Workflows(工作流程)是指大语言模型(LLM)和工具通过预定义的代码路径进行编排的系统。 Agents(智能体)是指大语言模型(LLM)动态地指导其自身流程和工具使用的系统,保持对其如何完成任务的控制。 下面,我们将详细探讨这两种类型的智能体系统。在附录1(“实践中的智能体”)中,我们描述了客户发现使用这些系统具有特殊价值的两个领域。 在使用大语言模型构建应用程序时,我们建议尽可能采用最简单的解决方案,仅在必要时才增加复杂性。 这可能意味着完全不构建 AI 智能体系统。AI 智能体系统通常会牺牲延迟和成本来换取更好的任务性能,因此您应该仔细衡量这种权衡是否值得。 当需要更高的复杂性时,对于定义明确的任务,工作流程能够提供可预测性和一致性;而当需要在更大规模上实现灵活性和模型驱动的决策时,AI 智能体则是更优的选择。 然而,对于许多应用而言,通过检索和上下文示例来优化单个大语言模型的调用通常就已足够。 何时以及如何使用框架? 有许多框架可以更轻松地实现 AI 智能体系统,包括: LangChain 的 LangGraph; Amazon Bedrock 的 AI 智能体框架; Rivet,一个拖放式 GUI LLM 工作流程构建器 Vellum,另一个用于构建和测试复杂工作流程的 GUI 工具。 这些框架通过简化标准底层任务(如调用 LLM、定义和解析工具以及将调用链接在一起)来简化入门。但是,它们通常会创建额外的抽象层,从而模糊底层提示词和响应,从而使其更难调试。当更简单的设置就足够时,它们也可能使添加复杂性变得很诱人。 我们建议开发人员首先直接使用 LLM API:许多模式可以用几行代码实现。如果您确实使用框架,请确保您了解底层代码。关于底层代码的不正确假设是客户错误的常见来源。 构建模块、工作流程和 AI 智能体 在本节中,我们将探讨我们在生产环境中观察到的 AI 智能体系统的常见模式。我们将从我们的基础构建模块——增强型大语言模型——开始,并逐步增加复杂性,从简单的组合工作流程到自主 AI 智能体。 构建模块:增强型大语言模型 Agentic 系统 的基本构建模块是一个大语言模型,它通过检索、工具和记忆等增强功能得到加强。我们目前的模型可以主动使用这些能力——生成自己的搜索查询,选择合适的工具,并确定要保留哪些信息。 我们建议重点关注实现的两个关键方面:根据您的特定用例定制这些功能,并确保它们为您的 大语言模型 提供一个简单、有据可查的接口。虽然有很多方法可以实现这些增强功能,但一种方法是通过我们最近发布的Model Context Protocol,该协议允许开发人员通过一个简单的客户端实现与不断增长的第三方工具生态系统集成。 在本帖的剩余部分,我们将假设每个 大语言模型 调用都可以访问这些增强功能。 工作流:提示链 提示链将一个任务分解成一系列步骤,其中每个大语言模型(LLM)调用处理前一个调用的输出。 您可以在任何中间步骤中添加程序化检查(参见下图中的“门控”),以确保该过程仍在正轨上。 ...