ReAct:语言模型中推理与行动的协同机制
摘要
ReAct 框架,通过让语言模型(LM)交替生成推理轨迹与执行动作,实现推理与行动的协同增强,在问答、实验验证以及交互决策任务上显著现有基线。
核心方法:
- 交替生成机制:ReAct 让模型以交错方式生成推理轨迹和任务特定动作,使两者形成正向反馈循环
- 推理的动作:帮助模型推导、追踪和更新行动计划。并有效处理异常情况
- 行动的作用:让模型能够与外部资源(知识库、环境接口)交互,就获取实时或补充信息,从而支撑更准确的推理
优势:
- 协同增强:将推理和行动整合统一,实现双向增益
- 可解释性与可信度:推理和决策过程透明化,便于人类理解与信任
- 高效泛化:提示词只需展示极少量示例(few-shot learning)。
一、引言
绝大部分人类智能的一个独特之处在于能将"面向任务的具体行动"与"语言推理"(或内心独白)无缝结合。也就是说有内心独白的人(人类的90%以上)能通过内心独白来进行推理,从而决定采取什么样的行动,同时行动也能辅助思考,因为做了这个行动后得到真实世界的反馈(例如阅读说明书、打开冰箱),从而解答心中目前的一个疑问。
正是这种"行动"与"推理"之间紧密的协同效应,让人类能够快速掌握新任务,并做出稳健的决策与推理------哪怕是在面对前所未见的新环境,或是处于信息不确定的状况下,我们依然能游刃有余。
链式思考 (CoT) 提示显示了 LLMs 执行推理轨迹以生成涉及算术和常识推理的问题的答案的能力 (Wei 等人,2022)。但它因缺乏和外部世界的接触或无法更新自己的知识,而导致事实幻觉和错误传播等问题。
作者提出 ReAct,是一种将推理和行动相结合的通用范式。通过提示词(prompt)让 LM 以交错的方式生成语言推理轨迹和任务相关的行动。这种方式不仅允许模型进行动态推理,从而制定、维护和调整行动的高层计划(即"以推理指导行动"),还能让模型与外部环境(例如维基百科)进行交互,将额外的信息融入到推理过程中(即"以行动辅助推理")。简而言之就是**"边想边做",通过实际行动获取真实世界的反馈来修正自己的想法,并带着思考和计划去行动。**
下图展示了 ReAct 的一个示例,执行问题回答所涉及的不同步骤

可以看到,模型生成了"任务解决轨迹",Obs 对应与之交互的环境的观察。从本质上讲,ReAct 可以检索信息来支持推理,而推理则有助于确定下一步检索的目标。
二、交互框架定义
交互流程:
在时间步 t ,智能体接收环境观测 o_t ,并基于策略 π(a_t∣c_t )执行动作 at。
c_t 是上下文,
c t = ( o 1 , a 1 , . . . , o t − 1 , a t − 1 , o t ) c_t = (o_1, a_1, ..., o_{t-1}, a_{t-1}, o_t) ct=(o1,a1,...,ot−1,at−1,ot)
包含完整的历史观测、动作及当前观测的完整轨迹。
核心挑战:
- 映射复杂性:从上下文 c_t 到动作 a_t 的映射关系高度隐式,需要大量计算才能解析。
- 策略学习难点:当任务依赖长场轨迹上下文的深层理解时,直接学习策略变得极具挑战
ReAct 框架将语言也纳入动作空间,使"思考"成为不改变外部环境但能更新内部上下文的特殊动作。从而支持任务拆解、知识注入、信息提取、进度追踪及异常处理等多种推理功能。模型并不是在轨迹的每一步都机械地插入思考,而是能够智能地识别出那些最关键、最需要推理的节点。因此让模型自行决定思考和行动异步出现的时机。
三、实验结果
ReAct 可以在语言和决策任务上的表现高于几个最先进水要求的基线。作者发现 ReAct 和 链式思考 CoT 结合使用的最好方法是在推理过程同时使用内部知识和获取到的外部信息。
四、总结
ReAct 在面对动作空间较大的复杂任务时,模型需要更多演示样本才能有效学习,这容易导致样本量超出上下文学习的输入长度限制。