「吴恩达Agentic AI 模块1简报」Agentic AI工作流
概要
本文档综合分析了吴恩达关于“代理式AI工作流”(Agentic AI Workflows)的核心理念与实践方法。代理式AI是一种强大的应用程序构建范式,它将复杂的任务分解为多个步骤,通过迭代、反思和工具使用来执行,从而获得远超传统单次提示方法的性能和成果。
核心要点
- 代理式工作流的定义: 与一次性生成结果的模式不同,代理式工作流是一个多步骤过程,AI系统通过规划、执行动作、反思和修正来完成任务。这类似于人类处理复杂问题的方式,例如先写大纲、再做研究、然后起草、最后修改。
- 性能的巨大飞跃: 采用代理式工作流带来的性能提升,可能超过模型本身的代际升级。数据显示,为GPT-3.5模型应用代理式工作流后,其在编程基准测试中的表现甚至可以超越未使用该工作流的更强大的GPT-4模型。
- 自主性光谱: 代理式系统存在一个从“低自主性”到“高自主性”的光谱。低自主性系统(步骤由工程师预先设定)更易于控制、更可靠,已在商业中广泛应用。高自主性系统(由LLM自行决定步骤)则更具实验性,也更难预测。
- 成功的关键技能: 构建高效代理式工作流的两大核心技能是任务分解(将复杂任务拆解为LLM或工具可执行的小步骤)和严格的评估(“Evals”),通过系统化的错误分析和性能追踪来驱动迭代改进。
- 四大设计模式: 构建代理式工作流主要依赖四种关键的设计模式:
- 反思 (Reflection): 让LLM检查并批判自身的输出,从而进行迭代改进。
- 工具使用 (Tool Use): 赋予LLM调用外部函数(如网络搜索、代码执行、数据库查询)的能力。
- 规划 (Planning): LLM自主决定完成任务所需的步骤顺序。
- 多代理协作 (Multi-Agent Collaboration): 模拟一个团队,让多个具有不同角色的AI代理协同工作。
- 广泛的应用价值: 代理式工作流已成功应用于多种场景,包括深度研究报告撰写、客户支持、发票处理和复杂的法律文件分析。对于许多项目而言,没有代理式工作流,其实现将“不可能”。
1. 代理式AI工作流:定义与理念
1.1 核心概念:超越单次生成
传统的与大型语言模型(LLM)交互的方式是“直接生成”,即用户提供一个提示,LLM一次性地从头到尾生成完整的文本,这如同要求一个人“不使用退格键一次性写完一篇文章”。
代理式AI工作流则截然不同。它将一个复杂的任务分解为一系列的子任务,并以迭代的方式完成。
- 典型流程(以撰写研究报告为例):
- 生成大纲: 首先,让LLM为主题撰写一个初步大纲。
- 研究与信息收集: 接着,让LLM决定需要进行哪些网络搜索,并调用搜索API来获取相关网页内容。
- 起草初稿: 基于收集到的信息,LLM撰写第一版草稿。
- 反思与修订: LLM(或另一个AI代理)阅读初稿,识别需要修改或补充研究的部分。
- 人类介入(可选): 在关键环节(如事实核查),可以设计让AI请求人类审核的步骤。
- 最终修订: 综合所有反馈,完成最终报告。
吴恩达指出,这种迭代过程虽然耗时更长,但最终产出的工作成果质量“要好得多”。
1.2 “代理式 (Agentic)”术语的由来
吴恩达创造并推广“代理式 (agentic)”这个形容词,是为了避免AI社区中关于“什么是真正的代理 (agent)”的无谓争论。他认为,与其将系统划分为“是代理”或“不是代理”的二元对立,不如承认系统可以在不同程度上表现出“代理行为”。这一术语的引入,旨在将焦点从定义辩论转移到构建有价值的系统上。
2. 自主性光谱:从预定步骤到动态决策
代理式AI系统并非只有一种形态,而是存在于一个从低到高的自主性光谱上。
自主性程度 | 特征 | 优点 | 缺点 | 应用场景 |
---|---|---|---|---|
低自主性 | 1. 步骤顺序由工程师预先硬编码。 2. 工具调用是确定性的。 3. LLM的主要作用是生成文本内容。 |
可控性强、结果可预测、可靠性高 | 灵活性差、无法处理未知流程 | 大多数当前商业应用,如发票处理、标准客户问询。 |
半自主性 | 1. LLM可以在一定范围内做出决策。 2. 可以从预定义的工具集中选择并调用工具。 |
兼具一定的灵活性和可控性。 | 复杂性增加、灵活性差、无法处理未知流程 | 灵活性差、无法处理未知流程 |
高自主性 | 1. LLM自主决定完成任务的完整步骤顺序。 2. 甚至可以自主编写新的函数或创建新工具。 3. 流程是动态且不确定的。 |
极高的灵活性、能处理未知和复杂的任务 | 可控性差、结果难以预测、可靠性较低,更具实验性 | 自动网页浏览、复杂问题解决等前沿研究领域 |
吴恩达强调,位于“低自主性”一端的应用同样非常有价值,并且是当今许多企业正在构建和部署的系统。
3. 代理式工作流的核心优势
代理式工作流不仅仅是为了提升任务完成的可能性,还带来了多方面的显著优势。
3.1 性能的巨大提升
代理式工作流能够释放现有模型的更大潜力,其带来的性能提升甚至可能超过模型本身的代际升级。
- 编程基准测试 (Human Eval) 数据:
- GPT-3.5 (非代理式): 准确率 40%
- GPT-4 (非代理式): 准确率 67%
- GPT-3.5 (代理式): 准确率远高于非代理式的GPT-3.5,甚至超越非代理式的GPT-4。
- GPT-4 (代理式): 准确率进一步大幅提升。
吴恩达指出:“从一代模型到下一代模型的提升是巨大的,但这种差异仍然没有在上一代模型上实施代理式工作流所带来的差异大。”
3.2 并行化处理以提升效率
对于需要大量信息收集的任务,代理式工作流可以通过并行处理来显著缩短时间,这比人类的顺序处理方式更高效。
- 示例: 在撰写研究报告时,AI可以:
- 并行生成搜索词: 同时运行3个LLM实例,为不同的研究角度生成搜索查询。
- 并行下载网页: 同时下载所有搜索结果中的9个相关网页。
- 整合信息: 将所有下载的内容一次性提供给LLM进行综合分析和撰写。
3.3 模块化设计带来的灵活性
代理式工作流的架构天然具有模块化特性,允许开发者轻松地添加、更新或替换其中的组件,以优化整体性能。
- 可替换的组件包括:
- 工具: 可以更换不同的网络搜索引擎(如Google, Bing, Tavily, u.com),或加入新闻搜索、学术搜索等新工具。
- 模型: 可以在工作流的不同步骤尝试使用不同的LLM或LLM提供商,以找到针对特定子任务的最佳模型。
4. 实际应用场景分析
代理式工作流的应用范围广泛,其实现难度取决于任务流程的清晰度。
4.1 流程清晰、易于实现的应用
当业务流程有明确的步骤或标准操作程序(SOP)时,将其编码为代理式工作流相对容易且可靠。
- 发票处理:
- 输入PDF发票,调用PDF转文本API。
- LLM判断文件是否为发票。
- 若是,则提取关键字段(账单方、金额、截止日期等)。
- 调用API将提取的信息更新到数据库。
- 基础客户订单查询:
- 输入客户邮件,LLM提取订单详情。
- LLM选择调用订单数据库API,查询订单状态。
- LLM起草回复邮件。
- LLM调用“请求审核”工具,将草稿送交人工审核后发送。
4.2 流程未知、更具挑战性的应用
当处理任务所需的步骤无法预先确定时,系统需要具备规划能力,这使得实现难度和不可预测性都大大增加。
- 高级客户服务:
- 多重查询: 客户询问“是否有黑色或蓝色的牛仔裤?”,AI需要规划并执行两次库存数据库查询,然后综合结果进行回复。
- 复杂逻辑: 客户要求退货,AI需要规划一系列步骤:验证购买记录 -> 检查退货政策(如30天内、未使用) -> 若符合条件,则生成退货标签并更新数据库状态。
4.3 前沿与实验性应用
这是当前研究的热点领域,虽然潜力巨大,但可靠性尚不足以用于关键任务。
- 计算机使用(Web浏览):
- 任务: 代理被要求查询特定航班的座位情况。
- 行为: 代理自主操作网络浏览器,访问航空公司网站,在页面上点击元素、填写表单。当遇到困难时(如网站加载问题),它能自主决定切换到Google Flights等其他网站继续执行任务。
- 挑战: 当前的代理在处理网页加载缓慢、理解复杂网页布局方面仍存在困难,可靠性不高。
5. 任务分解:构建工作流的基石
任务分解是将一个宏大、复杂的任务拆解成一系列离散、可执行步骤的过程,是构建代理式工作流的核心技能。
5.1 任务分解的原则
分解过程的核心问题是:“这个步骤能否由一个LLM、一段简短的代码、一个函数调用或一个工具来完成?”
- 迭代式分解:
- 从一个简单的流程开始(例如:写大纲 -> 搜索 -> 写文章)。
- 评估结果。如果结果不理想(例如,文章感觉“脱节”),则选择其中一个步骤进行再分解。
- 例如,将“写文章”进一步分解为:“写初稿” -> “反思需要修改的部分” -> “修订草稿”。
- 持续这个过程,直到每个子步骤都足够简单,并且可以由可用的构建模块可靠地执行。
5.2 可用的构建模块
开发者在设计工作流时,可以调用多种构建模块:
- AI模型:
- 大型语言模型(LLM)或多模态模型(LMM)。
- 专用AI模型(如PDF转文本、文本转语音)。
- 软件工具:
- API调用: 网络搜索、获取天气数据、发送邮件、检查日历等。
- 信息检索: 从数据库或大型文本库中检索信息(RAG)。
- 代码执行: 让LLM编写代码并在本地环境中运行,以执行计算或复杂操作。
6. 评估(Evals):驱动性能提升的关键
吴恩达强调,能否推动一个纪律严明的评估流程,是区分高效和低效的代理式工作流开发者的最大预测因素之一。
6.1 评估流程
评估不应在开发前凭空想象,而应在系统构建后,通过观察实际输出来发现问题。
- 构建并观察: 先构建一个初始版本的工作流。
- 手动检查错误: 阅读大量输出,寻找不符合预期的行为。例如,发现客户服务代理在回复中“意外地提到了竞争对手”。
- 定义评估指标: 针对发现的问题,创建可追踪的评估指标。
6.2 评估方法
- 客观标准评估:
- 方法: 对于可以明确判断对错的问题,编写代码来进行自动检查。
- 示例: 编写一个脚本,搜索输出文本中是否包含一个已知的竞争对手名单,并计算其出现频率。
- 主观标准评估(LLM as Judge):
- 方法: 对于难以用代码衡量的质量问题(如文章的“思想深度”),使用另一个LLM作为“裁判”来打分。
- 示例: 提示一个裁判LLM:“请为以下文章的质量打分,范围从1到5”。
- 注意事项: 吴恩达提醒,让LLM在1到5的尺度上直接打分的效果并不理想,后续课程会介绍更可靠的技术。
6.3 评估的类型
- 端到端评估: 衡量整个代理工作流最终输出的质量。
- 组件级评估: 衡量工作流中单个步骤输出的质量。
- 错误分析: 深入检查工作流的中间输出(称为“traces”),以准确定位问题根源。
7. 四大核心代理式设计模式
这些设计模式是组合构建模块以形成复杂工作流的常用策略。
7.1 反思 (Reflection)
该模式让LLM检查并改进其自身的输出。
- 流程:
- LLM生成一个初步输出(如一段代码)。
- 将该输出重新输入给同一个LLM,并附上批判性指令(例如,“请仔细检查这段代码的正确性、风格和效率,并提出建设性批评”)。
- LLM会识别出自身之前输出中的问题或缺陷。
- 基于这些批评,LLM生成一个改进后的新版本。
- 变体: 也可以使用一个专门的“批评家代理”(即一个被提示扮演批评角色的LLM)来完成此任务。
7.2 工具使用 (Tool Use)
赋予LLM调用外部函数或API的能力,以获取信息或执行操作,极大地扩展了其能力范围。
- 示例:
- 信息获取: 当被问及“根据评测,最好的咖啡机是哪款?”时,LLM可以调用网络搜索工具来查找最新信息。
- 精确计算: 当被问及复杂的数学问题时,LLM可以调用代码执行工具来编写并运行代码,得出精确答案。
- 应用交互: LLM可以调用API来操作邮件、日历等生产力应用。
7.3 规划 (Planning)
在该模式下,LLM不再遵循预设的步骤,而是自主决定完成任务所需的行动序列。
- 示例 (Hugging GPT):
- 用户请求: “请生成一张女孩读书的图片,姿势与另一张图片中的男孩相同,然后用你的声音描述这张新图片。”
- LLM的规划:
- 调用姿态确定模型,分析男孩的姿势。
- 调用文本到图像生成模型,生成具有相同姿势的女孩图片。
- 调用文本到语音模型,生成对新图片的语音描述。
- 特点: 具备规划能力的代理更难控制,更具实验性,但有时能产生令人惊喜的结果。
7.4 多代理协作 (Multi-Agent Collaboration)
该模式通过模拟一个人类团队,让多个具有不同角色和专长的AI代理协同工作来完成复杂任务。
- 示例:
- 虚拟软件公司 (ChatDev): 一个由多个AI代理(如CEO、程序员、测试员、设计师)组成的虚拟团队,能够协同完成软件开发任务。
- 营销手册撰写:
- 研究员代理: 负责进行在线研究。
- 营销员代理: 负责撰写营销文案。
- 编辑代理: 负责对文案进行编辑和润色。
- 特点: 难以控制,但研究表明,对于某些复杂任务(如撰写传记),多代理协作可以产生更好的结果。