OpenAI 34页最佳构建Agent实践

news2025/7/15 14:15:23

penAI发布O4,也发布34页最佳构建Agent实践,值得阅读。

什么是Agent?


传统软件使用户能够简化和自动化工作流程,而代理能够以高度独立的方式代表用户执行相同的工作流程。

代理是能够独立地代表您完成任务的系统。

工作流程是必须执行的一系列步骤,以满足用户的目标,无论是解决客户服务问题、预订餐厅、提交代码更改,还是生成报告。

集成了大型语言模型(LLM)但不使用它们来控制工作流程执行的应用程序——例如简单的聊天机器人、单轮LLM或情感分类器——不是代理。

更具体地说,代理具有以下核心特征,使其能够可靠且一致地代表用户行动:

1、 它利用LLM来管理工作流程执行并做出决策。它能够识别工作流程何时完成,并可以在需要时主动纠正其行动。在失败的情况下,它可以停止执行并将控制权转回给用户.

2、它可以访问各种工具来与外部系统交互——既可以收集上下文,也可以采取行动——并根据工作流程的当前状态动态选择适当的工具,始终在明确定义的护栏内运行.

何时构建代理?



构建代理需要重新思考您的系统如何做出决策和处理复杂性。与传统自动化不同,代理特别适合那些传统的确定性和基于规则的方法不足的工作流程。

考虑支付欺诈分析的例子。传统的规则引擎像清单一样工作,根据预设标准标记交易。相比之下,LLM代理更像一个经验丰富的调查员,评估上下文,考虑微妙的模式,并识别可疑活动,即使没有违反明确的规则。这种细微的推理能力正是使代理能够有效管理复杂、模糊情况的原因。

在评估代理可以增加价值的地方时,优先考虑以前抵制自动化的工作流程,特别是传统方法遇到摩擦的地方:

### 01 复杂决策

涉及细微判断、例外或上下文敏感决策的工作流程,例如客户服务工作流程中的退款审批。

### 02 难以维护的规则

由于广泛和复杂的规则集而变得笨重的系统,使更新成本高或容易出错,例如执行供应商安全审查。

### 03 严重依赖非结构化数据

涉及解释自然语言、从文档中提取意义或与用户进行对话交流的场景,例如处理家庭保险索赔。

在决定构建代理之前,验证您的用例是否能够明确满足这些标准。否则,确定性解决方案可能就足够了。

# Agent设计基础



在其最基本的形式中,一个agent由三个核心组件组成:

01 模型 驱动agent推理和决策的大语言模型

02 工具 agent可以用来执行操作的外部函数或API

03 指令 明确定义agent行为方式的指导和约束



## 选择您的模型



不同的模型在任务复杂性、延迟和成本方面具有不同的优势和权衡。正如我们将在下一节关于编排的内容中看到的,您可能需要考虑在工作流中的不同任务使用各种模型。

并非每项任务都需要最智能的模型——简单的检索或意图分类任务可能由更小、更快的模型处理,而像决定是否批准退款这样的更困难任务可能会从更强大的模型中受益。

一种行之有效的方法是使用每个任务的最强大模型构建代理原型,以建立性能基准。从那里开始,尝试引入较小的模型,看看它们是否仍能达到可接受的结果。这样,您就不会过早地限制代理的能力,并且可以诊断较小模型在哪些方面成功或失败。

总之,选择模型的原则很简单:
01 设置评估以建立性能基准
02 专注于使用最佳可用模型达到您的准确性目标
03 通过在可能的情况下用较小的模型替换较大的模型来优化成本和延迟


## 定义工具



工具通过使用底层应用程序或系统的API来扩展代理的能力。对于没有API的传统系统,代理可以依靠计算机使用模型通过网页和应用程序UI直接与这些应用程序和系统交互——就像人类一样。

每个工具都应该有一个标准化的定义,使工具和代理之间能够建立灵活的多对多关系。文档完善、经过充分测试且可重用的工具可以提高可发现性,简化版本管理,并防止冗余定义。

广义而言,代理需要三种类型的工具:

