作者|沙丘智库研究团队
来源|沙丘社区(www.shaqiu.cn)
OpenAI近期发布了《构建Agent的实践指南》,将OpenAI服务众多客户部署Agent的经验总结为实用且可操作的最佳实践,包括如何识别有前景的用例,如何设计Agent逻辑和编排模式,如何确保Agent安全、可靠和高效运行等,旨在为企业产品和工程团队构建Agent提供指导。
此外,沙丘智库近期也发布了《AI Agent架构设计模式研究报告》,通过对当前更多企业侧AI Agent落地实践的调研和总结,将当前最常见、最成熟且最重要的基于大模型的AI Agent的架构设计模式分为7大类、具体26种,企业级AI Agent系统构建提供参考。
以下为沙丘智库对OpenAI发布Agent指南的详细解读:
指南原文链接:https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf
01
Agent定义
OpenAI认为,Agent是“能够独立代表你完成任务的系统”。
Workflow(工作流)是一系列必须执行的步骤,以实现用户的目标,无论是解决客户服务问题、预订餐厅座位、提交代码更改还是生成报告。
那些集成了大语言模型但并未利用它们来控制workflow执行的应用程序——比如简单的聊天机器人、单次交互的大语言模型或者情感分类器——并不是Agent。
在《AI Agent架构设计模式研究报告》中,沙丘智库也将AI Agent定义为是一种具有自主性或半自主性的智能实体,能够利用人工智能技术在数字或物理环境中感知、决策、采取行动并实现目标。与Copilot、聊天机器人等相比,AI Agent能够自主规划和行动,实现用户预设的目标。
OpenAI认为,Agent具有如下核心特征,使其能够可靠且一致地代表用户行动:
第一,Agent利用大语言模型来管理工作流程的执行并做出决策。它能够识别workflow何时完成,并在需要时主动纠正其行为。如果出现故障,它可以停止执行并将控制权交还给用户;
第二,它可以访问各种工具,从而与外部系统进行交互——无论是为了获取上下文信息还是采取行动——并且能够根据workflow的当前状态动态选择合适的工具,保证始终在明确定义的限制范围内运行。
在《AI Agent架构设计模式研究报告》中,沙丘智库更加详细的定义了AI Agent的一组典型特征,旨在帮助企业明晰AI Agent的定义边界。
第一,角色泛化性。AI Agent的行为通常与特定的角色、个性或人设相关。角色泛化程度决定了Agent在功能上的通用性。高度泛化的Agent可以处理多种任务,但可能不够专业;而低泛化的Agent则更专注于特定任务,效率更高。
第二,主动性。越高级的AI Agent主动性越强,会主动从用户或工具中获取额外信息以实现目标,而不仅仅是被动响应用户的输入和指令,这使得它们在复杂任务中更具效率。
第三,规划能力。AI Agent能够“推理”如何在开发者、平台和环境定义的约束条件下最好地实现目标,并形成规划,将问题分解为任务。在基于大模型的AI Agent中,规划工作通常是向大模型提供目标和适当上下文来实现。高级Agent会逐步评估其达成目标的路径,并重新评估规划是否合理。简单Agent通常遵循开发者在创建时预设的规划,这使得它们的行为更可预测,但适应性降低。
第四,自主性。AI Agent可以在没有人类指令的情况下采取实现目标所需的一些或全部行动。需要注意的是,人类对行动的审查和批准并不妨碍Agent的自主性。如果一个AI Agent需要更多人类输入和指令才能实现目标,则说明其自主性较低。
第五,目标导向。AI Agent能够接受以目标或期望结果形式的指令,而不是明确的指令,然后通过规划和行动来实现目标。
第六,感知能力。Agent可以使用工具(如函数、API、动作和代码评估)来获取其运行环境的信息。这种感知可以帮助AI Agent为用户提供准确、及时和相关的信息,或者评估自己的行为或完成目标的进程。感知可能需要AI Agent及其代表的用户或系统的认证和授权。
第七,影响能力。AI Agent可以使用工具(如函数、API、动作和代码评估)来对其运行环境产生影响。AI Agent能够产生的影响决定了其行为或实现目标的能力。行动总是需要AI Agent及其代表的用户或系统的认证和授权。
第八,学习能力。AI Agent可以通过记忆从过去的经验中学习,从而优化未来的行动策略。
第九,记忆能力。AI Agent可以保留影响规划和行动的信息,包括关于当前任务的短期记忆,以及跨越多个任务且可能在用户之间或在特定领域内共享的长期记忆。
02
Agent的适用场景
在决定构建Agent之前,企业需要考虑相关用例是否需要通过Agent来解决。与传统自动化不同,Agent特别适合于那些传统确定性和基于规则的方法无法解决的工作流程。
以支付欺诈分析为例。传统的规则引擎就像一个检查清单,根据预设的标准标记交易。而基于LLM的Agent更像是经验丰富的调查员,会评估上下文、考虑细微的模式,并且即使没有明确违反规则,也能识别可疑活动。基于LLM的Agent具有推理能力,而这正是Agent能够有效管理复杂、模糊情况的原因。
企业在考虑Agent的适用场景时,可以优先考虑那些以前难以自动化的流程,尤其是传统方法遇到阻力的环节,包括:
第一,复杂决策。涉及细致判断、例外情况或依赖上下文决策的工作流,例如客户服务流中的退款审批;
第二,难以维护的规则。由于规则集庞大且复杂,导致系统难以管理,更新成本高昂或容易出错,例如进行供应商安全审查;
第三,高度依赖非结构化数据。涉及解释自然语言、从文档中提取含义或与用户进行对话式交互的场景,例如处理家庭保险索赔。
03
Agent的基础组件
在最基本的形式中,一个Agent由三个核心部分构成:
· 模型:驱动Agent推理和决策的LLM;
· 工具:Agent可用于执行操作的外部函数或API;
· 指令:定义Agent行为方式的明确指南和防护栏。
(1)选择模型
不同的模型在任务复杂性、延迟和成本方面有不同的优劣势,企业可能需要考虑在工作流的不同任务中使用多种模型。
并不是每个任务都需要最强大的模型,简单的检索或意图分类任务可以通过较小、更快的模型来处理,而更复杂的任务,比如决定是否批准退款,可能需要适用能力更强的模型。
企业在实践中的一种有效方式是:使用最强大的模型为每个任务构建Agent原型,以建立性能基线。然后尝试替换为较小的模型,看它们是否仍然能够达到可接受的结果。这样就不会过早地限制Agent的能力,并且可以识别出较小模型在哪些地方可能成功或失败。
总结来说,选择模型的原则很简单:
第一,设置评估以建立性能基线;
第二,使用现有的最佳模型以达到准确率目标;
第三,尽可能通过用较小的模型替换较大的模型来优化成本和延迟。
(2)定义工具
Agent可以通过使用底层的应用程序或系统的API来扩展能力。对于没有API的遗留系统,Agent可以依赖computer-use模型,像人类用户一样,通过网络和应用程序UI直接与这些应用程序和系统进行交互。
每个工具都应该有一个标准化的定义,从而实现工具与Agent之间灵活的多对多关系。文档完善、经过充分测试且可复用的工具能够提高可发现性、简化版本管理,并防止重复定义。
Agent通常需要如下三种类型的工具:
第一,数据,是指使Agent能够检索执行工作流所需的上下文和信息。例如查询交易数据库或CRM系统,读取PDF文档或搜索网页;
第二,行动,使Agent能够与系统交互以执行操作,例如向数据库添加新信息、更新记录或发送消息;
第三,编排,Agent本身可以作为其他Agent的工具。例如退款智能体、研究智能体、写作智能体。
随着所需工具数量的增加,需要考虑将任务分散到多个Agent中。
(3)配置指令
对于任何由LLM驱动的应用来说,高质量的指令都是必不可少的,但对Agent来说尤其关键。清晰的指令可以减少歧义,提高Agent的决策能力,从而实现更顺畅的workflow执行和更少的错误。
Agent指令的最佳实践如下:
· 使用现有文档:在创建流程时,使用现有的操作程序、支持脚本或策略文档来创建适合LLM的流程。例如,在客户服务中,流程可以大致映射到知识库中的各个文章;
· 提示Agent分解任务:从密集资源中提供更小、更清晰的步骤有助于最小化歧义,并帮助模型更好地遵循指令;
· 定义明确的操作:确保流程中的每一步都对应于特定的操作或输出。例如,一个步骤可能指示Agent询问用户的订单号或调用API以检索账户详情。明确操作(甚至是面向用户的消息措辞)可以减少解释错误的可能性。
· 捕捉边缘情况:现实世界的互动常常会产生决策点,比如当用户提供不完整信息或提出意外问题时如何继续。一个健全的流程会预见到常见的变化,并包括如何通过条件步骤或分支来处理他们的指令。
04
Agent的编排模式
有了以上基础组件后,企业可以考虑编排模式,从而使Agent能够有效地执行workflow。
尽管企业可能想要立即构建一个具有复杂架构的完全自主Agent,但通过渐进的方法可能会取得更大的成功。
一般来说,编排模式分为两类:
第一类,单Agent系统,其中单个模型配备适当的工具和指令,在一个循环中执行工作流;
第二类,多Agent系统,其中工作流的执行分布在多个相互协调的Agent之间。
(1)单Agent系统
单Agent可以通过逐步添加工具的方式来处理许多任务,这样既能保持复杂度可控,又能简化评估和维护。每增加一个新工具,都会扩展其能力,而不会过早地迫使企业协调多个Agent。
图:单Agent系统
每种编排方法都需要一个“运行”的概念,通常实现为一个循环,让Agent能够持续操作直到达到某个退出条件。常见的退出条件包括工具调用、特定的结构化输出、错误或达到最大轮数。
例如,在 Agents SDK 中,智能体使用Runner.run()方法启动,该方法会循环调用 LLM直到满足以下任一条件:
· 调用了一个最终输出工具,由特定的输出类型定义;
· 模型返回了一个没有任何工具调用的响应 (例如,直接回复用户的消息)。
while循环的概念对于Agent的功能至关重要。在多Agent系统中,可以有一系列工具调用和Agent之间的交接,但允许模型运行多个步骤,直到满足退出条件。
一种在不切换到多Agent框架的情况下也能管理复杂性的有效策略是使用提示模板。与其为不同的用例维护多个单独的提示,不如使用一个接受策略变量的灵活基础提示。这种模板方法可以轻松适应各种上下文,大大简化了维护和评估。当出现新的用例时,可以更新变量,而不是重写整个workflow。
OpenAI建议企业首先最大化单个Agent的能力,然后再考虑创建多Agent系统。更多的Agent可以直观地区分概念,但可能会引入额外的复杂性和开销,因此通常一个带有工具的单Agent就足够了。
对于许多复杂的工作流程,将提示和工具分散到多个Agent中可以提高性能和可扩展性。当Agent无法遵循复杂的指令或始终选择错误的工具时,可能需要进一步划分系统并引入更多不同的Agent。
划分Agent的指导原则包括:
· 复杂逻辑:当提示包含许多条件语句(多个if-then-else分支)时,并且提示模板难以扩展时,考虑将每个逻辑段分散到不同的Agent中;
· 工具过载:不仅仅考虑工具的数量,还要看它们的相似性或重叠性。如果通过提供描述性名称、清晰参数和详细描述来提高工具清晰度并不能改善性能,那么使用多个Agent。
(2)多Agent系统
虽然多Agent系统可以为特定的工作流和需求设计成多种方式,但在OpenAI服务客户的实践中,总结出了两种广泛适用的类别:
第一,管理者(Agent作为工具)。一个中心“管理者”Agent通过工具调用协调多个专门化的Agent,每个Agent处理特定任务或领域;
第二,去中心化(Agent交接任务)。多个Agent作为同等地位的合作伙伴,根据它们的专长将任务交接给彼此。
多Agent系统可以被建模为图,其中Agent被表示为节点。在管理者模式中,边代表工具调用,而在去中心化模式中,边代表在Agent之间转移执行的交接。
无论采用哪种编排模式,都适用相同的原则:保持组件的灵活性、可组合性,并由清晰、结构良好的提示驱动。
· 管理者模式
管理者模式赋予一个中心LLM——即“管理者”——通过工具调用无缝编排一个专门化Agent网络的能力。管理者不会丢失上下文或控制权,而是智能地在正确的时间将任务委托给正确的Agent,并轻松地将结果综合成一个连贯的交互。这确保了流畅、统一的用户体验,并且专业能力始终可以按需提供。
这种模式非常适合于只想让一个Agent来控制工作流执行并拥有访问用户权限的情况。
图:多Agent—管理者模式
· 去中心化模式
在去中心化模式中,Agent可以将工作流的执行“交接”给彼此。交接是一种单向转移,允许一个Agent将任务委托给另一个Agent。
这种模式涉及使用多个Agent平等地工作,其中一个Agent可以直接将工作流的控制权交接给另一个Agent。当不需要一个Agent来维持中心控制或综合处理,而是允许每个Agent根据需要接管执行并与用户互动时,这种模式是最优的。
图:多Agent—去中心化模式
05
防护栏
精心设计的防护措施有助于管理数据隐私风险(例如,防止系统提示泄露)或声誉风险(例如,执行与品牌一致的模型行为)。企业可以设置防护措施来应对已经确定的用例风险,并在发现新漏洞时增加额外的防护措施。
防护措施是任何基于LLM的部署的关键组成部分,但应与强大的身份验证和授权协议、严格的访问控制以及标准的软件安全措施相结合。
防护栏可以被视为一种分层防御机制。虽然单个防护栏不太可能提供足够的保护,但将多个专门的防护栏结合使用可以创建更具韧性的Agent。
在下图中,OpenAI结合了多种防护栏形式,包括基于LLM的防护栏、基于规则的护栏(如正则表达式) 以及 OpenAI moderation API 来审查用户输入。
图:防护栏
防护栏的类型如下:
· 相关性分类器:通过标记不相关的查询,确保Agent响应保持在预期范围内;
· 安全分类器:检测试图利用系统漏洞的不安全输入(越狱或提示注入);
· 个人身份信息(PII)过滤器:通过审查模型输出中任何潜在的个人身份信息,防止不必要的个人身份信息暴露;
· 内容审核:标记有害或不当输入 (仇恨言论、骚扰、暴力),以维持安全、尊重的互动;
· 工具安全防护:通过根据只读与写入权限、可逆性、所需账户权限和财务影响等因素分配低、中、高的风险等级,评估Agent可用的每个工具的风险。使用这些风险等级来触发自动化操作,例如在执行高风险功能前暂停进行防护措施检查,或在需要时升级到人工处理;
· 基于规则的防护:简单的确定性措施(黑名单、输入长度限制、正则表达式过滤器),用于防止已知威胁,如禁用词或SQL注入;
· 输出验证:通过提示工程和内容检查,确保响应符合品牌价值,防止可能损害品牌完整性的输出。
企业应设置防护措施来应已经确定的用例风险,并随着新漏洞的发现而增加额外的防护措施。以下启发式方法非常有效:
第一,专注于数据隐私和内容安全;
第二,根据遇到的现实世界的边缘情况和失败案例添加新的防护措施;
第三,在安全性和用户体验之间进行优化,随着Agent发展调整防护措施。
06
结论
Agent标志着工作流自动化的新时代,系统能够理解模糊性,跨工具采取行动,并以高度的自主性处理多步骤任务。与更简单的大语言模型应用不同,Agent端到端执行工作流,使其非常适合涉及复杂决策、非结构化数据或脆弱的基于规则的系统用例。
为了构建可靠的Agent,首先要有坚实的基础:将强大的模型与明确定义的工具和清晰、结构化的指令配对。使用与复杂性水平相匹配的编排模式,从单Agent开始,仅在需要时发展到多Agent系统。防护措施在每个阶段都至关重要,从输入过滤和工具使用到人为干预,确保Agent在生产环境中安全、可预测地运行。
成功部署的道路并非一蹴而就。从小处着手,与真实用户验证,并随着时间的推移增加能力。有了正确的基础和迭代方法,Agent可以提供真正的商业价值——不仅仅是自动化完成任务,而是以智能化和适应性的方式完成整个工作流。
▎更多研究(可前往“沙丘智库”查阅)
AI Agent架构设计模式研究报告
2025年中国消费品零售业大模型应用跟踪报告
2025年中国银行业大模型应用跟踪报告
国资央企DeepSeek大模型应用跟踪报告
银行业DeepSeek大模型应用跟踪报告
2025年中国保险业大模型应用跟踪报告
2024年AI Agent最佳实践报告
2024年“大模型+数据分析”最佳实践报告
...
*更多生成式AI研究可前往“沙丘智库”小程序查阅
*有任何需求可咨询客服微信:zimu738