1.8 Agentic设计模式
介绍四种核心的Agentic设计模式:反思、工具使用、规划和多智能体协作。
1.8 Agentic设计模式
智能体工作流的核心思想是将复杂的任务分解为一系列基础“构建模块”(building blocks),然后通过特定的设计模式将这些模块组合、串联起来,从而构建出能够处理复杂问题的系统。
一、反思 (Reflection)
- 核心概念: 让模型对自己的输出进行检查、评估和改进。
- 工作流程:
- 初始生成: 模型根据任务要求生成一个初步结果(如代码)。
- 自我评估/外部评估: 将该结果作为输入,再次提示同一个或另一个模型,要求其对结果进行批判性分析(如检查正确性、风格、效率,并给出改进建议)。
- 迭代优化: 将评估反馈(如“第5行有bug”或“单元测试失败”)提供给模型,让它基于反馈生成一个更好的版本。
- 循环往复: 此过程可以多次迭代,直到达到满意的质量。
- 关键点:
- 这是一种非常有效的性能提升技术,虽然不能保证100%完美,但能带来显著的性能提升。
- “反思”可以由同一个模型完成,也可以引入一个专门扮演“审查者”角色的独立模型(即多智能体协作的雏形)。
- 评估标准可以是客观的(如代码是否能运行),也可以是主观的(如代码风格)。
二、工具使用 (Tool Use)
-
核心概念: 赋予语言模型调用外部工具或函数的能力,以扩展其功能边界。
-
工作流程:
- 识别需求: 模型在处理任务时,判断需要调用哪个工具。
- 调用工具: 模型生成调用该工具的指令或参数。
- 执行与返回: 工具执行操作(如搜索网络、计算数学公式),并将结果返回给模型。
- 整合结果: 模型利用工具返回的结果来完成最终任务。
-
工具类型举例:
- 信息收集: Web search, Wikipedia, Database access.
- 分析计算: Code Execution, Wolfram Alpha, Bearly Code Interpreter.
- 生产力: Email, Calendar, Messaging.
- 图像处理: Image generation, Image captioning, OCR.
-
关键点: 工具使用极大地增强了模型的能力,使其不再局限于文本生成,而是能与现实世界互动并解决更广泛的问题。
三、规划 (Planning)
-
核心概念: 让模型自主决定完成一个复杂任务所需的步骤序列,而不是由开发者硬编码。
-
工作流程:
- 任务理解: 模型接收一个复杂请求(如“生成一张女孩读书的图片,姿势与示例图中的男孩相同”)。
- 路径规划: 模型自动分解任务,决定需要调用哪些工具以及调用的顺序。
- 例如:先用 openpose 模型提取男孩的姿势 -> 再用 google/vit 模型根据该姿势生成女孩的图片 -> 接着用 vit-gpt2 模型描述图片 -> 最后用 fastspeech 模型将描述转为语音。
- 执行: 按照规划的步骤依次执行。
-
关键点:
- 这种方式比硬编码的流程更灵活,但控制难度更大,也更具实验性。
- 它允许模型在面对新任务时,自行构思解决方案,有时会产生令人惊喜的结果。
四、多智能体协作 (Multi-agent collaboration)
- 核心概念: 雇佣多个具有不同专长的角色(智能体)协同工作,共同完成一个复杂项目。
- 工作流程:
- 角色分配: 为不同的智能体分配特定角色(如研究员、市场专员、编辑)。
- 分工合作: 各个智能体根据自己的角色和能力,执行相应的子任务。
- 沟通协调: 智能体之间相互沟通、传递信息,共同推进项目。
多智能体系统在许多复杂任务上优于单智能体系统:
| 任务 | 单智能体 | 多智能体 |
|---|---|---|
| 人物传记撰写 | 66.0% | 73.8% |
| 多模态理解 (MMLU) | 63.9% | 71.1% |
| 国际象棋走子 | 29.3% | 45.2% |
- 关键点:
- 多智能体协作通常能产生比单个智能体更好的结果,尤其在处理复杂任务(如撰写人物传记、下棋)时。
- 研究表明,多智能体系统在多项任务上的表现优于单智能体系统。
- 其缺点是更难控制和调试,因为无法提前预知各个智能体的行为。