| 类型 | 描述 | 示例 |
| --- | --- | --- |
| 数据 | 使代理能够检索执行工作流所需的上下文和信息。 | 查询交易数据库或CRM等系统,阅读PDF文档,或搜索网络。 |
| 动作 | 使代理能够与系统交互,执行诸如向数据库添加新信息、更新记录或发送消息等操作。 | 发送电子邮件和短信,更新CRM记录,将客户服务工单转交给人工处理。 |
| 编排 | 代理本身可以作为其他代理的工具——参见编排部分的管理器模式。 | 退款代理,研究代理,写作代理。 |


## 配置指令



高质量的指令对于任何基于LLM的应用都至关重要,对于智能代理尤为关键。
清晰的指令可减少歧义并改善代理决策,从而实现更流畅的
工作流程执行和更少的错误。

## 代理指令的最佳实践

| 最佳实践 | 描述 |
|---------|------|
| 使用现有文档 | 创建例程时,使用现有的操作程序、支持脚本或政策文档来创建适合LLM的例程。例如,在客户服务中,例程可以大致对应知识库中的单个文章。 |
| 提示代理分解任务 | 从密集资源中提供更小、更清晰的步骤有助于最小化歧义,并帮助模型更好地遵循指令。 |
| 定义明确的行动 | 确保例程中的每一步都对应一个特定的行动或输出。例如,一个步骤可能指示代理询问用户的订单号,或调用API检索账户详情。明确说明行动(甚至是面向用户的消息的措辞)可减少解释错误的空间。 |
| 捕捉边缘情况 | 现实世界的交互经常会产生决策点,例如当用户提供不完整信息或提出意外问题时如何继续。健壮的例程会预见常见变化,并包含如何通过条件步骤或分支(例如在缺少必要信息时的替代步骤)来处理它们的指令。 |

编排

护栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2337945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HOOPS Exchange 与HOOPS Communicator集成:打造工业3D可视化新标杆!

一、概述 在工业3D开发、BIM建筑、数字孪生和仿真分析等高端应用场景中,数据格式复杂、模型体量庞大、实时交互体验要求高,一直是困扰开发者的难题。Tech Soft 3D旗下的HOOPS Exchange和HOOPS Communicator,正是解决这类问题的黄金搭档。二者…

C#进阶学习(六)单向链表和双向链表,循环链表(下)循环链表

目录 📊 链表三剑客:特性全景对比表 一、循环链表节点类 二、循环链表的整体设计框架 三、循环列表中的重要方法: (1)头插法,在头结点前面插入新的节点 (2)尾插法实现插入元素…

Unity使用Newtonsoft.Json本地化存档

我是标题 1.依赖包2.原理:3.代码4.可用优化5.数据加密 1.依赖包 Newtonsoft请在PacakgeManager处下载。 参考:打工人小棋 2.原理: 把要存储的对象数据等使用JsonConvert.SerializeObject(object T)进行序列化为字符串,并且通过…

2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题

青少年软件编程(Python)等级考试试卷(六级) 分数:100 题数:38 答案解析:https://blog.csdn.net/qq_33897084/article/details/147341458 一、单选题(共25题,共50分) 1. 在tkinter的…

Python 浮点数运算之谜:深入解析round(0.675, 2)等输出异常

一、问题背景:当浮点数运算遇见 “反直觉” 结果 在 Python 开发中,以下代码输出常让开发者困惑: print(round(0.675, 2)) # 预期0.67,实际0.68||预期0.68,实际0.67 print(0.1 0.2) # 预期0.3&…

【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8

🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…

极狐GitLab 注册限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 注册限制 (BASIC SELF) 您可以对注册实施以下限制: 禁用新注册。新注册需要管理员批准。需要用户电子邮件确认。…

利用大模型实现地理领域文档中英文自动化翻译

一、 背景描述 在跨国性企业日常经营过程中,经常会遇到专业性较强的文档翻译的需求,例如法律文书、商务合同、技术文档等;以往遇到此类场景,企业内部往往需要指派专人投入数小时甚至数天来整理和翻译,效率低下&#x…

SGFormer:卫星-地面融合 3D 语义场景补全

