ReAct:推理加行动的提示框架
ReAct(Reasoning and Acting)由 Yao 等人在 2022 年提出,把「思考(Thought)」「行动(Action)」「观测(Observation)」轮流组织进提示,让大模型像 Agent 一样边想边用工具。它把推理链与工具调用统一在同一段文本里,是构建可控 Agent 的基础范式。
是什么
ReAct 把一次求解过程写成循环:模型先输出一段思考描述当前状况,再决定调用哪个工具(如搜索、查数据库),环境返回观测结果,模型基于新信息继续思考,直到给出最终答案。思考部分记录策略,行动部分产生副作用。
为什么有效
纯推理(CoT)只能靠模型内部知识,遇到需要实时或私有信息时容易编造。纯行动(如直接调 API)又缺乏规划。ReAct 把两者结合,让模型基于真实观测做决策,显著降低幻觉,并支持多步任务。论文在问答与网页导航任务上均超过单独的推理或行动基线。
怎么做
提示里用清晰标签分隔三个阶段,并给出工具说明:
可用工具:Search[query] 返回网页摘要;Calc[expr] 计算表达式。
问题:2024 年世界杯冠军是谁?并算其夺冠次数减去 2。
Thought:先查 2024 年世界杯冠军。
Action:Search[2024 World Cup winner]
Observation:阿根廷队夺冠。
Thought:再算 16 减 2。
Action:Calc[16-2]
Observation:14
Answer:14
适用场景
ReAct 适合需要外部知识或操作的任务:联网问答、数据库查询、表单填写、网页自动化。对于纯文本创作或简单分类,引入工具循环只会增加复杂度。
注意点
- 工具返回要真实可信,否则与 CoT 无异。
- 控制循环轮数,避免无限调用造成成本失控。
- 每步的 Thought 要简短,重点记录决策依据。
小结
ReAct 通过「思考-行动-观测」循环让模型调用外部工具并基于真实反馈推理,是构建检索型与 Agent 型应用的核心提示范式。
参考与延伸阅读
- ReAct 原始论文(Yao 等, 2022)。已核验。https://arxiv.org/abs/2210.03629
- LangChain 文档:Agent 与工具调用。已核验。https://docs.langchain.com/
本文累计阅读 — 次