ReAct是一种将推理与行动结合的大模型方法,通过交替进行推理文本、动作和环境观察,让模型在行动中不断修正推理。文章通过分析ReAct的工作原理、实验结果和实际应用,为初学者提供了一种理解和应用大模型的新思路。收藏本文,开启大模型学习之旅!
先看三个要点
研究问题:
大模型只做推理时,可能依赖错误事实;只调用工具时,又可能缺少规划和信息整合。怎样让推理指导行动,让外部反馈继续修正推理?
解决方案:
ReAct 将推理文本、动作和环境观察组织成交替进行的任务轨迹。模型选择下一步动作,程序执行工具,并将返回结果交给模型继续处理。
效果与结论:
论文的 WebShop 实验中,ReAct 成功率为 40.0%,Act-only 为 30.1%,提高 9.9 个百分点;但在 HotpotQA 上,ReAct 仍低于 CoT。结果支持推理与行动结合的价值,也表明收益依赖任务和配置,并非所有场景都会提升。
ReAct 由 Shunyu Yao 等人提出,发表于 ICLR 2023。读懂这篇论文,可以从一次搜索失败后,模型如何调整行动说起。
01 先看一个需要“边查边想”的问题
论文图 1 给出了一道多跳问答:除了 Apple Remote,还有什么设备能控制它最初配套使用的那个程序?
要回答它,需要先确定那个程序是什么,再查这个程序还支持什么控制方式。把问题拆成两步并不难,困难在于:第一步的事实是否可靠,搜索结果是否指向了正确对象。
论文展示的 ReAct 轨迹是这样的:
- 先搜索 Apple Remote,得到与 Front Row 程序有关的信息。
- 接着搜索 Front Row,却没有直接找到目标页面,环境返回相似条目。
- 根据反馈,把搜索词改成 Front Row (software)。
- 在新结果中找到键盘功能键也能控制它的依据,再提交答案。
关键在第三步:下一次搜索由上一次搜索的反馈推动。 模型根据新信息调整查询,逐步找到答案。
原论文图 1 上半部分:同一问题的四种处理方式。绿色标出支持正确答案的内容,红色标出错误。来源:Yao 等,ReAct,原图,CC BY 4.0。摘取问答面板。
在这里的实验设置中,普通提示直接回答;思维链 CoT 增加中间推理;Act-only 保留动作和环境反馈;ReAct 则让三者交替参与求解。
02 三种信息,来自不同的地方
ReAct 的典型问答循环包含三个部分:
| 环节 | 由谁产生、承担什么作用 |
|---|---|
| Thought:推理文本 | 模型生成,用于拆解问题、整理已知信息、规划或调整下一步 |
| Action:动作 | 模型提出动作及参数,程序解析并调用相应工具 |
| Observation:观察 | 工具或环境实际返回,成为下一轮模型输入的一部分 |
最关键的边界是:Thought 和 Action 是模型的输出,Observation 应由执行环境提供。
模型写出“我查到了某条事实”,不代表它真的搜索过。只有程序执行对应动作,并把结果接回来,才产生了这次外部交互的证据。
Thought 只更新上下文;搜索、移动物体等动作才与环境交互。推理也不必出现在每一步:操作较多时,可以只在规划、判断状态或调整目标时生成。论文第 2 节
什么时候查、查什么,由谁决定?
模型根据任务、示例和当前历史生成动作,开发者定义可用工具及执行规则。例如,Search[Front Row (software)]的搜索词由模型选择;结果返回后,模型再决定继续查找、换词还是提交答案。
基础 ReAct 主要通过少量示范轨迹引导这种行为,没有独立的“事实不足检测器”替它判断。因此,它仍可能选错词、误读结果或过早结束。
03 打开源码,循环其实很小
作者公开的 HotpotQA 示例 使用 GPT-3。下面用伪代码概括核心循环:
context = instruction + demonstrations + question for step in range(1, 8): output = model(context, stop=f"/nObservation {step}:") thought, action = parse(output) observation, done = environment.step(action) context += format_step(thought, action, observation) if done: break else: environment.step("finish[]")第一,程序在 Observation 标记处停止模型生成。
程序让模型生成 Thought 和 Action,在 Observation 标记处截停,再执行工具、填入返回结果。输出格式仍需解析;示例也设置了解析失败后重新请求动作的补救分支。
第二,历史直接追加在提示词中。
每轮推理、动作和观察都会追加到上下文,下一轮完整交给模型。这份实现没有向量记忆库或历史检索器;跨任务记忆、历史压缩、按需回看,需要另行设计。
第三,工具非常克制。
WikiEnv 主要支持三个问答动作:
search[entity]
:搜索维基百科;找到页面时,代码抽取并返回前五句,未直接找到时返回相似条目。
lookup[keyword]
:在当前页面的文本中,依次返回包含关键词的句子。
finish[answer]
:提交答案并结束任务。
其中lookup使用不区分大小写的字符串匹配。
第四,主动结束与强制结束是两回事。
模型可以生成finish[answer]。但 HotpotQA 示例最多允许七轮;超过限制仍未结束,程序就提交空答案结束任务。这是开发者设置的上限,不代表模型已经确认信息充分。
04 实验结果,需要拆开来看
知识问答:ReAct 并非全面胜出
主文表 1 使用 PaLM-540B。HotpotQA 评价多跳问答,指标是答案精确匹配率 EM;FEVER 评价事实核验,指标是分类准确率。两列均以百分比表示,越高越好。
| 方法 | HotpotQA EM | FEVER 准确率 |
|---|---|---|
| 直接回答 | 28.7 | 57.1 |
| CoT | 29.4 | 56.3 |
| CoT-SC | 33.4 | 60.4 |
| Act-only | 25.7 | 58.9 |
| ReAct | 27.4 | 60.9 |
| CoT-SC → ReAct | 34.2 | 64.6 |
| ReAct → CoT-SC | 35.1 | 62.0 |
数据:论文表 1,第 5 页,摘录提示方法结果。
ReAct 在两个任务中都超过 Act-only,但在 HotpotQA 上低于 CoT。外部检索能提供事实依据,也可能因搜索失败、推理失误而拖累答案。
组合方法取得了更高分数,但有额外的采样与检索成本。CoT-SC 使用 21 条推理轨迹投票;CoT-SC → ReAct 在最高票答案不足半数时转向检索;反向组合则在 ReAct 达到步数上限仍未回答时退回 CoT-SC。这些切换由程序规则控制。论文第 3.2 节
原论文图 2:横轴为 CoT-SC 采样次数,左右分别为 HotpotQA EM 与 FEVER 准确率。来源:Yao 等,ReAct,原图,CC BY 4.0。仅裁去周边正文。
选择方案时,还需在相同预算约束下比较准确率、耗时和成本。
交互任务:规划和状态跟踪的作用更明显
论文表 3、表 4 还报告了两个模拟环境的结果:
ALFWorld:
通过文本动作完成找物品、清洗、放置等任务。在 134 个评估任务、六种提示配置中,ReAct 平均成功率为 57%,最佳配置为 71%;Act-only 最佳配置为 45%。
WebShop:
根据多个条件查找并选择商品。在 500 条测试指令上,ReAct 成功率为 40.0%,Act-only 为 30.1%,提高 9.9 个百分点。
这些结果体现了规划与状态跟踪的作用:拆分目标、记住已完成的步骤,再根据反馈继续行动。它们衡量的是模拟任务表现,并非真实机器人操作或实际购物效果。
05 有轨迹,依然会犯错
作者从 HotpotQA 中为 ReAct、CoT 各抽取 50 条成功与 50 条失败轨迹,共 200 条进行人工分析。ReAct 失败样本中,推理错误占 47%,搜索结果错误占 23%;重复动作、陷入循环也属于推理错误。论文表 2
表中的 ReAct“幻觉”类别为 0%,仅代表这组抽样与分类结果。其他任务依然出现了编造信息的问题。
论文图 5 的任务是把两串钥匙放进保险箱。模型找到第一串后,错误地认为另一个位置还有第二串钥匙,随后沿着这个错误判断继续行动。作者展示了人工编辑两处推理文本、让任务转向成功的一条轨迹。
原论文图 5:左侧轨迹包含错误判断,右侧展示人工编辑两处推理文本后的行为变化。这是人工干预示例,不是规模化可靠性的证明。来源:Yao 等,ReAct,原图,CC BY 4.0。仅裁去周边正文。
执行轨迹便于定位错误,也提供了人工介入的位置。但 Thought 仍是模型生成的文本,可能包含错误解释。可读的轨迹,不等于经过验证的内部因果解释。
06 它与 RAG、信息来源追踪是什么关系?
简单的 RAG(检索增强生成)通常先检索材料,再生成答案。把知识库检索接入 ReAct 后,模型可以根据已有结果继续改写查询、补充检索,直到提交答案。是否值得增加交互轮次,需要结合收益与成本判断。
进一步,如果我们关心“最终这句话究竟来自哪里”,ReAct 提供了可记录的交互节点,但还没有完成逐句归因。
调用过某篇文档,只能说明系统接触过它;不能自动证明答案里的每句话都来自它。
要做一个可核查的系统,我会在此基础上增加三类记录:
- 每次工具调用的参数、返回原文、来源地址、时间与版本,保存模型当时实际看到的内容。
- 最终答案中的关键事实,与支持它的具体段落建立对应关系;没有足够依据时明确标记。
- 将“检索没找到”“证据被误读”“引用不支持结论”“程序执行失败”分别统计。
这属于基于论文提出的工程扩展,不是 ReAct 已经实现的完整能力。对于模型依靠参数知识生成的内容,更不能只看输出就精确还原其训练来源。
07 把论文变成一个可比较的实验
可以从文档问答入手:在同一模型、文档和检索工具下,比较“一次检索”“允许多轮检索”“多轮检索并关联具体证据”三种设置。除了答案正确率,还记录证据支持程度、无效检索和实际耗时、成本。
这是一项基于论文的实验建议。如果多轮检索没有提升,就沿轨迹检查:查询选错了、资料缺失、证据被误读,还是已经找到答案却没有停止?
ReAct 的启发,是把推理放进能接受外部反馈的过程,再用任务结果检验这个过程。 能解释一次 Agent 为什么多查了一步、为何错误地停止,才开始把论文变成自己的工程判断。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包:
- ✅ 从零到一的 AI 学习路径图
- ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
- ✅ 百度/阿里专家闭门录播课
- ✅ 大模型当下最新行业报告
- ✅ 真实大厂面试真题
- ✅ 2026 最新岗位需求图谱
所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》,下方扫码获取~
① 全套AI大模型应用开发视频教程
(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
② 大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
③ 大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
④ AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
⑤ 大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
⑥ 大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
以上资料如何领取?
为什么大家都在学大模型?
最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!
不出1年,“有AI项目经验”将成为投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。