微信扫码
与创始人交个朋友
我要投稿
这几天大家都在说2025年会是Agent元年,Agent领域大有可为,之前我一直觉得Agent就是大模型应用的代名词,一直找不到权威的文章去解读这一概念。
这是Anthropic上周在官网发布的一篇文章,分享了Anthropic公司过去一年与众多团队合作构建大型语言模型(LLM)智能体的经验。探讨了智能体的定义、使用场景、框架选择以及构建模块、工作流和智能体的不同模式,并提供了构建有效智能体的实用建议。适合小白或者想深入了解Agent领域的朋友阅读。
什么是Agent?
智能体Agent可以用几种方式定义。一些客户将智能体定义为在较长时间内独立运行、使用各种工具来完成复杂任务的完全自主系统。其他人使用这个词来描预定义工作流程。在Anthropic,我们将所有这些变体都归类为智能体系统,但在工作流程和智能体之间做出了重要的架构区分:
工作流 Workflow:预先编排好的大模型和工具组合流程。
智能体 Agent:由大模型规划自身流程,相应环境,使用工具,自主完成任务的系统。
何时使用Agent?
当使用LLM构建应用程序时,我们建议找到尽可能简单的解决方案,并且仅在需要时才增加复杂性。这可能意味着根本不构建智能体系统。智能体系统通常以延迟和成本换取更好的任务性能,您应该考虑何时这种权衡是有意义的。
当需要更高的复杂性时,工作流程为定义明确的任务提供可预测性和一致性,而当需要大规模的灵活性和模型驱动的决策时,智能体是更好的选择。然而,对于许多应用程序来说,使用检索和上下文示例优化单个LLM调用通常就足够了。
何时以及如何使用框架?
有许多框架可以使智能体系统更容易实现
LangChain的LangGraph;
Amazon Bedrock的AI智能体框架;
Rivet,一个拖放式GUI LLM工作流程构建器;以及
Vellum,另一个用于构建和测试复杂工作流程的GUI工具。
补充一下字节的Coze也非常好用
这些框架通过简化标准底层任务(例如调用LLM、定义和解析工具以及将调用链接在一起)使入门变得容易。但是,它们通常会创建额外的抽象层,这些抽象层可能会掩盖底层提示和响应,从而使它们更难调试。当更简单的设置就足够时,它们也可能使人们倾向于增加复杂性。
我们建议开发人员首先直接使用LLM API:许多模式可以用几行代码实现。如果您确实使用框架,请确保您了解底层代码。对底层代码的错误假设是客户错误的常见来源。
构建模块、工作流程和智能体
1/ 增强型LLM
智能体系统的基本构建模块是使用增强功能(例如检索、工具和内存)增强的LLM。我们目前的模型可以主动使用这些功能——生成它们自己的搜索查询、选择适当的工具以及确定要保留的信息。
我们建议关注实施的两个关键方面:针对您的特定用例定制这些功能,并确保它们为您的LLM提供简单、有据可查的接口。虽然有很多方法可以实现这些增强功能,但一种方法是通过我们最近发布的模型上下文协议,该协议允许开发人员通过简单的客户端实现与不断增长的第三方工具生态系统集成。
在本博文的剩余部分,我们将假设每个LLM调用都可以访问这些增强功能。
2/ Workflow: 提示词的连接
提示链接将任务分解为一系列步骤,其中每个LLM调用处理前一个调用的输出。您可以在任何中间步骤添加程序化检查(请参阅下图中的“门”)以确保该过程仍在进行中。
何时使用此工作流程:此工作流程非常适合可以轻松干净地分解为固定子任务的情况。主要目标是通过使每个LLM调用成为更简单的任务来权衡延迟以获得更高的准确性。
提示链接有用的示例:
生成营销文案,然后将其翻译成不同的语言。
编写文档大纲,检查大纲是否符合某些标准,然后根据大纲编写文档。
3/ Workflow: 自动路由
路由对输入进行分类,并将其定向到专门的后续任务。此工作流程允许关注点分离,并构建更专业的提示。没有此工作流程,针对一种输入进行优化可能会损害其他输入的性能。
何时使用此工作流程:路由适用于存在最好单独处理的不同类别的复杂任务,并且可以通过LLM或更传统的分类模型/算法准确地处理分类的情况。
路由有用的示例:
将不同类型的客户服务查询(一般问题、退款请求、技术支持)定向到不同的下游流程、提示和工具。
将简单/常见的问题路由到较小的模型(例如Claude 3.5 Haiku),将困难/不常见的问题路由到功能更强大的模型(例如Claude 3.5 Sonnet)以优化成本和速度。
4/ Workflow:并行化
LLM有时可以同时处理一项任务,并以编程方式聚合其输出。此工作流程(并行化)以两种主要变体形式表现出来:
分段:将一项任务分解为并行运行的独立子任务。
投票:多次运行同一任务以获得不同的输出
何时使用此工作流程:当可以并行化划分的子任务以提高速度,或者当需要多个视角或尝试以获得更高的置信度结果时,并行化是有效的。对于具有多个考虑因素的复杂任务,当每个考虑因素由单独的LLM调用处理时,LLM通常表现更好,从而可以专注于每个特定方面。
并行化有用的示例:
分段:1/ 实施护栏,其中一个模型实例处理用户查询,而另一个模型实例筛选它们以查找不适当的内容或请求。这往往比让同一个LLM调用同时处理护栏和核心响应表现更好。2/ 自动化评估以评估LLM性能,其中每个LLM调用评估模型在给定提示下性能的不同方面。
投票:1/ 审查一段代码是否存在漏洞,其中几个不同的提示审查并在发现问题时标记代码。2/ 评估给定内容是否不适当,多个提示评估不同的方面或需要不同的投票阈值以平衡误报和误报。
5/ Workflow: 协调器-工作器模式
在协调器-工作器工作流程中,中央LLM动态分解任务,将其委托给工作器LLM,并综合它们的结果。
何时使用此工作流程:此工作流程非常适合您无法预测所需子任务的复杂任务(例如,在编码中,需要更改的文件数量以及每个文件中更改的性质可能取决于任务)。虽然它在地形上相似,但与并行化的主要区别在于其灵活性——子任务不是预定义的,而是由协调器根据特定输入确定的。
协调器-工作器有用的示例:
每次都对多个文件进行复杂更改的编码产品。
涉及从多个来源收集和分析信息以查找可能的 相关信息的搜索任务。
6/ Workflow: 评估器-优化器模式
在评估器-优化器工作流程中,一个LLM调用生成响应,而另一个LLM调用在循环中提供评估和反馈。
何时使用此工作流程:当我们有明确的评估标准,并且迭代改进提供可衡量的价值时,此工作流程尤其有效。良好拟合的两个标志是,首先,当人类清楚地表达他们的反馈时,LLM响应可以明显改进;其次,LLM可以提供此类反馈。这类似于人类作家在创作润色过的文档时可能经历的迭代写作过程。
评估器-优化器有用的示例:
文学翻译,其中存在翻译LLM最初可能无法捕捉到的细微差别,但评估器LLM可以提供有用的评论。
需要多轮搜索和分析才能收集全面信息的复杂搜索任务,其中评估器决定是否需要进一步搜索。
7/ 智能体Agent
智能体以人类用户的命令或互动讨论开始其工作。一旦任务明确,智能体就会独立计划和操作,可能会返回给人类以获取更多信息或判断。在执行过程中,智能体必须在每个步骤(例如工具调用结果或代码执行)从环境中获得“真实信息”,以评估其进展。然后,智能体可以在检查点或遇到障碍时暂停以获取人类反馈。任务通常在完成后终止,但也常见包含停止条件(例如最大迭代次数)以保持控制。
智能体可以处理复杂的任务,但它们的实现通常很简单。它们通常只是基于循环中的环境反馈使用工具的大型语言模型。因此,清晰和周到地设计工具集及其文档至关重要。我们在附录 2(“提示工程你的工具”)中扩展了工具开发的最佳实践。
何时使用智能体:智能体可用于难以或不可能预测所需步骤数量的开放性问题,以及无法硬编码固定路径的问题。大型语言模型可能会多次运行,你必须对其决策制定有一定的信任。智能体的自主性使其非常适合在可信环境中扩展任务。
智能体的自主性意味着更高的成本,以及潜在的累积错误。我们建议在沙盒环境中进行广泛的测试,并采取适当的保护措施。
智能体有用的示例:
用于解决 SWE-bench 任务的编码智能体,该任务涉及基于任务描述对多个文件进行编辑;
我们的“计算机使用”参考实现,其中 Claude 使用计算机来完成任务。
编码智能体的高级流程
组合和自定义这些模式
这些构建块不是规定性的。它们是开发人员可以塑造和组合以适应不同用例的常见模式。与任何大型语言模型功能一样,成功的关键是衡量性能并迭代实现。重申一遍:只有当它能明显改善结果时,你才应该考虑增加复杂性.
总结
在大型语言模型领域的成功不在于构建最复杂的系统。而在于构建适合你需求的系统。从简单的提示开始,通过全面的评估来优化它们,并且只有在更简单的解决方案不足时才添加多步骤智能体系统。
在实现智能体时,我们努力遵循三个核心原则:
保持智能体设计的简单性。
通过明确展示智能体的计划步骤来优先考虑透明度。
通过彻底的工具文档和测试来精心设计你的智能体-计算机接口 (ACI)。
框架可以帮助你快速入门,但当你转向生产时,不要犹豫减少抽象层并使用基本组件进行构建。通过遵循这些原则,你可以创建不仅功能强大,而且可靠、可维护并受到用户信任的智能体。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-26
AGI前夜!别再卷技术了,快来拯救世界!
2024-12-26
微软 OmniParser:如何让机器 “看懂” 手机电脑界面?
2024-12-26
Token已死?AI认知的新范式正在崛起
2024-12-26
字节和BAT,谁能缚住AI苍龙?
2024-12-26
大模型语义分析之嵌入(Embedding)模型
2024-12-26
微软CEO纳德拉给出AI时代的关键答案:先有组织进化,才有技术突破(附视频)
2024-12-26
10分钟了解大模型应用全貌 : 大模型应用架构(LLM application architecture)
2024-12-26
聊聊 Anthropic MCP (Model Context Protocol ) - 本地如何配置试用
2024-05-28
2024-08-13
2024-04-26
2024-08-21
2024-07-09
2024-06-13
2024-08-04
2024-04-11
2024-07-18
2024-07-01