Paper Reading
Agent foundations · comparative reading

ReAct × Reflexion

一个负责在单次轨迹中“边想边做”,一个负责在多次尝试间“把失败变成记忆”。两者不是替代关系,而是 renderer-in-the-loop 程序化材质智能体的内环与外环。

ReAct · ICLR 2023Reflexion · NeurIPS 2023正文、附录、官方代码交叉核对页面更新:2026-09-11
论文事实

先给结论

ReAct 改写的是一步内的策略表示,Reflexion 改写的是一次失败后的上下文。前者把语言推理并入动作空间,后者把评估信号转写为可读、可复用的 episodic memory。

ReAct

题名:ReAct: Synergizing Reasoning and Acting in Language Models

作者:Shunyu Yao 等

身份:2022 年首次发布 arXiv,ICLR 2023 正式论文。v3 为 camera ready。

一句话:交替生成 Thought、Action,并接收 Observation,使 reasoning 与 acting 在同一 trajectory 内相互纠正。

论文 · 项目页 · 官方代码

Reflexion

题名:Reflexion: Language Agents with Verbal Reinforcement Learning

作者:Noah Shinn 等

身份:2023 年首次发布 arXiv,NeurIPS 2023 正式论文。

一句话:Actor 完成一次尝试后,由 Evaluator 给出信号,Self-Reflection 将信号转为语言经验,写入 memory 供下一次尝试使用。

论文 · 会议页 · 官方代码

关键辨析Reflexion 的 Actor 可以直接采用 ReAct。因此最自然的组合不是二选一,而是内层 ReAct 生成过程轨迹,外层 Reflexion 根据整条失败轨迹生成跨尝试经验。
论文事实综合对照

五个容易混淆的能力

对照矩阵。结论综合自两篇论文的算法定义与实验设置。
能力ReActReflexion在材质任务中的含义
trajectory-level reasoning / action核心。Thought 与 Action 在同一次尝试中交错。由 Actor 承担,Actor 可为 ReAct 或 CoT。选节点、连边、设参数、渲染、读反馈的单次构图过程。
environment observation每个外部 Action 后返回 Observation,用于下一步推理。Evaluator 可读取整条 trajectory 与任务反馈。编译状态、renderer 输出、图像差异、节点错误与资源约束。
verbal reflection没有独立的失败后反思模块。Thought 是在线推理。核心。将稀疏 reward 与轨迹放大为具体语言经验。“法线高频不足,下一次先分离尺度并增加微表面支路”。
episodic memory当前 context 中保留过程轨迹,本质是短期上下文。显式长期记忆。论文通常保留最近 1 至 3 条 reflection。跨 attempt 保存失败原因与修改原则,而非整段原始日志。
跨尝试改进原始方法不以跨 episode 学习为核心,重新采样不等于学习。核心。下一次 policy 条件化于 memory,模型权重不更新。同一参考图像进行多轮“构图、渲染、诊断、重试”。
Attempt tReAct 内环
TrajectoryThought · Action · Observation
Evaluator任务 reward 与诊断
Reflection压缩为可执行经验
Attempt t+1携带 episodic memory
论文事实

ReAct:单次尝试内的闭环

动机与 significance

CoT 能形成多步推理,却只能在模型内部知识上静态展开,容易累积事实幻觉。Act-only 能与外部环境交互,却缺少高层目标分解、进度追踪与异常恢复。ReAct 的贡献不是新网络结构,而是一种 prompting paradigm:让语言模型在同一序列中显式生成推理轨迹与环境动作。

它的重要性在于把“外部世界”写回 context。动作获取的事实约束下一步推理,推理又决定下一次检索或操作,从而形成 reason to act 与 act to reason 的双向耦合。原文与附录见 完整 HTML

问题定义与数学建模

在时间步 (t),环境给出 observation (o_t\in\mathcal{O}),agent 根据上下文 (c_t) 选择 action (a_t\in\mathcal{A}):

\[c_t=(o_1,a_1,\ldots,o_{t-1},a_{t-1},o_t),\qquad a_t\sim\pi(a_t\mid c_t).\]

ReAct 将动作空间扩展为领域动作与语言空间的并集:

\[\hat{\mathcal{A}}=\mathcal{A}\cup\mathcal{L}.\]

若 (hat a_t\in\mathcal{L}),它是 Thought,不改变外部环境,也不触发 observation,而是直接更新 context:

\[c_{t+1}=(c_t,\hat a_t).\]

