当前位置: 首页 > news >正文

【系统学AI】07 ReAct范式:从奠基之作到Reflexion/RAF的演进

2022年Yao等人提出的ReAct,是Agent推理范式的奠基之作。2025-2026年,业界对它的认知更成熟了——ReAct不是终点,而是起点。这篇文章讲透ReAct核心机制、它的硬伤、以及2025-2026演化出的Reflexion / RAF等替代方案。


一句话总结

ReAct = Reasoning + Acting,让LLM在每一步都先"想"再"做",通过Thought-Action-Observation循环实现推理与行动的协同。但ReAct有四大硬伤——步骤冗余、错误难恢复、上下文膨胀、循环死锁。2026年的工业实践已经在用Reflexion(自反思)、RAF(多层元认知)、Anthropic Subagents等模式替代或补强纯ReAct。


1. 为什么需要ReAct?

1.1 之前的问题

纯推理(Chain-of-Thought / CoT):模型只"想"不"做",无法获取外部信息,容易产生幻觉。

Q: 2026年诺贝尔物理学奖得主是谁? CoT: 让我推理一下...诺贝尔物理学奖通常颁给... → 猜了一个错误答案(因为知识截止在训练时)

💡CoT(Chain-of-Thought,思维链):Google 2022年提出,让模型在回答前先生成"推理过程"再给答案,显著提升数学/逻辑题准确率。但CoT的根本局限是——它只能在"训练时记住的知识"内推理,遇到训练后的事实就抓瞎。

纯行动(Act-only):模型只"做"不"想",连续调用工具但缺乏规划,容易走弯路。

Act-only: search("诺贝尔奖") → 搜索结果太多 search("2026诺贝尔") → 还是不精确 search("2026诺贝尔物理学奖") → 终于找到了 → 花了3步,效率低

1.2 ReAct的解法

先想再做——每一步都明确当前目标,选择最有效的行动:

Thought: 我需要查2026年诺贝尔物理学奖,搜索词要精确 Action: search("2026 Nobel Prize in Physics") Observation: ...(搜索结果) Thought: 找到了,让我确认一下具体贡献 Action: lookup("...贡献") Observation: ... Thought: 信息完整了,可以回答 Answer: 2026年诺贝尔物理学奖颁给了...

2步搞定,比Act-only的3步更高效,比CoT更准确。


2. ReAct核心机制

2.1 Thought-Action-Observation循环

┌──→ Thought(思考)──→ Action(行动)──→ Observation(观察)──┐ │ │ └──────────────────── 循环直到任务完成 ←─────────────────────┘
步骤说明示例
ThoughtLLM对当前状态的推理和规划“我需要搜索X”
ActionLLM选择调用的工具和参数search(“X”)
Observation工具返回的结果搜索结果文本

2.2 Prompt模板

ReAct的关键是Prompt设计,让LLM按固定格式输出:

你是一个能使用工具的Agent。请严格按照以下格式输出: Question: [输入的问题] Thought: [你当前的思考] Action: [工具名称(参数)] Observation: [工具返回的结果] ... (Thought/Action/Observation可重复多次) Thought: [最终思考] Final Answer: [最终答案] 可用工具: - search(query): 搜索引擎 - lookup(term): 在当前页面查找术语 - finish(answer): 返回最终答案

3. 代码实现(2026版)

3.1 最小ReAct Agent(直接调用Claude/GPT)

