ReAct = Reasoning + Acting,即让模型交替进行推理和行动:
text
Thought → Action → Observation → Thought → ...
- Thought:分析问题、制定或调整计划。
- Action:搜索资料、操作网页或环境。
- Observation:外部环境返回的结果。
"Re"指 Reasoning ;ReAct 同时借用了英文 react,强调根据反馈调整行为。
三种策略
| 策略 | 特点 | 主要问题 |
|---|---|---|
| CoT | 只进行显式推理,不调用外部环境 | 容易基于错误知识产生幻觉 |
| Act-only | 不输出显式推理,直接执行动作 | 缺乏规划,容易重复或走错方向 |
| ReAct | 推理、行动和观察交替 | 依赖检索质量,可能被搜索结果带偏或陷入循环 |
Act-only 并不意味着模型内部完全没有计算,只是轨迹中不生成显式的自然语言推理。
为什么与 CoT 对比?
因为论文想比较:
- 只推理:CoT
- 只行动:Act
- 推理与行动结合:ReAct
由此判断 Reasoning 和 Acting 各自的作用。
ReAct 不一定优于 CoT
在论文实验中:
- FEVER 重视事实准确性,ReAct 优于 CoT;
- HotpotQA 重视灵活的多跳推理,ReAct 略逊于 CoT。
原因是 ReAct 虽然能通过检索减少幻觉,但也增加了新的失败点:
- 搜索词不准确;
- 检索结果无效;
- 固定的"思考---行动"结构限制推理自由;
- 重复搜索或陷入行动循环。
因此二者存在权衡:
CoT 推理更灵活,但容易产生事实幻觉;ReAct 更有事实依据,但依赖检索和行动质量。
论文中效果最好的是混合策略:内部知识可靠时使用 CoT,不确定或需要事实验证时切换到 ReAct。
核心结论:ReAct 不是取代 CoT,而是让内部推理与外部信息互补。