AI Agent 自主决策三大范式:ReAct、Plan-and-Execute 与 Reflexion 深度对比

2 阅读9分钟

AI Agent 自主决策三大范式:ReAct、Plan-and-Execute 与 Reflexion 深度对比

在 2026 年的 AI Agent 领域,如何让大模型不仅能"思考",还能"行动"并"反思",已成为技术落地的核心命题。本文将深入解析当前最主流的三大决策范式,帮你找到最适合自己场景的方案。

一、为什么需要 Agent 决策范式?

大语言模型(LLM)虽然拥有强大的推理能力,但在实际应用中面临两大瓶颈:

  1. 知识时效性局限 - 模型训练数据有截止日期,无法获取实时信息
  2. 行动能力缺失 - 模型只能生成文本,无法直接操作外部系统

Agent 架构的核心价值在于:让 LLM 获得"手"和"脚",能够调用工具、访问外部数据、执行实际任务。而决策范式则定义了 Agent 如何规划、执行和优化任务流程。


二、三大范式详解

2.1 ReAct:思考与行动的交织

**ReAct(Reasoning + Acting)**由 Google Research 在 2022 年提出,是最经典的 Agent 决策范式。

核心思想

ReAct 将推理(Reasoning)和行动(Acting)紧密结合,形成交替进行的循环:

  • 思考(Thought):分析当前状态,规划下一步
  • 行动(Action):执行具体工具调用
  • 观察(Observation):获取行动结果
Thought → Action → Observation → Thought → Action → Observation → ... → Answer
代码示例
from langchain.agents import AgentType, initialize_agent
from langchain.tools import Tool

# 定义工具
tools = [
    Tool(
        name="搜索",
        func=search_engine.run,
        description="用于搜索实时信息"
    ),
    Tool(
        name="计算器", 
        func=calculator.run,
        description="用于数学计算"
    )
]

