AI Agent 主流设计模式详解
一份关于 AI Agent 核心设计模式的图文讲解:用一张动态图 + 文字,讲清楚 ReAct、Reflection、Planning、Tool Use、Multi-Agent 这五种被主流框架反复验证的范式,以及它们如何组合与选型。
上图循环演示了下文五种模式的工作流程,配合文字阅读效果最佳。
目录
- [Agent 的本质](#Agent 的本质)
- 一、ReAct:推理与行动交织
- 二、Reflection:自我反思与迭代
- 三、Planning:先规划,再分解执行
- [四、Tool Use:用外部工具扩展能力边界](#四、Tool Use:用外部工具扩展能力边界)
- 五、Multi-Agent:多智能体协作
- 如何组合与选型
- 速查表
Agent 的本质
一个 Agent 区别于普通的"单次问答 LLM",在于它能够 自主决定下一步做什么,并在一个循环里反复"思考---行动---观察",而不是一锤子买卖。所谓"设计模式",就是组织这个循环的几种被反复验证有效的套路。
Andrew Ng 把其中最重要的几个总结为 agentic 的四大支柱(反思、工具调用、规划、多智能体),再加上工程上最常落地的 ReAct,基本覆盖了当前主流框架(LangGraph、AutoGen、CrewAI、OpenAI Agents SDK 等)的底层思想。
一、ReAct:推理与行动交织
ReAct 是最基础也最常用的范式,名字来自 Rea soning + Acting。它的循环是:
Thought(思考)→ Action(行动/调用工具)→ Observation(观察结果)→ Thought ... → Answer
模型先生成一段"思考",判断现在该干什么;然后产出一个"行动",通常是调用某个工具;工具返回的结果作为"观察"被读回上下文;模型据此再思考下一步。这样一圈圈推进,直到它认为问题已经解决,才输出最终答案。
它的价值在于把"想"和"做"显式分开,让模型每走一步都有依据,也让整个过程可追踪、可调试。绝大多数 ReAct 类的应用,本质就是一个带工具的 while 循环。
二、Reflection:自我反思与迭代
Reflection 引入了一个"评审"角色:
Generator(生成草稿)→ Critic(找问题、给改进意见)→ 重写 → 再评审 ... → 最终输出
生成器先产出草稿,评估器(可以是同一个模型换个 prompt,也可以是另一个模型)专门挑毛病、给出具体的改进意见,然后把意见反馈回去重写。如此往复几轮,输出质量逐轮抬升。
它特别适合对正确性、风格、规范要求高的任务,比如写代码后自查 bug、长文写作的润色、生成内容的合规审查。代价是要多花若干轮 token 和时间,所以通常会设一个 最大轮数 或 质量阈值 来收敛。
三、Planning:先规划,再分解执行
面对一个复杂目标,直接让模型一步到位往往不可靠。Planning 模式让 Agent 先当"规划器",把大目标拆成一串有序的子任务,再逐个执行,最后把各步结果汇总:
Goal(复杂目标)→ Planner(拆解为子任务)→ [Step 1, Step 2, Step 3 ...] → Aggregate(汇总)
常见变体有 Plan-and-Execute (先一次性出完整计划再执行)和更灵活的 动态重规划(执行中发现偏差就回头改计划)。
这种"分而治之"显著提升了长程任务的成功率,也让失败更容易定位到具体某一步。难点在于计划本身的质量,以及计划赶不上变化时的纠错能力。
四、Tool Use:用外部工具扩展能力边界
LLM 本身不会算精确的数、查不到实时信息、也动不了真实系统。Tool Use(也叫 Function Calling)让模型学会在合适的时机,选择合适的工具,把请求发出去,再把结果拿回来融入推理:
LLM ──调用──▶ [ 网络检索 | 数学计算 | 代码执行 | 数据库 | 外部 API ]
◀──结果──
它是几乎所有实用 Agent 的地基:ReAct 里的"行动"就是工具调用,规划里的每个子任务执行也多半靠工具完成。关键设计点是 给每个工具清晰的描述,让模型知道它能干什么、何时该用。
五、Multi-Agent:多智能体协作
当一个任务横跨多个领域,单个 Agent 的上下文和角色就会过载。Multi-Agent 把工作拆给多个专精的角色,由一个协调者(Orchestrator)编排任务分配与结果汇总:
┌────────────── Orchestrator(协调者)──────────────┐
▼ ▼ ▼
研究员 / 查资料 程序员 / 写代码 审阅员 / 评审
各 Agent 之间也能直接传递消息协作。它的好处是每个 Agent 职责单一、prompt 更聚焦,且天然支持并行;代价是编排复杂、通信开销大、容易出现"踢皮球"或信息丢失。常见拓扑有 协调者---工人 (Orchestrator-Worker)、流水线 ,以及 群聊式辩论。
如何组合与选型
这些模式不是互斥的,真实系统几乎总是叠加使用:
- Tool Use 是底座
- ReAct 是把工具串起来的最小循环
- 在它之上叠 Reflection 提升质量
- 叠 Planning 处理长程任务
- 任务足够大时再上 Multi-Agent 做分工
一个粗略的选型直觉:
| 任务特征 | 推荐模式 |
|---|---|
| 简单查询 / 单步操作 | 纯 Tool Use |
| 需要多步推理 | ReAct |
| 对输出质量敏感 | ReAct + Reflection |
| 目标复杂、步骤多 | Planning(+ Tool Use) |
| 跨领域、需要并行或不同专长 | Multi-Agent |
核心原则:每加一层,能力上去的同时,延迟、成本和不可控性也都会上升,够用就好。
速查表
| 模式 | 一句话 | 核心循环 | 主要代价 |
|---|---|---|---|
| ReAct | 想一步、做一步、看结果 | Thought → Action → Observation | 步数多时上下文膨胀 |
| Reflection | 写完自己挑错再改 | Generate → Critic → Refine | 多轮 token / 时间 |
| Planning | 先拆解再逐个击破 | Goal → Plan → Execute → Aggregate | 计划质量与纠错 |
| Tool Use | 调外部工具补短板 | LLM ⇄ Tools | 工具设计与可靠性 |
| Multi-Agent | 多角色分工协作 | Orchestrator ⇄ Workers | 编排与通信开销 |
参考:
~图文均为原创整理,动态图见 agent-patterns.gif。可自由用于学习与分享。~