这里的 Thought 不是 reward,也不是训练标签意义上的 latent state。它是可读的语言动作,用于目标分解、事实提取、进度追踪、检索改写和异常处理。

算法、输入与输出

Task问题、claim 或目标
Thought计划与状态解释
Action搜索或环境操作
Observation工具或环境返回
Finish答案或成功状态

知识任务使用 dense Thought,基本交替为 Thought、Action、Observation。长时序决策任务使用 sparse Thought,由模型自己决定何时思考,避免每个低层动作都产生冗长推理。

训练与推理

主结果属于冻结模型的少样本推理。主模型为 PaLM-540B。HotpotQA 使用 6 个手工 ReAct exemplar,FEVER 使用 3 个。ALFWorld 每个任务类型人工标注 3 条轨迹,并以其中 2 条的 6 种排列构造 6 套 prompt。WebShop 是 one-shot。主实验采用 greedy decoding。

补充 fine-tuning。作者用 ReAct 自动生成且答案正确的 3,000 条 trajectory 对 PaLM-8B 与 PaLM-62B 做训练。batch size 为 64。ReAct 与 Act 在两种模型上均训练 4,000 steps;Standard 与 CoT 在 8B 上训练 2,000 steps,在 62B 上训练 1,000 steps。论文没有公开学习率、优化器与硬件,因此复现时应标记为未报告。

知识任务的 action space 与终止条件

search[entity] 返回对应 Wikipedia 页首 5 句,若无精确页面则返回前 5 个相似实体。lookup[string] 依次返回当前页面中包含字符串的句子。finish[answer] 提交答案并终止。HotpotQA 最多 7 steps,FEVER 最多 5 steps;超限时可回退到 CoT-SC。

CoT-SC 混合策略

CoT-SC 在 temperature 0.7 下采样 21 条 CoT trajectory,以多数答案为输出。ReAct 超步数则回退到 CoT-SC;当 CoT-SC 多数答案出现次数少于 (n/2) 时,回退到 ReAct。它证明内在知识与外部知识互补,而不是证明 ReAct 在所有问题上都优于 CoT。

论文未报告或难以复现的细节

PaLM 权重不可公开获取。fine-tuning 的学习率、优化器、训练硬件与精确 wall time 未报告。官方仓库主要复现 GPT-3 prompting,并公开 notebook、prompt 和环境封装,不能等价复现 PaLM 主结果。

论文事实

Reflexion:跨尝试的语言策略更新

动机与 significance

传统 RL 用大量交互和梯度更新参数。对闭源或超大 LLM 而言,成本高且常不可行。Reflexion 将二元或标量反馈转换为第一人称语言经验,存入长期 memory,让下一次尝试在相同模型权重下改变行为。作者把这种经验称为 semantic gradient,但它是类比,不是真正可微梯度。

模块与形式化

系统由 Actor (M_a)、Evaluator (M_e)、Self-Reflection (M_{sr}) 和 memory (mem) 构成。策略参数化为模型与记忆的组合:

\[\pi_{\theta}(a_i\mid s_i),\qquad \theta=\{M_a,mem\}.\]

第 (t) 次尝试生成 trajectory ( au_t),Evaluator 产生 reward (r_t),Self-Reflection 再产生语言经验 (sr_t):

\[r_t=M_e(\tau_t),\qquad sr_t=M_{sr}(\tau_t,r_t,mem),\qquad mem\leftarrow mem\oplus sr_t.\]

论文实现将 (mem) 限制为最近 (Omega) 条经验,通常 (Omega\in\{1,2,3\})。trajectory history 是短期记忆,reflection buffer 是跨 trial 的长期记忆。

Algorithm 1 的准确读法

  1. Actor 与环境交互,生成初始 trajectory。
  2. Evaluator 判断成功与否或给出标量 reward。
  3. Self-Reflection 阅读 trajectory、reward 与已有 memory,输出具体改进经验。
  4. 将经验写入有容量限制的 memory,重置环境并开始下一 trial。
  5. 直到通过或达到最大 trials。
算法伪代码存在一个文字条件瑕疵论文 Algorithm 1 排版为“while evaluator not pass or trial 小于上限”,按通常终止逻辑应理解为未通过且尚未达到上限。正文描述与代码均支持这一解释。这是对伪代码的校正性解读,不是作者额外主张。

不同任务中的 Evaluator

