本文是「Agent 基本概念」系列第三篇。
前两篇我们分别讲清了 Agent 是什么 和 Agent 由哪些组件构成。这一篇进入 Agent 最核心也最容易被混淆的部分:Agent 到底怎么“想”和“做” 。
系列规划:① 什么是 AI Agent → ② 核心组件 → ③ 决策与规划 → ④ 记忆与工具 → ⑤ 架构与落地。
前言:Agent 的“思维方式”决定了它的能力上限
上一篇文章中,我们把 Agent 拆成了感知、LLM/规划、记忆、工具、行动、执行循环六个组件。其中,“规划”和“执行循环”之间的配合方式,直接决定了 Agent 在真实任务中的表现。
同样是调用 LLM + 工具,不同的决策与规划模式会带来截然不同的结果:
- 有的 Agent 一步一想,边做边看,灵活但容易绕路;
- 有的 Agent 先谋后动,全局规划,稳定但不够灵活;
- 有的 Agent 做完就反思,能自我改进,但成本更高;
- 有的 Agent 同时探索多条路径,质量更高,但计算代价大。
这四种模式,就是当前 Agent 领域最主流的 ReAct、Plan-and-Execute、Reflexion、Tree of Thoughts。
这篇文章的主线是:
从“如何做决策”出发,理解四种主流规划模式的设计思想、工作流程和适用场景。
一、ReAct:边想边做,推理与行动交替
1.1 为什么需要 ReAct?
在 ReAct 出现之前,LLM 做推理主要靠 Chain-of-Thought(CoT) ,让模型生成推理链再给出答案。但 CoT 有一个根本问题:模型完全依赖内部知识,不与外部世界交互,无法获取实时信息,也无法根据环境反馈调整推理方向。
另一方面,也有研究让 LLM 在环境中直接行动(比如文本游戏、网页导航),但这些方法缺乏高层推理和长期记忆,无法抽象地规划目标。
ReAct 的核心洞察是: 推理和行动不是二选一,而是应该交替进行、相互增强。
1.2 ReAct 的工作机制
ReAct 让 LLM 以交错方式生成推理轨迹(reasoning traces)和任务特定动作(actions)。
一个典型的 ReAct 循环包含三步:
- Thought(思考) :模型推理当前状态,决定下一步该做什么;
- Action(行动) :调用工具或执行动作;
- Observation(观察) :获取行动结果,作为下一步推理的输入。
这个循环不断重复,直到任务完成。
关键机制:推理轨迹帮助模型归纳、跟踪和更新行动计划,同时处理异常情况;动作则允许模型与外部环境交互以获取额外信息。两者的协同让模型能够进行动态推理,在执行过程中创建、维护和调整计划。
1.3 一个直观的例子
假设用户问:“苹果遥控器是什么时候发布的?”
ReAct Agent 的轨迹可能是:
Thought 1: 我需要查找 Apple Remote 的发布信息
Action 1: Search[Apple Remote]
Observation 1: 找到相关页面,但信息不完整
Thought 2: 我需要进一步确认发布时间
Action 2: Search[Apple Remote release date]
Observation 2: 找到确切日期
Thought 3: 信息足够,可以回答了
每一步的推理都基于上一步的观察,推理和行动紧密耦合。
1.4 优势与局限
优势:
- 灵活,能根据中间结果动态调整策略;
- 每一步都有推理痕迹,可解释性好;
- 适合需要边查边做的探索性任务。
局限:
- 每步都要调用 LLM,延迟和成本较高;
- 容易陷入局部决策,缺乏全局视角;
- 在长任务中容易偏离目标。
适用场景:工具调用、API 查询、网页导航等需要频繁与环境交互的任务。ReAct 在开源模型上的最低门槛约为 4B 参数。
二、Plan-and-Execute:先谋后动,规划与执行分离
2.1 为什么需要 Plan-and-Execute?
随着 Agent 要处理的任务越来越复杂,ReAct 的“一步一想”模式暴露出两个问题:
- 提示词越来越长:每一步都要把全部历史塞进上下文,token 成本急剧上升;
- 缺乏全局规划:ReAct 容易“只见树木不见森林”,在复杂多步任务中效率低下。
LangChain 团队在 2023 年提出了 Plan-and-Execute 架构,核心思想是:把高层规划与短期执行分开。
2.2 Plan-and-Execute 的工作机制
- Plan steps to take
- For step in steps:
determine the proper tools or best course of action
Planner(规划器) :
- 接收用户目标,一次性制定完整的多步子任务列表;
- 几乎总是使用语言模型,利用其推理能力处理歧义和边缘情况;
- 输出可以解析为有序步骤列表。
Executor(执行器) :
- 接收 Planner 生成的单个高层步骤;
- 决定使用哪些工具来完成这一步(可能一步完成,也可能需要多步);
- 在 LangChain 的初始实现中,Executor 本身就是一个 Action Agent。
关键设计:Planner 和 Executor 解耦,可以分别选型——Planner 用强模型保证规划质量,Executor 用快模型降低成本。中间结果可以回灌给 Planner,必要时触发 Re-Plan 修订后续计划。
2.3 一个直观的例子
用户说:“帮我策划一次团队建设活动。”
Plan-and-Execute Agent 先制定计划:
Plan:
1. 确定团队规模和预算
2. 搜索适合的场地
3. 比较价格和评价
4. 确认日期和预订
5. 制定活动流程
6. 发送通知
然后逐项执行,每步可以由 Executor Agent 自主选择合适的工具。
2.4 优势与局限
优势:
- 全局视角,规划质量高;
- 规划与执行解耦,成本可控;
- 适合步骤明确、有强依赖关系的任务。
局限:
- 一次性规划可能不适应动态环境变化;
- 静态预规划在面对动态反馈时鲁棒性不足;
- 规划本身需要一次较大的 LLM 调用。
适用场景:ETL 流程、自动化工作流、需要审计的合规任务、批量处理任务。研究表明 Plan-and-Execute 在逻辑推理任务中优于 ReAct,因为多条件评估和分支逻辑更适合全局规划。
三、Reflexion:从失败中学习,用语言做强化
3.1 为什么需要 Reflexion?
ReAct 和 Plan-and-Execute 都有一个共同问题:做完就结束,不会从错误中学习。如果一次尝试失败,下一次还是从零开始,犯同样的错误。
传统强化学习通过更新模型权重来学习,但需要大量训练样本和昂贵的微调。
Reflexion 的核心洞察是: 不更新权重,用语言反馈来强化 Agent。
3.2 Reflexion 的工作机制
Reflexion 由三个核心组件构成:
Actor(执行者) :
- 基于当前任务和累积的反思记忆,生成行为轨迹;
- 本质上是执行任务的 Agent。
Evaluator(评估者) :
- 判断 Actor 的输出是否成功;
- 可以是二值信号(通过/失败)、启发式规则,或另一个 LLM 的评判。
Self-Reflection(自反思模型) :
Reflexion 可以整合各种类型的反馈信号(标量值或自由语言),以及各种来源(外部或内部模拟),在顺序决策、编码、语言推理等任务上都取得了显著提升。
3.3 核心数据
Reflexion 在 HumanEval 编码基准上达到了 91% pass@1 准确率,超过了当时 GPT-4 的 80%。
但代价也很明显。一项涵盖 300 个任务的对比研究发现,Reflexion 虽然达到了最高的单次准确率(74.1%),但其成本是 ReAct-GPT-o3 的 5.12 倍,而准确率仅高出 5.4 个百分点。在成本归一化后,Plan-and-Execute 以 71.9% 的效果和 4.1 倍更低的成本,在性价比上优于 Reflexion。
3.4 优势与局限
优势:
- 能跨轮次积累经验,持续改进;
- 不需要模型微调,即插即用;
- 适合对输出质量要求极高的任务。
局限:
- 成本显著高于其他模式;
- 延迟较高,不适合实时场景;
- 反思质量依赖 Evaluator 的准确性。
适用场景:事实问答、代码生成、需要准确性的高风险任务。MLflow 的指南建议:当输出准确性是首要指标、延迟是次要考虑时,选择 Reflexion。
四、Tree of Thoughts:同时探索多条路径
4.1 为什么需要 Tree of Thoughts?
CoT 让模型沿着一条推理链走下去,但人类解决难题时不是这样的。人类会同时考虑多个方案,评估后选择最有希望的。
ToT 的灵感来自认知科学中的 “System 2” 思维——慢速、审慎、有意识的问题求解模式。它将问题求解建模为在组合问题空间中进行搜索,用树结构表示。
4.2 ToT 的四个支柱
1. 如何将中间过程分解为思维步骤?
- 根据问题性质决定思维粒度;
- 一个“思维”可以是一个词、一个方程,或一整段。
2. 如何从每个状态生成候选思维?
- 采样:从 CoT 提示中独立同分布地采样;
- 提议:用“propose prompt”顺序生成候选。
3. 如何启发式地评估状态?
- 独立评估每个状态的价值(0-10 分);
- 或对多个状态进行投票。
4. 使用什么搜索算法?
- BFS(广度优先搜索) :适合树深度有限的情况;
- DFS(深度优先搜索) :适合顺序决策链;
- Beam Search:每层保留 top-B 节点,在质量和计算之间取得平衡。
4.3 一个直观的例子
以“Game of 24”为例(用 4 个数字通过四则运算得到 24):
输入: 4, 9, 10, 13
思维分解:
步骤1: 13 - 9 = 4 (剩余 4, 4, 10)
步骤2: 10 - 4 = 6 (剩余 4, 6)
步骤3: 4 * 6 = 24 (答案: 24)
ToT 不会只走一条路径,而是同时展开多条候选路径,评估每条路径的可行性,剪掉死路,保留最有希望的分支。
4.4 优势与局限
优势:
- 能探索多条推理路径,质量更高;
- 有回溯能力,不会一条路走到黑;
- 适合需要“深思熟虑”的高价值任务。
局限:
- 计算成本极高,需要多次生成和评估;
- 延迟高,不适合实时场景;
- 实现复杂度远高于 ReAct。
适用场景:需要审慎问题求解的高价值任务,如数学证明、复杂规划、创意写作等。
五、四种模式的横向对比
| 维度 | ReAct | Plan-and-Execute | Reflexion | Tree of Thoughts |
|---|---|---|---|---|
| 核心思想 | 推理与行动交替 | 先规划后执行 | 从失败中反思学习 | 同时探索多条路径 |
| 决策粒度 | 一步一想 | 全局规划 + 逐步执行 | 轮次级反思 | 树级搜索 |
| Token 成本 | 低-中 | 中(规划一次,执行多次) | 高(多轮迭代) | 极高(多次生成+评估) |
| 延迟 | 快 | 中 | 中-慢 | 慢 |
| 迭代次数 | 3-10 | 取决于计划步数 | 3-8 | 取决于搜索深度 |
| 最低模型要求 | 4B+ | 中等 | 8B+ | 高 |
| 优势 | 灵活、可解释 | 全局视角、成本可控 | 自我改进、准确率高 | 质量最高、可回溯 |
| 局限 | 缺乏全局规划 | 静态规划鲁棒性差 | 成本高、延迟大 | 计算代价极大 |
| 最佳场景 | 工具调用、API查询 | 工作流、合规任务 | 代码生成、事实问答 | 数学、复杂规划 |
数据参考:ReAct 和 Reflexion 的迭代次数和模型门槛来自 Reactive Agents 的选型指南;成本对比数据来自 CLEAR 评估研究。
六、如何选型:决策树与组合策略
6.1 选型决策树
任务是否需要与外部工具/环境频繁交互?
├── 是 → 任务步骤是否明确、可预先规划?
│ ├── 是 → Plan-and-Execute
│ └── 否 → ReAct
└── 否 → 任务是否需要极高准确性?
├── 是 → 是否需要探索多条路径?
│ ├── 是 → Tree of Thoughts
│ └── 否 → Reflexion
└── 否 → 直接 LLM 调用或简单 CoT
6.2 组合策略
这四种模式不是互斥的,实际系统中经常组合使用:
ReAct + Reflexion:在 ReAct 循环结束后加入反思环节,让 Agent 从失败中学习。社区实践建议,无论用 ReAct 还是 Plan-and-Execute,都建议结合 Reflection Loop,因为它对最终输出质量至关重要。
Plan-and-Execute + ReAct:Planner 制定全局计划,Executor 内部用 ReAct 模式执行每个子任务。这是 LangChain 的默认实现方式。
Plan-and-Execute + Reflexion:在 Re-Plan 环节引入反思机制,根据执行反馈修订计划。
三层架构:Plan(全局规划)→ ReAct(逐步执行)→ Reflexion(轮次反思),适合高复杂度、高价值任务。
6.3 一个重要的工程判断
一项 2025 年的研究给出了一个值得注意的结论:ReAct 在单次成功率上可能表现更好,但在多次运行的稳定性(pass@8)上,通用 Agent 的可靠性会显著下降。ReAct-GPT4 的 pass@1 为 72.3%,但 pass@8 降至 58.3%,下降了 19.4 个百分点。
这说明:选型不能只看单次成功率,还要看可靠性。专家评估也表明,CLEAR 框架(综合效果、成本、可靠性、合规性、效率)与部署就绪度的相关性(ρ=0.83)远高于仅看效果(ρ=0.41)。
一位专家的评价很到位:“一个 70% 成功率但稳定运行的 Agent,比一个 80% 成功率但时好时坏的 Agent 更容易部署。”
七、总结
回到主线:
Agent 的决策与规划模式,决定了它“怎么想”和“怎么做”。
四种主流模式,各有其设计哲学:
| 模式 | 一句话概括 |
|---|---|
| ReAct | 边想边做,灵活应变 |
| Plan-and-Execute | 先谋后动,全局规划 |
| Reflexion | 吃一堑长一智,用语言做强化 |
| Tree of Thoughts | 多路探索,深思熟虑 |
选型时记住三条原则:
- 任务复杂度决定模式:简单任务直接回答或单次工具调用;中等任务用 ReAct;复杂任务用 Plan-and-Execute;高价值任务考虑 Reflexion 或 ToT。
- 成本和延迟是硬约束:Reflexion 和 ToT 的质量更高,但成本可能是 ReAct 的数倍。要根据业务场景做权衡。
- 组合优于单选:Plan-and-Execute + ReAct + Reflexion 的三层架构,往往是生产环境的最优解。
下一篇,我们会深入 Agent 的记忆与工具:短期记忆、长期记忆、向量数据库、MCP、Function Calling,看看 Agent 如何“记住”和“动手”。
本文是「Agent 基本概念」系列第 3 篇。
如果你觉得有帮助,欢迎点赞、收藏、关注。
下一篇:《Agent 的记忆与工具:从上下文窗口到 MCP》