ReAct
Reason + Act,推理 + 行动循环范式,构建自主智能体的核心模式
简介
ReAct 是 “Reasoning + Acting” 的缩写,是一种让大模型先思考再行动的范式。它模拟人类解决问题的过程:先推理分析问题,然后采取行动,观察行动结果,再进行新一轮推理,循环往复直到解决问题。
核心循环流程
思考(Reason)→ 行动(Act)→ 观察(Observe)→ 重新思考 → ...
1. 思考阶段
- 分析当前问题状态
- 回顾历史行动和结果
- 决定下一步应该做什么
- 解释为什么选择这个行动
2. 行动阶段
- 调用工具或执行操作
- 可能包括:搜索、计算、文件读写、API 调用等
- 记录行动参数和预期结果
3. 观察阶段
- 获取行动的实际输出
- 评估结果是否符合预期
- 发现新的信息或问题
为什么 ReAct 重要
解决大模型的固有局限
| 问题 | ReAct 的解决方案 |
|---|---|
| 幻觉问题 | 通过工具调用获取真实信息,而非凭空生成 |
| 知识截止 | 可以搜索最新信息,不受训练数据截止日期限制 |
| 复杂推理 | 分步推理,逐步逼近答案,而非一步到位 |
| 可解释性 | 每一步都有思考过程,用户可以理解和验证 |
相比其他模式的优势
| 模式 | 特点 | ReAct 优势 |
|---|---|---|
| 纯生成 | 直接输出答案 | 更准确,可验证 |
| 思维链 (CoT) | 只推理不行动 | 可以实际操作,获取外部信息 |
| 工具调用 | 只行动不推理 | 有明确的推理过程,行动更合理 |
典型应用场景
1. 自主编程 Agent
- Cursor、Cline 等 AI IDE 的核心模式
- 理解需求 → 生成代码 → 测试运行 → 修复 Bug → 循环
- 可以独立完成完整的开发任务
2. 智能问答系统
- 复杂问题分解
- 多步搜索验证
- 交叉检查信息准确性
3. 自动化办公
- 理解用户指令
- 操作 Excel、Word 等软件
- 多步骤完成复杂办公任务
实用信息
设计 ReAct 系统的关键要素
- 工具集设计:定义清晰、原子化的工具接口
- Prompt 工程:精心设计思考引导模板
- 状态管理:完整记录每一步的思考、行动、观察
- 终止条件:明确何时停止循环,输出最终答案
- 错误处理:行动失败时的重试和回退策略
常见的 Prompt 模板
你可以使用以下工具:[工具列表]
请按照以下格式回答:
思考:[你的推理过程]
行动:[工具名称]
输入:[工具参数]
收到工具结果后,继续:
观察:[工具输出]
思考:[基于结果的新推理]
行动:[下一步行动或最终答案]
与其他技术的关系
- 思维链 CoT:ReAct = CoT + 工具执行 + 观察反馈
- Function Call:大模型原生函数调用是 ReAct 的行动层实现
- MCP 协议:标准化的工具调用协议,增强 ReAct 的工具生态
- Agent 工作流:更复杂的多 Agent 编排,ReAct 是基础单元