任务ActorEvaluator / feedbackmemoryprompt
ALFWorldReAct,GPT-3环境完成信号;重复同一 action 与 response 超过 3 次,或 action 数超过 30 时触发反思;另测 LLM binary classifier最近 3 条2 条领域 few-shot trajectory
HotpotQACoT、CoT 加 ground-truth context、ReActexact match 产生 binary success3 条CoT 6-shot,ReAct 2-shot,reflection 2-shot
ProgrammingGPT-4 生成与修改代码自生成测试、AST 过滤、编译器或解释器日志;测试最多 6 个1 条严格 function-body instruction;主代码生成 zero-shot

训练与推理

论文不更新 LLM 权重,不执行梯度训练。所谓 verbal reinforcement learning 完全发生在推理时,通过环境试错、语言反思与 memory 更新改变后续条件分布。ALFWorld 最多 12 个连续 trial;HotpotQA 对失败样本重试,直到同一问题连续失败 3 次;编程任务在内部测试未通过时迭代。

官方仓库提供 ALFWorld、HotpotQA、programming 与 WebShop 的代码及论文运行日志,但依赖当时的 GPT-3 / GPT-4 API。仓库明确提醒 API 可用性与费用会影响复现。见 官方仓库说明

论文事实

实验与结果对读

ReAct:四个 benchmark

ReAct Table 1,PaLM-540B prompting。HotpotQA 为 EM,FEVER 为 accuracy。
方法HotpotQAFEVER
Standard28.757.1
CoT29.456.3
CoT-SC33.460.4
Act25.758.9
ReAct27.460.9
CoT-SC → ReAct34.264.6
ReAct → CoT-SC35.162.0
Supervised SoTA67.589.5

ReAct 并不稳定优于 CoT。它在 FEVER 更强,在 HotpotQA 略弱。混合策略才是 prompting 中的最佳方案,同时距任务专用监督模型仍很远。

ReAct Table 3 与 Table 4。ALFWorld 与 WebShop 结果。
环境方法指标结果
ALFWorldAct best of 6overall success45%
ALFWorldReAct averageoverall success57%
ALFWorldReAct best of 6overall success71%
ALFWorldReAct-IM best of 6overall success53%
ALFWorldBUTLER best of 8overall success37%
WebShopActscore / SR62.3 / 30.1
WebShopReActscore / SR66.6 / 40.0
WebShopIL + RLscore / SR62.4 / 28.7
WebShopHuman expertscore / SR82.1 / 59.6

ReAct failure analysis

作者人工检查 200 条 HotpotQA trajectory。成功样本中,ReAct 的事实或推理幻觉为 6%,CoT 为 14%。失败样本中,ReAct 的 reasoning error 为 47%,无效 search result 为 23%;CoT 的 hallucination 占失败的 56%。这说明 grounding 降低事实幻觉,却会引入工具检索失败与结构约束。

Reflexion:跨 trial 的收益

ALFWorld 在 134 个任务上评测。ReAct 加 Reflexion 使用简单 heuristic 完成 130 个任务,并在 12 trials 中持续改善;ReAct-only 在第 6 至 7 trial 后停止增长。HotpotQA 每个实验抽取 100 个 distractor 问题。baseline 在 temperature 0.7 的重复尝试中没有解决任何首轮失败问题,而 Reflexion 产生系统性提升。

Reflexion Appendix Table 5,100 个 HotpotQA 问题。数值为 accuracy。
Actor 与模型BaselineReflexion绝对提升
CoT (GT) + text-davinci-0030.600.77+0.17
CoT (GT) + gpt-3.5-turbo0.570.71+0.14
CoT (GT) + GPT-40.680.80+0.12
ReAct + text-davinci-0030.300.55+0.25
ReAct + gpt-3.5-turbo0.260.38+0.12
ReAct + GPT-40.390.51+0.12
Reflexion Table 1,代码生成 Pass@1。
Benchmark此前 SoTAGPT-4 baselineReflexion
HumanEval Python65.880.191.0
HumanEval Rust未报告60.068.0
MBPP Python67.780.177.1
MBPP Rust未报告70.975.4
Leetcode Hard Python未报告7.515.0

消融真正说明了什么

Reflexion Table 3,50 个最难 HumanEval Rust 问题。
方法测试生成自反思Pass@1
Base0.60
仅自反思0.52
仅测试反馈0.60
Reflexion0.68

反思不是无条件有效。没有可靠 evaluator 时,反思会对正确代码做有害修改;只有测试反馈但不进行语言 credit assignment,也没有超过 baseline。HotpotQA 的 memory ablation 还显示,self-reflection 比仅加入最近一次 trajectory 的 episodic memory 再高 8 个百分点。

