ReAct

AI Agent · Readings

核心思想 让 LLM 在同一条任务轨迹中交替生成 Reasoning(Thought)和 Action,再把环境返回的 Observation 放回上下文中,让下一步 reasoning 基于真实反馈继续进行。

1.背景与方法

ReAct想要解决的问题是,怎样让大语言模型不仅“想”,也能“做”,并且让“想”和“做”形成闭环。 此前,两条路线是分开的,一类是Chain-of-Thought(CoT),让模型进行语言推理;另一类是让语言模型生成动作、调用环境或执行任务。 作者认为,人类解决问题实际上不是“先全部想完,再全部做完”,而是不断地 思考 → 行动 → 获得反馈 → 根据反馈重新思考。 只有CoT,模型会空想:

  • 出现幻觉
  • 在错误的路上一路推进
  • 知识过时
  • 无法根据外部变化修正reasoning 只有Act,模型不知道怎么做,没有显示的内部状态,模型不知道自己在做什么。 ReAct将语言本身也视为一种action,某个时刻的thought不会改变环境和动作,但是会改变模型下一时刻所看到的context,这里把语言reasoning视为了一种internal action / cognitive action。

2.两种模式

一是Knowledge Reasoning,这些任务中,reasoning很重要,因此采用的是dense reasoning。基本上每一步action前后都有thought,knowledge task中实际上已经出现了tool use agent。 二是Decision Making,这些任务中可能有很多action,如果每个动作前后都需要thought,会非常冗余。因此采用的是sparse reasoning,这种thought可以由模型自己决定何时出现。

3.三个层次

thought承担了三个不同层次,一是planning,把任务拆成多个子目标;二是状态/工作记忆,thought会记录当前环境和任务状态,某种程度上充当了working memory;三是refection/replanning,当任务执行失败时,agent会自行反思,重新规划,即reactive reasoning。

4.ReAct的问题

ReAct并不是在所有实验中都击败了CoT,CoT的错误大部分来自模型幻觉,而ReAct的问题主要是搜索错误、reasoning被observation带偏、reasoning loop(卡住后不断重复类似的thought和action)等。 作者还提出了CoT+ReAct,CoT擅长利用模型内部知识,ReAct擅长利用外部知识。 在真实agent任务上,ReAct表现更好。不是因为模型变聪明了,而是thought提升了agent的工作质量,reasoning充当了agent的控制系统。

返回笔记目录
© 2026 Edward Law作品与文章为示例 · 笔记来自个人知识库