【Agent 核心架构】深度解析主流执行逻辑:ReAct 与 Plan-and-Execute
在构建 AI Agent 的过程中,拥有强大的大脑(LLM)、记忆模块和工具库固然重要,但如何编排这些组件协同工作才是决定 Agent 智能程度的关键。如果说 LLM 是发动机,那么“执行逻辑”就是变速箱和传动系统,决定了动力如何转化为实际的行动。
本文将深入剖析当前 AI Agent 领域最主流的两种执行逻辑:ReAct(推理与行动)与 Plan-and-Execute(规划与执行)。我们将从原理、优劣势、实战对比等维度,带你彻底理解 Agent 是如何“思考”与“做事”的。
一、 ReAct 框架:像人类一样“边想边做”
ReAct (Reasoning + Acting) 由 Yao 等人提出,是目前应用最广泛的 Agent 执行框架。它的核心理念是模仿人类解决复杂问题时的直觉——一边推理,一边行动,根据行动的反馈调整下一步计划。

1. 核心机制:Thought-Action-Observation 循环
ReAct Agent 并不试图一次性规划所有步骤,而是通过一个紧密的迭代循环来推进任务:
-
Thought (思考):Agent 基于当前目标和已有的上下文,进行内部独白。它会分析现状、拆解问题,并决定下一步该做什么(例如:“为了回答这个问题,我需要先查询 X 的信息”)。
-
Action (行动):基于思考的结果,Agent 决定执行具体的动作。这通常意味着调用某个工具(如搜索引擎、计算器、API)或向用户提问。
-
Observation (观察):工具执行后返回的结果(如搜索到的网页摘要、API 返回的 JSON 数据、代码报错信息)。
-
Loop (循环):最关键的一步。Agent 将“观察”到的新信息纳入大脑,再次进入“思考”阶段。它会评估刚才的行动是否有用,是否解决了部分问题,并据此规划下一步,直到任务完成。
2. Prompt 设计技巧
ReAct 的魔力很大程度上源于 Prompt 的引导。一个优秀的 ReAct Prompt 通常包含:
-
思维链引导:指令包含
Think step-by-step,强迫 LLM 展示推理过程。 -
工具协议:明确告诉 LLM 如何以特定格式(如 JSON)输出要调用的工具和参数。
-
Few-shot Examples:提供几个“思考-行动-观察”的完整对话示例,让 LLM 模仿这种模式。
3. 优缺点分析
-
✅ 优点(灵活性与透明度):
-
高适应性:能处理动态环境。如果第一步搜索失败,Agent 会在下一步思考中尝试更换关键词,而不是卡死。
-
解决知识密集型任务:擅长通过多次搜索“顺藤摸瓜”获取信息。
-
可解释性:Thought 步骤留下了详细的决策日志,便于开发者调试。
-
-
❌ 缺点(效率与成本):
-
Token 消耗大:每一步行动都需要完整的 LLM 推理,对于长流程任务,成本高昂。
-
循环陷阱:如果模型不够聪明,可能会在两个步骤间反复横跳,陷入死循环。
-
错误累积:前一步的错误思考可能误导后续所有步骤。
-
二、 Plan-and-Execute 框架:运筹帷幄的“战略家”
与 ReAct 的“摸着石头过河”不同,Plan-and-Execute (P-a-E) 采取了一种更结构化、工程化的思路:先制定完美计划,再严格按计划执行。

