1、ReAct是什么?
Reason+Act 是一种让大模型 边思考、边行动的Agent 推理范式。
把大模型的行为拆分为两类步骤:
- Reason(推理/思考)
- Act(行动/调用工具)
并在多轮循环中交替执行。
ReAct的基本形式
Thought: 我需要先确认用户要什么
Action: 搜索(关键词)
Observation: 搜索结果是......
Thought: 基于结果,我可以......
Action: 调用工具......
Final Answer: ...
Thought →Action→Observation 循环 最后得出 Final Answe
思考驱动行动,行动反过来影响思考
2、ReAct解决的核心问题是什么?
在ReAct 出现之前,传统LLM Agent 面临3个关键痛点
痛点1:模型"想归想,做归做"
❌传统方式:
要么只输出答案(纯推理)
要么直接调用工具(没有清晰的逻辑,出现幻觉)
传统方式 存在的问题:
- 行为不可解释
- 调错工具也不知道为什么
✅ReAct 的解决方式:
把"为什么这么做" 显式写出来
- 推理 → 决定行动
- 行动 → 产生新信息
- 新信息 → 继续推理
✅行为链条可追溯
痛点2:工具调用不稳定、容易乱用
❌没有ReAct:
- 随机调用工具
- 过早下结论
- 无法处理中间失败
✅ReAct:
- 模型在 Thought 中:
- 明确"缺什么信息"
- 决定是否调用工具
- 失败后可再次推理、重试
更像"人在操作电脑"
痛点3:复杂任务容易一步走错就崩
❌一步到位式Prompt
- 长任务失败率高
- 中间不可修正
✅ReAct:
把复杂任务拆成"思考-行动-观察"的循环
每一步:
- 可验证
- 可纠错
- 可调整策略
3、ReAct 的核心工作机制
1. 思考(Reason/Thought)
模型内部逻辑,比如:
- 当前目标是什么?
- 缺什么信息?
- 下一步该做什么?
2.行动(Act/Action)
明确、结构化的操作:
- 搜索
- 计算
- 调API
- 查知识库
3.观察(Observation)
- 工具返回结果
- 环境反馈
- 错误信息
4.循环执行
循环执行 Thought Action Observation
直到:任务完成/达到停止条件
4、ReAct有哪些应用场景?
1. 工具型 Agent
搜索助手、运维Agent、数据分析助手
2. 多步推理任务
复杂问答、数学/逻辑题、规划类问题
3. 自主决策系统
自动调参、自动排错、自动执行流程
5、ReAct解决不了什么?
1.并不等于更聪明
ReAct 是流程增强,不提升模型本身能力上限
2.Token 成本更高
Thought + Action + Observation 多轮消耗明显
3.不是长期记忆方案
ReAct 管的是 当下推理
不解决 跨会话记忆
常与 Memory/RAG结合使用