跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Agent 的九种设计模式详解:原理、图解与代码实现

详细解析了 LLM Agent 的九种核心设计模式,包括 ReAct、Plan and Solve、REWOO、LLM Compiler、Basic Reflection、Reflexion、LATS、Self-Discover 及 Storm。文章阐述了每种模式的原理、架构组成及适用场景,并通过代码逻辑梳理揭示了结构化 Prompt 在 Agent 规划与工具调用中的关键作用。重点在于帮助技术决策者理解不同模式在处理简单任务、复杂规划、并行计算及自我反思时的差异,从而根据实际需求选择最优架构方案。

战神发布于 2025/2/7更新于 2026/9/464 浏览
Agent 的九种设计模式详解:原理、图解与代码实现

Agent 的九种设计模式详解:原理、图解与代码实现

引言

本文深入解析 LLM Agent 的九种核心设计模式,涵盖从基础的 ReAct 到复杂的 Tree Search 等架构。通过图解与代码逻辑梳理,帮助产品经理与技术团队理解不同模式的适用场景及实现原理。

1. ReAct 模式

ReAct (Reasoning + Acting) 是 LLM Agent 领域的奠基性论文之一,发表于 2022 年 10 月。在 ChatGPT 尚未普及的背景下,该研究提出让 LLM 学会使用工具,具有开创性意义。

1.1 ReAct 原理

在 ReAct 出现之前,推理 (Reasoning) 与行动 (Action) 往往是割裂的。例如,让孩子去厨房拿胡椒粉,若仅使用思维链 (CoT),孩子可能会列出所有步骤但不会根据反馈调整;而 ReAct 要求模型在执行每一步后都进行自我观察(Observation),形成'思考 - 行动 - 观察'的闭环。

  • Action: 执行具体操作(如查看台面)
  • Observation: 获取环境反馈(如台面无货)
  • Thought: 基于反馈决定下一步

这种机制相当于赋予了 Agent 短期记忆能力,使其能够维持上下文状态并动态调整策略。

1.2 ReAct 实现逻辑

通过 LangChain 等框架,ReAct 的实现流程可梳理为以下步骤:

  1. 生成提示词:将预设的 ReAct 模板(Question -> Thought -> Action -> Observation)与用户问题合并。Few-shot 示例需根据领域定制,例如将 Action 映射为具体的 API 接口调用。
  2. 调用大模型:发送提示词给 LLM,限制其输出 Thought 和 Action,通过 Stop Token 阻止其直接生成 Observation。
  3. 调用外部工具:解析 Action,将其转换为可执行的 API 请求。这通常涉及 Function Calling 功能,即微调模型以识别特定语言格式。
  4. 生成 Observation:API 返回结果后,将其转换为自然语言作为 Observation,连同之前的 Thought 和 Action 再次输入模型。
  5. 循环迭代:重复上述步骤,直到 Action 为 Finish。
  6. 完成输出:将最终 Observation 转化为自然语言回复用户。

落地 ReAct 场景需定制两项内容:Prompt 模板中的 Few-shot 内容及 Function Calling 的外部工具定义。Prompt 模板本质上是人类思维模式的结构化体现。

2. Plan and Solve 模式

Plan & Solve 模式适用于需要多步规划且计划可能动态调整的任务,例如'西红柿炒鸡蛋'。相比 ReAct,它更强调先制定全局计划,再逐步执行。

2.1 核心组件

  • 规划器 (Planner):负责生成多步计划。包含初始 Planner 和重规划器 (Replanner)。Replanner 会根据任务完成情况更新计划,提示词中需包含目标、原计划及已完成步骤。
  • 执行器 (Solver):接受查询和计划步骤,调用工具完成任务。

2.2 提示词策略

该模式旨在提升 Zero-Shot Chain-of-Thought 推理能力。提示词结构明确区分了计划阶段和执行阶段,确保模型在开始行动前已有清晰路径。

3. Reason without Observation (REWOO)

REWOO (Reason Without Observation) 是对 ReAct 的优化,旨在减少交互延迟。它去除了显式的 Observation 步骤,将上一步的输出隐式嵌入到下一步的执行单元中。

3.1 工作原理

常见于审批流等环环相扣的场景。例如:

  1. 从部门 A 获取文件 a。
  2. 持文件 a 去部门 B 办理文件 b。
  3. 持文件 b 去部门 C 办理文件 c。

其中,B 和 C 部门对文件的审查即为隐式的 Observation。提示词中会定义每一步依赖上一步的输出变量。

3.2 架构组成

  • Planner:生成相互依赖的链式计划。
  • Worker:遍历任务,分配输出给相应变量,并在后续调用时替换变量。
  • Solver:整合所有输出为最终答案。

4. LLM Compiler

LLM Compiler 的核心思想是通过并行 Function Calling 提高计算效率。原论文《An LLM Compiler for Parallel Function Calling》指出,对于独立子任务,应同时执行而非串行。

4.1 应用场景

例如查询'张译和吴京差几岁',Planner 可同时搜索两人的年龄,最后合并结果。这要求 Planner 生成有向无环图 (DAG) 来描述任务依赖关系。

4.2 架构组成

  • Planner:生成 DAG 任务编排。
  • Jointer:合并并行任务的执行结果。