Evaluator 是性能上限MBPP Python 的 self-generated tests false-positive rate 为 16.3%,HumanEval Python 仅 1.4%。前者 Reflexion 低于 GPT-4 baseline,直接证明错误反馈会把错误经验写入 memory。
结构化重绘

关键 Figure / Table 导读

以下为基于原图 caption 与正文的单文件结构化重绘,不复制论文位图。编号沿用论文。

ReAct Figure 1

Reason only

Question → Thought chain → Answer

信息全部来自参数知识。优点是推理形式自由,弱点是事实无法被外部验证,错误会沿链传播。

Reason + Act

Question → Thought → Search → Observation → Thought → Finish

Observation 把真实环境证据写回 trajectory。Figure 1 同时展示 QA 与 ALFWorld,强调通用接口而非某个特定工具。

ReAct Figure 3

展示模型尺度、prompting 与 fine-tuning 的关系。小模型仅靠 few-shot 很难模仿复杂 ReAct 格式,但用 3,000 条正确 trajectory fine-tune 后,PaLM-8B ReAct 超过所有 PaLM-62B prompting 方法,PaLM-62B fine-tuned ReAct 超过全部 PaLM-540B prompting 方法。原图未在文本版提供全部精确柱值,因此此处不补写无法核实的数值。

Reflexion Figure 2

Actor(M_a) 产生 action 与 trajectory
Environment产生 observations
Evaluator(M_e) 产生 reward
Self-Reflection(M_{sr}) 产生 (sr_t)
Memory下一 trial 的 context

Reflexion Figure 3 与 Figure 4

Figure 3 是 134 个 ALFWorld task 的累计解决曲线,并分析失败原因。Figure 4 比较 HotpotQA 中 ReAct、CoT 与 CoT (GT) 的 Reflexion 收益,同时包含 memory ablation。两图最有价值的不是终点分数,而是 baseline 重试停滞、Reflexion 随经验积累继续提高的曲线形状。

Reviewer 评议

局限、失败模式与锐评

ReAct

  • 主模型 PaLM-540B 不公开,主结果不可完全复现。
  • 依赖少量人工轨迹,prompt 选择可影响 ALFWorld 结果,论文报告 best of 6 也会放大选择优势。
  • 结构化交错提升 grounding,却降低自由推理能力,并出现重复 Thought / Action loop。
  • 无效检索占 ReAct 失败的 23%,工具质量成为系统瓶颈。
  • 可解释 trace 不等于忠实反映内部因果过程,只能说“可检查”。

Reflexion

  • “verbal RL”不更新权重,没有传统 RL 的收敛或策略改进保证。
  • Evaluator 错误会成为错误 semantic gradient,且 memory 会持续放大它。
  • 只保留最近 1 至 3 条 reflection 是工程折中,不是经过充分验证的最佳记忆结构。
  • WebShop 四轮无改善,说明局部反思无法替代多样化探索。
  • 多次 trial 增加调用成本,而论文没有系统报告 token、费用与 latency。
最严格的判断ReAct 证明“语言化中间过程加环境闭环”在多类任务中有效;Reflexion 证明“可靠反馈加语言记忆”能让固定模型跨尝试改善。但两篇都没有证明开放环境中的稳定最优性,也没有解决 evaluator 偏差与长上下文污染。
课题建议

落到 renderer-in-the-loop procedural material agent

以下框架是当前课题的研究表示,不是 ReAct 或 Reflexion 论文的原始贡献:

\[I \xrightarrow{\mathrm{Context\ Optimizer}} C^{\ast} \xrightarrow{\mathrm{Agent}} G \xrightarrow{\mathrm{Renderer}} \hat I\]
\[C^{\ast}=\arg\max_C R\!\left(\mathrm{Render}(\mathrm{Agent}(C)),I\right).\]

三条研究线的准确对应

研究线优化对象ReAct / Reflexion 提供什么不应混淆什么
Procedural Material Generation程序化材质图 (G) 与其参数提供可闭环搜索与修正的 agent 机制两篇论文没有材质图表示、renderer 或材质指标
Context Optimization输入给 agent 的 (C),包括视觉分解、约束、历史与工具状态ReAct 展示 observation 如何进入当前 context;Reflexion 展示反馈如何压缩为跨 trial context单纯写更长 prompt 不等于 context optimization
Agent行动策略与搜索过程ReAct 是内环控制;Reflexion 是外环经验更新重复调用模型但不保存可用经验,不是 Reflexion

建议的双环架构

