概念
ReAct:推理与行动的协同范式
论文信息
- 标题:ReAct: Synergizing Reasoning and Acting in Language Models
- 作者:Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao
- 机构:Princeton University, Google Research
- 发表:2022年10月(ICLR 2023),arXiv: 2210.03629
核心思想
ReAct提出将LLM的推理(Reasoning)和行动(Acting)协同结合。核心洞察:
> LLM不仅可以通过推理生成思考链来解决问题,还可以在推理过程中采取实际行动(如查询Wikipedia、调用搜索引擎),将两种能力融合产生1+1>2的效果。
工作流程
┌─────────────────────────────────────────┐
│ ReAct 循环 │
│ │
│ ┌──────┐ ┌──────┐ ┌───────────┐ │
│ │Thought│───→│Action│───→│Observation│ │
│ │(思考) │ │(行动)│ │ (观察结果) │ │
│ └──────┘ └──────┘ └───────────┘ │
│ ↑ │ │
│ └────────────────────────┘ │
│ │
│ 重复循环直到得出最终答案 │
└─────────────────────────────────────────┘步骤: 1. Thought(思考):LLM分析当前状态,决定下一步 2. Action(行动):调用外部工具(搜索、查表等) 3. Observation(观察):获取工具返回的结果 4. 循环直到得出 Final Answer
与Chain-of-Thought的关键区别
| 维度 | Chain-of-Thought (CoT) | ReAct |
|---|---|---|
| 推理方式 | 纯内部推理 | 内部推理 + 外部交互 |
| 信息来源 | 仅依赖模型参数知识 | 可查询外部知识库/工具 |
| 输出格式 | Thought→Thought→...→Answer | Thought→Action→Observation→循环→Answer |
| 可验证性 | 较低(幻觉风险高) | 较高(基于外部事实验证) |
| 错误纠正 | 难以自我纠正 | 可通过行动获取反馈纠正 |
| 幻觉问题 | 严重 | 显著缓解 |
实验验证
- 知识密集型任务:HotPotQA(多跳问答)、FEVER(事实验证)
- 决策任务:ALFWorld(文本游戏)
- 关键发现:推理帮助行动(制定计划、处理异常),行动帮助推理(提供事实基础)
对后续Agent架构的影响
ReAct的 Thought→Action→Observation 循环成为几乎所有Agent框架的核心模式:
- langgraph\|LangChain/LangGraph — ReAct Agent是最经典的Agent类型
- autogpt\|AutoGPT — 将ReAct扩展为持续自主循环
- function-calling\|OpenAI Function Calling — ReAct思想的标准化实现
- metagpt\|MetaGPT / crewai\|CrewAI — 每个Agent内部仍是ReAct循环
- code-agent\|Code Agent — Read→Think→Edit→Test的循环本质是ReAct
局限与后续改进
| 局限 | 后续解决方案 | |
|---|---|---|
| 对模型能力要求高 | 模型能力持续提升(GPT-4、Claude 3.5+) | |
| 每步LLM推理成本高 | 模型降价 + 缓存机制 | |
| 依赖Prompt Engineering | function-calling\ | Function Calling原生支持 |
| 工具定义有限 | mcp\ | MCP协议统一工具连接 |
相关页面
- agent-timeline — Agent技术发展时间线
- multi-agent — 从ReAct到Multi-Agent的演进
- planning-reflection — Planning和Reflection增强机制