1. 核心机制:两阶段分离
P-a-E 将任务拆解为两个截然不同的阶段,通常由不同的模块(甚至不同的 LLM)负责:
-
Planning (规划阶段):
-
Planner (规划器):接收用户目标,利用 LLM 的推理能力生成一个完整的、分步骤的执行清单(Plan)。
-
特点:这个阶段只动嘴(生成文本),不动手(不调用工具)。
-
-
Execution (执行阶段):
-
Executor (执行器):解析上述计划,按顺序一步步调度工具执行。
-
特点:严格遵守清单,上一步完成才进行下一步,通常涉及状态在步骤间的传递。
-
2. 优缺点分析
-
✅ 优点(结构性与效率):
-
执行高效:规划阶段可能很复杂,但执行阶段通常只需要简单的逻辑或轻量级模型,减少了 LLM 的频繁调用。
-
适合长流程任务:对于步骤明确、依赖关系清晰的任务(如“写一份报告并发送邮件”),P-a-E 不容易跑偏。
-
可预测性强:行为基本由初始计划决定,更易于控制。
-
-
❌ 缺点(僵化):
-
适应性差:一旦计划生成,如果中间某个步骤遇到意外(如 API 挂了),Agent 往往无法像 ReAct 那样灵活变通,除非设计了极其复杂的重规划(Re-planning)机制。
-
鲁棒性依赖计划质量:如果第一步计划就漏掉了关键环节,后续执行做得再好也是徒劳。
-
三、 巅峰对决:ReAct vs. Plan-and-Execute
为了更直观地选择适合你场景的架构,我们将两者进行多维度对比:
| 对比维度 | ReAct (Reasoning + Acting) | Plan-and-Execute (P-a-E) |
| 核心逻辑 | 迭代循环:思考 $\rightarrow$ 行动 $\rightarrow$ 观察 $\rightarrow$ 再思考 | 线性流程:生成完整计划 $\rightarrow$ 顺序执行 |
| 适应性 (Adaptability) | 高:根据实时反馈动态调整策略 | 低:严格按预定计划执行,对意外脆弱 |
| 鲁棒性 (Robustness) | 中:易受单步错误影响,可能陷入循环 | 高:只要计划合理,流程非常稳定 |
| 适用场景 | 探索性强、信息不全、需要实时调整的任务 | 步骤明确、流程长、依赖关系清晰的标准任务 |
| 成本与延迟 | 较高:LLM 调用次数多,串行等待 | 较低:规划一次,执行阶段可优化 |
| 行为特征 | 像“探索者”,行为具有涌现性 | 像“工程师”,行为具有确定性 |
四、 实战演练:以“天气查询与提醒”为例
让我们通过一个具体任务来模拟两种 Agent 的行为差异。
任务:“查询北京今天的天气,如果温度低于 10 度,提醒我穿外套。”
1. ReAct Agent 的执行轨迹
-
Thought 1: 用户想知道天气并求提醒。我需要先查北京天气。
-
Action 1: 调用
Weather_API(city="Beijing")。 -
Observation 1: 返回
{"temp": 8, "condition": "Cloudy"}。 -
Thought 2: 我拿到了天气,温度是 8 度。用户说低于 10 度要提醒。8 < 10,条件满足。
-
Action 2: 调用
Print_Tool("北京今天 8 度,请记得穿外套。")。 -
Observation 2: 输出成功。
-
Thought 3: 任务已完成。
-
Final Answer: 北京今天 8 度,请穿外套。
观察:ReAct 根据 API 返回的“8度”这个实时信息,动态决定了下一步是“提醒”而不是“忽略”。
2. Plan-and-Execute Agent 的执行轨迹
-
Planner (规划): 生成计划列表:
-
调用天气工具查询北京天气。
-
提取温度数值。
-
判断温度是否小于 10 度。
-
如果是,生成提醒信息;否则,生成无提醒信息。
-
-
Executor (执行):
-
执行步骤 1 -> 成功。
-
执行步骤 2 -> 成功。
-
执行步骤 3 -> 逻辑判断。
-
执行步骤 4 -> 输出结果。
-
观察:P-a-E 生成了一个刚性的程序逻辑。如果 API 返回格式变了,导致步骤 2 提取失败,整个流程可能会中断,而 ReAct 可能会思考“读取失败,我尝试另一种解析方式”。
五、 总结与展望
理解 ReAct 和 Plan-and-Execute 是迈向高级 Agent 开发的第一步。
-
如果你需要一个能处理未知错误、自我纠正的智能助手,ReAct 是首选,目前 LangChain 和 LlamaIndex 等框架的默认 Agent 多基于此模式。
-
如果你需要处理标准化、长流程的工作流(如每日自动化报表),Plan-and-Execute 能提供更高的稳定性和效率。
在实际的复杂生产环境中,我们甚至会将两者结合:用 ReAct 来处理计划中的每一个具体步骤,从而兼顾宏观规划的结构性和微观执行的灵活性。这是构建更高级 Agent 系统的重要思路。
参考文献:
-
Yao, S., et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models.
-
Wang, L., et al. (2023). A Survey on Large Language Model based Autonomous Agents.
更多推荐



所有评论(0)