# 初始化 ReAct Agent
agent = initialize_agent(
    tools, 
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# 执行查询
agent.run("2026年奥斯卡最佳影片是什么?它的票房是多少?")
执行流程示例
步骤类型内容
1Thought用户询问 2026 年奥斯卡最佳影片,我需要搜索最新信息
2Action调用搜索工具,查询"2026 奥斯卡最佳影片"
3Observation返回结果:《阿诺拉》(Anora) 获得最佳影片
4Thought已获取影片名称,现在需要查询票房数据
5Action调用搜索工具,查询"阿诺拉 票房"
6Observation返回全球票房约 1.2 亿美元
7Thought已获得全部信息,可以回答用户
8Final Answer2026 年奥斯卡最佳影片是《阿诺拉》,全球票房约 1.2 亿美元
适用场景

单步决策明确的任务 - 每个步骤的下一步行动比较清晰
需要实时信息的问答 - 搜索、计算、数据查询
工具调用链较短 - 通常 3-5 步内可完成

局限性

长任务效率低 - 复杂任务需要大量交互步骤
缺乏全局规划 - 容易陷入局部最优,无法回溯调整
上下文窗口限制 - 长链式思考占用大量 token


2.2 Plan-and-Execute:先规划后执行

Plan-and-Execute范式将任务分解为两个明确阶段:先制定完整计划,再逐步执行。

核心思想
用户输入 → 规划器(生成完整计划)→ 执行器(按计划执行)→ 结果输出

与 ReAct 的"边想边做"不同,Plan-and-Execute 是"先想后做":

  1. 规划阶段:分析任务,生成详细的步骤清单
  2. 执行阶段:按顺序执行每个步骤,收集结果
  3. 整合阶段:汇总所有执行结果,生成最终答案
代码示例
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate

# 规划器
plan_prompt = PromptTemplate(
    input_variables=["task"],
    template="""你是一个任务规划专家。请将以下任务分解为具体的执行步骤:

任务:{task}

请输出 JSON 格式的步骤列表:
{{
    "steps": [
        "步骤1:...",
        "步骤2:...",
        "步骤3:..."
    ]
}}"""
)

planner = LLMChain(llm=llm, prompt=plan_prompt)

# 执行器
executor_prompt = PromptTemplate(
    input_variables=["step", "context"],
    template="""执行以下步骤:{step}

上下文信息:{context}

请执行该步骤并返回结果。"""
)

executor = LLMChain(llm=llm, prompt=executor_prompt)

# 主流程
def plan_and_execute(task):
    # 1. 规划
    plan = planner.run(task)
    steps = json.loads(plan)["steps"]
    
    # 2. 执行
    context = ""
    results = []
    for step in steps:
        result = executor.run(step=step, context=context)
        results.append(result)
        context += f"\n步骤结果:{result}"
    
    # 3. 整合
    return synthesize_results(results)
执行流程对比

ReAct 方式:

搜索天气 → 观察结果 → 思考 → 搜索交通 → 观察结果 → 思考 → 搜索酒店 → ...

Plan-and-Execute 方式:

规划:[搜索天气, 搜索交通, 搜索酒店, 制定行程] 
→ 并行/串行执行所有步骤 
→ 整合结果
适用场景

复杂多步骤任务 - 需要明确步骤分解的项目
可并行化的工作流 - 多个独立子任务可同时执行
需要全局视角的任务 - 规划阶段能考虑整体约束

局限性

计划可能过时 - 执行过程中环境变化,原计划可能失效
缺乏动态调整 - 遇到意外情况难以灵活应变
规划质量依赖模型 - 复杂任务的规划本身就有挑战


2.3 Reflexion:自我反思与迭代优化

Reflexion是 2023 年提出的高级范式,引入了"自我反思"机制,让 Agent 能够从错误中学习。

核心思想

Reflexion 在 Plan-and-Execute 基础上增加了反思循环

执行 → 评估结果 → 反思问题 → 调整策略 → 重新执行 → ...

关键组件:

  1. Actor:执行任务的 Agent(可以是 ReAct 或 Plan-and-Execute)
  2. Evaluator:评估执行结果是否达标
  3. Self-Reflection:分析问题原因,提出改进建议
  4. Memory:存储反思结果,用于后续优化
代码示例
class ReflexionAgent:
    def __init__(self):
        self.memory = []  # 存储反思记忆
        self.max_iterations = 3
    
    def run(self, task):
        for iteration in range(self.max_iterations):
            # 1. 执行任务
            result = self.actor.run(task, memory=self.memory)
            
            # 2. 评估结果
            evaluation = self.evaluator.evaluate(task, result)
            
            # 3. 判断是否成功
            if evaluation.is_success:
                return result
            
            # 4. 反思失败原因
            reflection = self.reflect(task, result, evaluation)
            self.memory.append(reflection)
            
            print(f"第 {iteration + 1} 轮失败,反思:{reflection}")
        
        return result  # 返回最后一次结果
    
    def reflect(self, task, result, evaluation):
        """生成反思内容"""
        prompt = f"""任务:{task}
执行结果:{result}
评估反馈:{evaluation.feedback}

请分析失败原因,并提出改进建议:"""
        
        return self.llm.generate(prompt)
反思记忆的作用
# 记忆格式示例
reflection_memory = {
    "task_type": "数据分析",
    "failure_reason": "使用了错误的统计方法",
    "lesson": "时间序列数据应该使用趋势分析而非简单平均",
    "suggestion": "先检查数据类型,再选择分析方法"
}

# 后续任务中,Agent 会参考这些记忆
# 遇到类似任务时:"根据过往经验,我应该先确认数据类型..."
适用场景

需要高精度输出的任务 - 代码生成、数据分析、内容创作
可明确定义成功标准的任务 - 有客观评估指标
重复性任务 - 积累经验后效率持续提升

局限性

迭代成本高 - 多次调用 LLM,token 消耗大
评估标准难定义 - 创意类任务难以客观评估
可能陷入循环 - 需要设置最大迭代次数防止无限循环


三、三大范式对比总结

维度ReActPlan-and-ExecuteReflexion
决策模式边想边做先想后做想→做→反思→改进
规划粒度单步规划全局规划动态调整规划
执行效率中等(逐步执行)高(可并行)较低(需迭代)
灵活性
容错能力
适用任务简单问答、工具调用复杂多步骤任务高质量要求任务
代表框架LangChain ReActLangChain Plan-and-ExecuteReflexion (论文实现)

四、如何选择合适的范式?

决策流程图

任务分析
    ↓
是否需要高质量输出?
    ├─ 是 → 考虑 Reflexion
    └─ 否 → 继续
    ↓
任务步骤是否明确?
    ├─ 是 → 步骤多?
    │         ├─ 是 → Plan-and-Execute
    │         └─ 否 → ReAct
    └─ 否 → ReAct(让模型自己探索)

实际选型建议

场景推荐范式理由
实时问答助手ReAct快速响应,单轮交互
数据分析报告Plan-and-Execute步骤清晰,可并行处理
代码生成/审查Reflexion需要高质量,可迭代优化
自动化工作流Plan-and-Execute预定义步骤,稳定执行
创意内容生成ReAct灵活探索,保留创造性
复杂问题求解Reflexion试错学习,逐步逼近最优

五、2026 年的新趋势:混合范式

随着 Agent 技术的演进,单一范式已难以满足复杂场景需求。当前的主流趋势是混合范式

5.1 ReAct + Plan-and-Execute

分层架构

  • 高层:Plan-and-Execute 制定阶段目标
  • 低层:ReAct 执行每个具体步骤
# 示例:旅行规划 Agent
plan = ["搜索机票", "搜索酒店", "制定行程"]

for step in plan:
    # 每个步骤内部用 ReAct 灵活执行
    result = react_agent.run(step)

5.2 Plan-and-Execute + Reflexion

质量保障

  • 先制定计划快速执行
  • 对关键步骤引入反思机制
  • 失败时回溯调整计划

5.3 自适应范式选择

智能路由

def select_paradigm(task):
    complexity = analyze_complexity(task)
    quality_requirement = check_quality_requirement(task)
    
    if quality_requirement > 0.8:
        return ReflexionAgent()
    elif complexity > 5:
        return PlanExecuteAgent()
    else:
        return ReActAgent()

六、实践建议

6.1 从 ReAct 开始

如果你是 Agent 开发新手,建议从 ReAct 入手:

  • 概念简单,易于理解
  • LangChain、OpenClaw 等框架支持完善
  • 调试直观,可观察每一步的 Thought-Action-Observation

6.2 逐步引入规划

当遇到复杂任务时,尝试 Plan-and-Execute

  • 显式定义任务步骤
  • 利用并行执行提升效率
  • 结合 LLM 自动生成计划

6.3 关键任务使用 Reflexion

对于输出质量敏感的场景,引入 Reflexion:

  • 定义清晰的评估标准
  • 设计有效的反思 prompt
  • 控制迭代次数平衡成本与质量

6.4 持续优化

监控指标:
├── 任务成功率
├── 平均执行步数
├── Token 消耗
├── 用户满意度
└── 平均响应时间

七、结语

ReAct、Plan-and-Execute 和 Reflexion 代表了 AI Agent 决策能力演进的三个阶段:

  • ReAct 让 LLM 获得了"行动能力",实现了思考与行动的交织
  • Plan-and-Execute 让 Agent 具备了"规划能力",能够全局把控复杂任务
  • Reflexion 赋予了 Agent"自我学习能力",通过反思持续进化

在 2026 年的今天,这三大范式并非相互替代,而是互补共存。优秀的 Agent 系统往往会根据任务特点灵活组合:

理想的 Agent 架构 = 全局规划(Plan)+ 灵活执行(React)+ 持续优化(Reflexion)

对于开发者而言,理解这三种范式的本质差异和适用边界,是构建高效 Agent 系统的基础。建议从 ReAct 入手,逐步引入规划和反思机制,最终打造出既能快速响应、又能高质量交付的智能 Agent。


参考资源

  1. ReAct 论文ReAct: Synergizing Reasoning and Acting in Language Models (Yao et al., 2022)
  2. Reflexion 论文Reflexion: Self-Reflective Agents (Shinn et al., 2023)
  3. LangChain 文档Agents 模块
  4. OpenClaw 框架GitHub 开源实现

本文首发于掘金,转载请注明出处。如有疑问,欢迎在评论区交流讨论。

标签:#AIAgent #大模型 #LangChain #ReAct #人工智能 #2026技术趋势