importrefromanthropicimportAnthropic client=Anthropic()REACT_PROMPT="""你是一个ReAct Agent。请严格按照Thought/Action/Observation格式输出。 可用工具: - search(query): 搜索互联网 - calculate(expr): 计算数学表达式 - finish(answer): 返回最终答案 Question: {question} {history} Thought: """defreact_agent(question,max_steps=10):history=""forstepinrange(max_steps):prompt=REACT_PROMPT.format(question=question,history=history)response=client.messages.create(model="claude-opus-4.7",# 2026推荐主流模型messages=[{"role":"user","content":prompt}],max_tokens=500,)output=response.content[0].text.strip()# 解析Thought和Actionthought_match=re.search(r"Thought:\s*(.+)",output)action_match=re.search(r"Action:\s*(\w+)\((.+?)\)",output)ifnotthought_matchornotaction_match:breakthought=thought_match.group(1)tool_name=action_match.group(1)tool_args=action_match.group(2)history+=f"Thought:{thought}\nAction:{tool_name}({tool_args})\n"# 执行工具iftool_name=="finish":returntool_argseliftool_name=="search":observation=search_tool(tool_args)eliftool_name=="calculate":observation=str(eval(tool_args))else:observation=f"Unknown tool:{tool_name}"history+=f"Observation:{observation}\n"return"未能完成任务"# 使用result=react_agent("2026年诺贝尔物理学奖得主是谁?")print(result)

3.2 用Claude Agent SDK实现(2026推荐)

fromclaude_agent_sdkimportAgent,tool@tooldefsearch(query:str)->str:"""搜索互联网"""returnsearch_engine.query(query)@tooldefcalculate(expr:str)->str:"""计算数学表达式"""returnstr(eval(expr))# Claude Agent SDK内部就是ReAct循环agent=Agent(model="claude-opus-4.7",system_prompt="你是一个使用ReAct范式的研究助手",tools=[search,calculate],max_iterations=10,# 限制最大循环数)result=agent.run("2026年诺贝尔物理学奖得主是谁?")

3.3 用LangGraph实现(生产级)

fromlanggraph.prebuiltimportcreate_react_agentfromlangchain_anthropicimportChatAnthropic llm=ChatAnthropic(model="claude-opus-4.7",temperature=0)tools=[search_tool,calc_tool]agent=create_react_agent(llm,tools)result=agent.invoke({"messages":[("user","2026年诺贝尔物理学奖得主是谁?")]})

💡2026年的代码差异:旧版(2024)用gpt-4o+langchain.agents.create_react_agent,2026年主流是claude-opus-4.7+ LangGraph的create_react_agent(已迁移到langgraph包)。Hugging Face的hub.pull("hwchase17/react")老prompt已不再推荐使用。


4. ReAct vs CoT vs Act-only

维度CoT (纯推理)Act-only (纯行动)ReAct (推理+行动)
推理能力中强
获取外部信息不能
幻觉风险
效率快但不准慢且盲目平衡
适用场景纯推理题简单查询需要推理+信息的复合任务

论文关键发现(Yao et al., 2022):

ReAct在HotpotQA和ALFWorld上的表现优于CoT和Act-only。特别是在需要多步推理+信息检索的任务中,ReAct的优势最明显。


5. ReAct的四大硬伤 ⚠️ 2025-2026业界共识

5.1 步骤冗余 + Token膨胀

ReAct每步都要"想"一下,简单任务太慢:

Question: 1+1等于几? Thought: 我需要计算1+1 Action: calculate(1+1) Observation: 2 Thought: 计算完成 Final Answer: 2

直接回答不好吗?对于简单问题,CoT或直接回答更高效。Token成本随步数线性增长,长任务可能消耗数十万Token。

5.2 错误难恢复 + 死循环风险

ReAct的决策完全依赖"上一步的Thought + Observation"——如果工具返回了错误或误导性结果,Agent很容易陷入死循环

Thought: 我需要搜索X Action: search("X") Observation: [无关结果] Thought: 搜索结果不对,让我重试 Action: search("X") ← 重复同样的错误! Observation: [还是无关结果] ... 无限循环

2025年研究表明:纯ReAct在长任务上有30-50%的概率走入死循环。这是Reflexion/RAF诞生的直接动力。

5.3 思考质量不稳定

LLM的"Thought"可能不准确,导致后续Action方向错误:

Thought: 我应该搜索"法国首都" ← 实际上可以直接回答 Action: search("法国首都")

或者在多步推理中,前一步的错误判断会层层放大到后续步骤。

5.4 上下文窗口消耗 + Lost in the Middle

每次循环都把全部历史塞进上下文,长任务的Token可能溢出。即使不溢出,LLM在长上下文中容易"丢失中间信息"(Lost in the Middle问题),关键的早期Observation可能被忽略。

💡Lost in the Middle:Stanford 2023年研究发现,LLM在长上下文中对开头和结尾的信息记忆好,对中间部分会"忽略"。ReAct长循环正好踩中这个雷。


6. ReAct的演进(2024-2026)

6.1 Reflexion:加自反思的ReAct ⭐

Reflexion(2023.03提出,2024-2025成熟)是ReAct的直接演进:在ReAct循环外包一层"反思学习"

三组件架构

┌──────────────────────────────────────────────┐ │ Loop 1: Actor (执行ReAct) │ │ Thought → Action → Observation → ... │ └──────────────────────────────────────────────┘ ↓ ┌──────────────────────────────────────────────┐ │ Loop 2: Evaluator (评估结果) │ │ 成功?还是失败?为什么? │ └──────────────────────────────────────────────┘ ↓ 失败 ┌──────────────────────────────────────────────┐ │ Loop 3: Self-Reflection (自我反思) │ │ "我失败是因为...下次应该..." │ │ 存入Episodic Memory │ └──────────────────────────────────────────────┘ ↓ 重新进入Loop 1 (带着上次的反思)

💡Verbal Reinforcement(口头强化):Reflexion的核心创新——反思是自然语言而不是参数更新。比如失败后生成"我应该先测试空列表再处理",存到Episodic Memory,下次重试时把这条反思塞进Prompt。不需要训练LLM权重,只是改Prompt。

实测效果(HumanEval代码任务):

方法Pass@1
GPT-4 (直接回答)80%
GPT-4 + ReAct85%
GPT-4 +Reflexion91%

Reflexion不是模型变强了,是元认知变强了——同样的模型,加了自反思能多对11%的题。

6.2 RAF:多层元认知架构 ⭐ 2025前沿

RAF(Reflective Agentic Framework)是2025年最前沿的Agent架构,把Agent分成两层:

┌─────────────────────────────────────────┐ │ Reflective Layer (反思层) │ │ Tier 4: 知识重构 │ │ Tier 3: 假设生成 + 主动实验 │ │ Tier 2: 经验整合 + 外部因素 │ │ Tier 1: 后果引擎 (Pre-action governance)│ └─────────────────────────────────────────┘ ↑↓ ┌─────────────────────────────────────────┐ │ Base Layer (基础层) │ │ 感知 → 规划 → 行动 → 观察 │ │ (这就是ReAct/Reflexion所在的层) │ └─────────────────────────────────────────┘

Tier 1后果引擎:在动作执行前先模拟后果,可以阻止危险操作(“伦理守护”)。

Tier 4知识重构:让Agent能重组自己的知识结构,产生质变学习。

RAF代表的是"内化趋势":ReAct依赖外部Tool反馈,Reflexion把反馈内化为自我评估,RAF进一步建立专门的元认知子系统

6.3 Anthropic Subagents:实战派的解法

Anthropic在Claude Code的实践给出了最务实的ReAct演进——Subagents(子Agent)

主Agent (主上下文) │ ├── Subagent 1 (独立上下文,做搜索) │ ↓ 只返回精炼结果 ├── Subagent 2 (独立上下文,做代码分析) │ ↓ 只返回精炼结果 └── 主Agent 整合 → 输出

核心思想:把会污染主上下文的长链ReAct交给Subagent,Subagent跑完只把结论传回,主Agent的上下文保持干净。

这是生产环境唯一稳定work的多Agent模式——把昂贵的搜索/长工具链/重计算下放到隔离的子上下文。

6.4 改进方案对比

改进方案思路何时用
Reflexion加自反思+Episodic Memory有评估信号的任务(代码/数学)
RAF多层元认知高风险/复杂决策
Anthropic Subagents子Agent隔离上下文长任务+多并发
LATS树搜索+ReAct,探索多条路径高质量优先
ReAct+RAG用RAG替代搜索,提高信息质量知识密集型
自适应ReAct简单问题跳过推理成本敏感场景
Plan-then-Execute先全局规划再执行Web Agent等可预定义场景

7. 何时不该用ReAct ⚠️ 2026 Anthropic指引

Anthropic 2024.12发布的《Building Effective Agents》给出了清晰指引——ReAct不是默认方案

7.1 ReAct不需要的场景

场景替代方案原因
直接事实问答直接回答不需要工具
单步推理任务CoTReAct的循环是浪费
路径明确的任务Workflow用预定义流程更可控
简单工具调用直接Tool Use不需要Thought循环
需要长程规划Plan-then-Execute全局视角更优

7.2 ReAct最适合的场景

  • 信息需要逐步获取才能决定下一步
  • 策略需要根据中间结果动态调整
  • 工具调用次数无法预知
适合ReAct: "调研竞品的产品策略并给出对比报告" 不适合ReAct: "把这段中文翻译成英文"

7.3 决策树

你的任务... ├── 不需要工具?→ 直接回答 ├── 需要工具但路径明确?→ Workflow / Prompt Chaining ├── 需要全局规划?→ Plan-then-Execute ├── 需要动态决策 + 容易出错?→ Reflexion (ReAct + 反思) ├── 需要并行隔离上下文?→ Anthropic Subagents └── 需要逐步探索 + 工具反馈足够好?→ ReAct ✅

8. 面试高频问题

Q1:ReAct和CoT的本质区别?

CoT只"想"不"做",推理在模型内部完成;ReAct"边想边做",推理和行动交替进行,能获取外部信息。ReAct = CoT + 工具循环

Q2:ReAct什么时候不如CoT?

(1) 不需要外部信息的纯推理任务(如数学证明);(2) 简单问题,ReAct的额外步骤是浪费;(3) 工具不可靠时,外部信息反而引入噪声。

Q3:ReAct的四大硬伤是什么?

(1) 步骤冗余 + Token膨胀;(2) 错误难恢复 + 死循环风险(30-50%概率);(3) 思考质量不稳定;(4) 上下文窗口消耗 + Lost in the Middle。

Q4:Reflexion比ReAct强在哪?

Reflexion在ReAct外包了"评估+反思+记忆"循环。失败后生成自然语言反思,存入Episodic Memory,下次重试时带着教训。HumanEval上从GPT-4的80% pass@1提升到91%——没改模型,只改控制结构

Q5:Anthropic Subagents和Multi-Agent的区别?

Multi-Agent是平等协作的多个Agent;Subagents是主从架构——主Agent调度子Agent,子Agent有独立上下文,跑完只把结论传回。Subagents是生产唯一稳定work的多Agent模式,因为它解决了"上下文污染"这个核心问题。

Q6:什么时候不该用ReAct?

(1) 直接事实问答;(2) 单步推理任务;(3) 路径明确的Workflow场景;(4) 简单的单次工具调用。Anthropic的建议是:能用Workflow解决的不要用Agent,能用直接回答的不要用ReAct


总结

要点说明
核心Thought-Action-Observation循环
优势推理+行动协同,减少幻觉
四大硬伤冗余 / 死循环 / 思考不稳 / 上下文膨胀
适用需要推理+信息检索+动态决策的复合任务
演进Reflexion / RAF / Subagents / LATS
不适用单步任务 / 路径明确 / 长程规划

ReAct是Agent推理范式的起点,但不是终点。2025-2026的Agent工程已经从"纯ReAct"进化到"ReAct+反思+元认知+子Agent隔离"的混合架构。理解ReAct的硬伤,才能正确选择何时用它、何时用替代方案——这是2026年Agent工程师的必备认知。


路易乔布斯 © 2026 | AI Agent & RAG学习计划 · 模块01-Agent · 第二篇

参考文献:

  • Yao et al., “ReAct: Synergizing Reasoning and Acting in Language Models”, 2022
  • Shinn et al., “Reflexion: Language Agents with Verbal Reinforcement Learning”, 2023
  • Anthropic, “Building Effective Agents”, 2024.12
  • “Reflective Agentic Framework (RAF)”, 2025
http://www.rkmt.cn/news/1416526.html

相关文章:

  • 微信聊天记录永久保存指南:用WeChatMsg打造你的数字记忆保险箱
  • 终极指南:如何在5分钟内为Windows微信/QQ/TIM安装防撤回补丁
  • 开发者必读:10个MiniCPM5-1B-MLX高效部署技巧与性能优化策略
  • 如何快速获取百度网盘真实下载地址:3步实现高速下载的完整指南
  • 田利建导演团队倾力护航《沿着边境看中国》第三季:融合真人秀元素,以匠心铸就边境新篇章
  • Claude可观测性盲区大起底:缺失的17个关键指标、5个不可替代的eBPF探针位置(附审计清单PDF)
  • CodeWF.Markdown:PDF 文本可复制、图片可嵌入,复制到公众号/知乎/掘金不再显示 HTML 源码
  • 猫抓插件完整指南:三步轻松掌控网页视频音频资源
  • DeepSeek多模态输出格式兼容方案(含OpenAI/Anthropic双协议映射表·限时公开)
  • 猫抓浏览器扩展:你的网页视频下载神器,三分钟告别在线观看限制
  • 终极指南:如何快速微调gbert-large-openmind适应你的德语领域特定任务 [特殊字符]
  • 终极指南:如何让百度网盘下载速度提升10倍?这个开源工具告诉你答案
  • 雀魂牌谱屋完整指南:三分钟搭建个人麻将数据分析中心
  • 微信聊天记录永久保存指南:如何用WeChatMsg打造你的数字记忆库
  • 开发者必看:Qwen2-7B的SFT与RLHF后训练最佳实践
  • Zotero终极指南:如何通过自定义排序规则打造高效的文献管理系统
  • FlexNet许可证服务器架构:单机与高可用对比
  • 从timedatectl到chrony:Linux时间同步服务选型与进阶配置指南(Ubuntu/CentOS实测)
  • Sora 2多模态协同工作流:文本→动态分镜→音效波形→字幕动效,1套打通AIGC短视频工业化链路
  • 如何永久保存微信聊天记录:开源工具让数据真正属于你
  • 【Claude消息队列架构白皮书】:20年分布式系统专家亲授高吞吐、低延迟、Exactly-Once语义落地的5大反模式与3层容错设计
  • buuctf [极客大挑战 2019 Knife]
  • 如何在3分钟内完成Honey Select 2的完整汉化与去码:终极技术配置指南
  • 闲置钻戒别蒙尘,北京合规门店无损鉴定,5 大门店实测 - 奢侈品回收测评
  • Arduino步进电机遥控小船:从硬件搭建到代码调试全流程实践
  • 基于ESP32与Flutter的厨房物联网环境监测系统全栈开发实践
  • Sapiens2性能优化指南:如何选择最适合你需求的模型参数规模
  • Chrome扩展开发实战:为Gemini打造高效对话管理器
  • Vibe Coding实战:无设计师打造Toss级UI的完整指南
  • 2026保姆级降AI指南:这篇全网最真实的降AI攻略建议直接抄作业 - 殷念写论文