论文介绍 题目:SGFormer: Satellite-Ground Fusion for 3D Semantic Scene Completion 会议:IEEE / CVF Computer Vision and Pattern Recognition Conference 论文:https://www.arxiv.org/abs/2503.16825 代码:https://githu…

Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化

一、软件介绍 文末提供源码和程序下载学习 Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化。Trinity 提供性能分析和 XAI 工具,非常适合深度学习系统或其他执行复杂分类或解码的模型。 二、软件作用和特征 Trinity 通过结合具有超维感知能力的不同交…

城市街拍暗色电影胶片风格Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 城市街拍暗色电影胶片风格 Lr 调色,是借助 Adobe Lightroom 软件,为城市街拍的人像或场景照片赋予独特视觉风格的后期处理方式。旨在模拟电影胶片质感,营造出充满故事感与艺术感的暗色氛围,让照片仿佛截取于某部充满张力…

加密和解密(大语言模型)

看到很多对matlab的p文件加密方案感兴趣的。网络上技术资料比较少,所以,我让大语言模型提供一些概论性质的东西,转发出来自娱自乐。期望了解p文件加密的复杂度,而不是一定要尝试挑战加密算法。 但根据大语言模型提供的材料&#…

双轮驱动能源革命:能源互联网与分布式能源赋能工厂能效跃迁

在全球能源结构深度转型与“双碳”目标的双重驱动下,工厂作为能源消耗的主力军,正站在节能变革的关键节点。能源互联网与分布式能源技术的融合发展,为工厂节能开辟了全新路径。塔能科技凭借前沿技术与创新实践,深度探索能源协同优…

React 更新 state 中的数组

更新 state 中的数组 数组是另外一种可以存储在 state 中的 JavaScript 对象,它虽然是可变的,但是却应该被视为不可变。同对象一样,当你想要更新存储于 state 中的数组时,你需要创建一个新的数组(或者创建一份已有数组…

ubantu18.04HDFS编程实践(Hadoop3.1.3)

说明:本文图片较多,耐心等待加载。(建议用电脑) 注意所有打开的文件都要记得保存。 第一步:准备工作 本文是在之前Hadoop搭建完集群环境后继续进行的,因此需要读者完成我之前教程的所有操作。 第二步&am…

MySQL快速入门篇---库的操作

目录 一、创建数据库 1.语法 2.示例 二、查看数据库 1.语法 三、字符集编码和校验(排序)规则 1.查看数据库支持的字符集编码 2.查看数据库支持的排序规则 3.查看系统默认字符集和排序规则 3.1.查看系统默认字符集 3.2.查看系统默认排序规则 ​…

【已更新完毕】2025华中杯B题数学建模网络挑战赛思路代码文章教学:校园共享单车的调度与维护问题

完整内容请看文末最后的推广群 构建校园共享单车的调度与维护问题 摘要 共享单车作为一种便捷、环保的短途出行工具,近年来在高校校园内得到了广泛应用。然而,共享单车的运营也面临一些挑战。某高校引入共享单车后,委托学生对运营情况进行调…

NO.92十六届蓝桥杯备战|图论基础-最小生成树-Prim算法-Kruskal算法|买礼物|繁忙的都市|滑雪(C++)

一个具有n个顶点的连通图,其⽣成树为包含n-1条边和所有顶点的极⼩连通⼦图。对于⽣成树来说,若砍去⼀条边就会使图不连通图;若增加⼀条边就会形成回路。 ⼀个图的⽣成树可能有多个,将所有⽣成树中权值之和最⼩的树称为最⼩⽣成树…

第十四节:实战场景-何实现全局状态管理?

React.createElement调用示例 Babel插件对JSX的转换逻辑 React 全局状态管理实战与 JSX 转换原理深度解析 一、React 全局状态管理实现方案 1. Context API useReducer 方案(轻量级首选) // 创建全局 Context 对象 const GlobalContext createConte…

数据驱动、精准协同:高端装备制造业三位一体生产管控体系构建

开篇引入 鉴于集团全面推行生产运营体建设以及对二级单位生产过程管控力度逐步加强,某高端装备制造企业生产部长王总正在开展新的一年企业生产管控规划工作,为了能够更好地进行体系规划与建设应用,特邀请智能制造专家小智来进行讨论交流。 王…