5. Basic Reflection

Basic Reflection 类比于学生写作业、老师批改的过程。通过 Generator 生成内容,Reflector 提供建议,Generator 根据建议修改,形成迭代闭环。

5.1 交互模式

提示词复刻师生交互,强制模型在生成后进行自我批判或寻求外部反馈,从而提升输出质量。

6. Reflexion

Reflexion 是 Basic Reflection 的升级版,引入强化学习思路。论文《Reflexion: Language Agents with Verbal Reinforcement Learning》表明,通过引入外部数据评估回答准确性,反思内容更具建设性。

6.1 核心机制

  • Responder:自带批判式思考,检查回答是否有遗漏 (Missing) 或冗余 (Superfluous)。
  • Revisor:基于 Critique 上下文参考,对初始回答进行修改。

7. Language Agent Tree Search (LATS)

LATS 融合了 Tree Search、ReAct、Plan & Solve 以及 Reflection 机制。通过树搜索方式探索多种路径,并结合强化学习的 Reward 机制选择最佳结果。

7.1 公式化表达

LATS = Tree search + ReAct + Plan&solve + Reflection + 强化学习

7.2 架构特点

由多轮 Basic Reflection 组成,包含多个 Generator 和 Reflector,支持回溯和分支评估。

8. Self-Discover

Self-Discover 的核心是让大模型在更小粒度上对 Task 本身进行反思。不同于 Plan&Solve 关注任务补充,Self-Discover 关注任务定义的合理性。

8.1 组件结构

  • Selector:从众多反省方式中选择合适的策略。
  • Adaptor:应用选定的反省方式进行自我修正。
  • Implementor:反省后重新进行 Reasoning。

9. Storm

Storm 专注于从零生成维基百科级别的文章。主要思路是利用外部工具搜索生成大纲,再逐段丰富内容。

9.1 工作流程

  1. Topic 确定:明确文章主题。
  2. 大纲生成:利用搜索工具构建结构化大纲。
  3. 内容生成:根据大纲填充详细内容。

架构上包含大纲生成器和内容生成器两个核心模块。

总结

以上总结了目前主流的九种 Agent 设计模式。在实际落地中,没有绝对最好的模式,只有最适合场景的模式。产品经理应根据用户需求复杂度、实时性要求及资源成本进行选择:

  • 简单任务:ReAct 即可满足。
  • 复杂规划:Plan & Solve 或 LATS 更适合。
  • 高并发需求:LLM Compiler 可提升效率。
  • 高质量输出:Reflexion 或 Basic Reflection 可增强准确性。

建议查阅各设计模式的 Prompt 模板,理解其背后的思维模式,以便灵活组合应用于实际业务场景中。


注:文中涉及的代码逻辑参考自开源社区 LangChain 教程,具体实现细节可根据项目需求调整。

目录

  1. Agent 的九种设计模式详解:原理、图解与代码实现
  2. 引言
  3. 1. ReAct 模式
  4. 1.1 ReAct 原理
  5. 1.2 ReAct 实现逻辑
  6. 2. Plan and Solve 模式
  7. 2.1 核心组件
  8. 2.2 提示词策略
  9. 3. Reason without Observation (REWOO)
  10. 3.1 工作原理
  11. 3.2 架构组成
  12. 4. LLM Compiler
  13. 4.1 应用场景
  14. 4.2 架构组成
  15. 5. Basic Reflection
  16. 5.1 交互模式
  17. 6. Reflexion
  18. 6.1 核心机制
  19. 7. Language Agent Tree Search (LATS)
  20. 7.1 公式化表达
  21. 7.2 架构特点
  22. 8. Self-Discover
  23. 8.1 组件结构
  24. 9. Storm
  25. 9.1 工作流程
  26. 总结

更多推荐文章

查看全部
  • 多旋翼物流无人机节能轨迹规划及 Python 实现
  • 基于 Coze 抓取小红书视频并同步至飞书多维表实战
  • 如何用AI生成带文字的海报?Ideogram v3 2026最强文字渲染教程
  • 在 VSCode 中配置并使用 Clang-Format 进行 C++ 代码自动格式化
  • MCP 协议详解:与 Function Call 的区别及实战用法
  • 文心一言 4.5 开源模型深度解析:轻量化部署与中文场景优化
  • OpenCode:开源免费的 AI 编程智能体介绍
  • Visual Studio 中基于 libmodbus 的 C++ Modbus RTU 主站示例
  • AI 办公实战指南:7 套书籍助你精准提效与职场进阶
  • ModelScope 魔搭社区:AI 模型即服务平台介绍
  • LangChain 实战:工具调用与结构化输出
  • 前端实战:使用 HTML、CSS 和 JavaScript 实现网页井字棋
  • Rocky Linux 镜像下载及操作系统安装指南
  • VS Code Java 扩展插件 JDK 版本报错解决方案
  • Java 入门教程
  • 鸿蒙双端协同:从手机游戏到 PC 大屏的无缝体验
  • 自动化机器学习实战:从调参到模型部署指南
  • Obsidian+Claude Code打造本地AI知识库
  • WSL2 Ubuntu 部署 llama.cpp 指南
  • LangChain Agent Skills 实战:构建 GitHub 仓库分析能力

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online