Context (C^{\ast})尺度、区域、材质属性与约束
Graph Action增删节点、连边、调参
Render Obs.图像、编译、性能反馈
Reflection失败归因与下一步原则
Memory下一 attempt 可检索经验

ReAct 内环 action space

建议将动作限制为 typed API:add_node(type)connect(src, dst, slot)set_param(node, key, value)render(view, maps)inspect_graph()finish()。Observation 至少包含编译错误、节点图摘要、各通道渲染、图像指标与预算状态。

Reflexion 外环 memory

不要保存泛化的“继续优化”。Reflection 应固定为四字段:失败证据、归因尺度、应修改的图结构、下一次禁止重复的操作。示例:宏观砖缝位置已对齐,但 roughness 高频缺失;原因是同一噪声同时承担高度与粗糙度;下一次保留宏观 height 分支,新增独立 micro-noise 进入 roughness;禁止整体提高对比度。

Evaluator 设计

材质 evaluator 应是多目标而非单一 CLIP 相似度:

\[R=\lambda_sR_{\mathrm{structure}}+\lambda_aR_{\mathrm{appearance}}+\lambda_pR_{\mathrm{physical}}+\lambda_cR_{\mathrm{compile}}-\lambda_bR_{\mathrm{budget}}.\]

其中结构项评估大尺度布局与重复规律,appearance 项评估参考图像一致性,physical 项检查法线、粗糙度与高度的合理性,compile 项是硬约束,budget 项惩罚节点数、渲染时长与无效 action。权重需要在开发集上确定,不能由论文直接给出。

核心研究假设同等 LLM 与 action budget 下,结构化 (C^{\ast}) 能提高首轮成功率;ReAct 式 rendering feedback 能提高单次 attempt 的修正效率;Reflexion 式因果压缩 memory 能提高跨 attempt 的 cumulative success。三者应分别消融。
实验建议

可发表的实验设计

最小 2 × 2 × 2 因子实验

因子对照处理回答的问题
Context原始图像加通用 instructionContext Optimizer 生成 (C^{\ast})视觉分解是否改善图搜索起点
Inner loop一次性生成完整节点图ReAct 式工具与渲染闭环observation 是否改善单次轨迹
Outer loop独立 retry 或最近 trajectoryReflexion 式语言经验 memory跨尝试提升是否来自反思而非更多采样

必须报告的指标

建议同时报告 first-attempt success、best-of-k、cumulative success by trial、reward AUC、每次成功的 renderer calls、token cost、wall time、graph validity、节点数、参数可编辑性,以及分尺度的结构与外观指标。仅报告 best-of-k 会掩盖 agent 的学习效率。

关键消融

  • 完整 reflection 对比只保存上一次 trajectory。
  • 语言 reflection 对比直接保存标量 reward 与像素差图。
  • 全局单分数对比尺度分解 evaluator。
  • 最近 1、3、全部 memory 对比检索式 memory。
  • 同一 Actor 下独立 retry 对比携带 memory 的 retry。
  • oracle evaluator 对比自动 evaluator,测量 evaluator false positive 对性能的影响。
最可能形成论文贡献的点不是把 ReAct 和 Reflexion 接到 Substance Designer,而是提出“面向程序化材质的可诊断 context representation 与多尺度 renderer feedback”,并证明它们改善 credit assignment、降低无效节点操作、提升跨尝试样本效率。

References

  1. Yao, S. et al. ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv v3 为 camera ready。
  2. ReAct authors. Official project page. 论文、示例与代码入口。
  3. Yao, S. et al. Official ReAct repository. GPT-3 notebooks、prompts 与环境封装。
  4. Shinn, N. et al. Reflexion: Language Agents with Verbal Reinforcement Learning. NeurIPS 2023 official proceedings.
  5. Shinn, N. et al. Reflexion arXiv record. 正文与 appendix。
  6. Shinn, N. et al. Official Reflexion repository. 代码、运行日志与数据。
  7. Yang, Z. et al. HotpotQA. EMNLP 2018.
  8. Thorne, J. et al. FEVER. NAACL 2018.
  9. Shridhar, M. et al. ALFWorld. ICLR 2021.
  10. Yao, S. et al. WebShop. NeurIPS 2022.
  11. Chen, M. et al. HumanEval. 2021.
  12. Austin, J. et al. Mostly Basic Python Problems. 2021.

证据分级:带“论文事实”的内容来自原文、附录或官方代码;“综合对照”是对两篇论文机制的并列解释;“课题建议”是面向程序化材质研究的迁移设计,不属于原论文贡献。无法从公开资料核实的数值均明确标为未报告。