Reflexion 框架由三个核心模块构成:
Reflexion 的工作流程遵循以下循环:
这一循环持续进行,直到任务成功或达到最大尝试次数。整个过程中模型权重保持冻结,所有"学习"都发生在上下文窗口内。
试错阶段由 Actor 主导,基于当前任务和已有的反思记忆执行任务,生成完整的行为轨迹。这一阶段允许智能体自由探索解决方案空间,即使可能犯错——犯错本身正是 Reflexion 学习的起点。Actor 通常采用 ReAct 风格的推理-行动交替模式,在每一步生成思考痕迹并调用相应的工具或环境动作。
当试错失败后,自反思模型接管处理。它接收两个关键输入:完整的执行轨迹和评估器提供的反馈信号。在此基础上,反思模型完成三项工作:
这一阶段的价值在于将稀疏的数值反馈(如"失败")转化为稠密的语义指导信号。
规划阶段并非独立于 Actor 的额外模块,而是体现在 Actor 下一轮尝试的策略调整中。具体而言:
这种"反思指导规划"的机制使得 Reflexion 能够在不修改模型权重的前提下实现策略优化。
传统强化学习需要通过梯度下降更新模型参数,这需要大量训练样本和昂贵的计算资源。Reflexion 另辟蹊径,将策略更新从参数空间转移到语言空间——智能体不修改权重,而是通过在上下文中积累"经验教训"来调整后续行为。这种机制类似于人类通过复盘总结来提升能力,而非重新学习基础技能。
反思记忆作为额外的上下文条件注入到 Actor 的提示中,直接影响其策略分布。具体而言,第 t 次尝试的策略可以表示为 π_t(a|s) = π(a|s, M_t),其中 M_t 是前 t-1 次尝试累积的反思记忆。随着尝试次数增加,记忆中的有效经验不断增多,智能体的表现也随之提升。
传统强化学习依赖标量奖励信号(如 +1/-1)来指导策略更新,这种信号虽然精确但信息密度极低——它只告诉智能体"做对了"或"做错了",却不说明"为什么错"以及"如何改正"。Reflexion 的核心创新正是将这种稀疏的数值反馈转化为稠密的自然语言反馈,使智能体能够获得具有语义内容的指导信号。
Reflexion 框架设计的关键优势在于其能够灵活整合多种来源和类型的反馈信号:
自反思模型不仅仅是翻译器,它还承担着"信号放大器"的角色。一个二值的失败信号(如单元测试未通过)经过反思模型的加工后,可以扩展为一段包含错误定位、根因分析和改进方向的结构化文本。这种放大效应使得智能体能够从极简的反馈中提取出丰富的学习信号,显著提升了样本效率。
反射记忆以自然语言文本的形式存储在先进先出的缓冲区中。每条反思记录包含三个关键要素:
例如:"我在搜索同一组容器时陷入了重复循环。下次应该优先尝试不同的位置组合。"
由于上下文窗口长度的限制,原始论文将记忆缓冲区容量设定为 1 至 3 条。这一设计权衡考虑了以下因素:
在实际工程落地中,可采用记忆合并、相似度去重、时间衰减等策略优化记忆质量。
虽然 Reflexion 原生设计为会话级学习,但通过将反思持久化到外部向量数据库中,可以实现跨会话的知识积累。按任务类型索引反思记录,能够形成 emergent skill library(涌现技能库),使智能体在长期部署中持续进化。
在长周期多步任务中,最终失败往往源于早期某一步的错误决策,而中间步骤可能看起来都合理。这种非局部信用分配问题使得反思诊断变得困难——智能体需要准确定位"哪一步开始出错"以及"为什么那一步是错的"。
Reflexion 的自反思模型接收完整的执行轨迹作为输入,而非仅看最终结果。这使得它能够:
在 ALFWorld 这类需要 10 步以上操作的序列决策任务中,Reflexion 经过 12 次尝试后解决了 130/134 个任务,显著优于 ReAct 基线的 108/134。这表明反思机制确实能够帮助智能体在长周期任务中纠正早期错误。但在 WebShop 这类需要大量探索和多样性的任务中,Reflexion 未能带来明显提升,说明当失败模式难以用语言精确归因时,反思的效果会受限。
零样本提示(Zero-shot Prompting)要求模型一次性生成正确答案,没有任何纠错机制。在多步推理任务中,任何一步的错误都会向下游传播并放大,最终导致完全错误的结果。Reflexion 通过迭代试错打破了这一脆弱性——即使第一次尝试在某一步出错,反思机制能够识别错误并将其作为经验传递给后续尝试,从而逐步收敛到正确路径。
零样本提示本质上是对策略空间的一次随机采样,成功率完全取决于模型的先验知识。Reflexion 则通过反思记忆实现了有指导的策略搜索:每次失败都会缩小有效策略空间,排除已知的错误路径。在 HotpotQA 多跳问答基准上,CoT + Reflexion 将精确匹配率从 61% 提升至 75%,这一 14 个百分点的增益直接来源于反思对错误推理路径的有效剪枝。
多步推理任务中,模型往往具备解决问题所需的知识,但无法在单次前向传播中正确组织和调用这些知识。Reflexion 的反思过程迫使模型将这些隐性的推理能力显式化为自然语言规则,例如"在回答多跳问题时,应先验证每个子问题的证据来源是否可靠"。这些显式化的规则随后作为额外的上下文引导后续尝试,相当于在推理过程中动态生成了定制化的思维模板。
零样本提示对所有难度的问题采用相同的处理方式,而 Reflexion 能够根据任务的难度自适应地调整尝试次数。简单问题可能在第一次尝试就成功,复杂问题则通过多轮反思逐步逼近。这种弹性使得整体资源分配更加高效——不在简单问题上浪费额外计算,同时在困难问题上投入足够的推理预算。
这是 Reflexion 最具优势的应用领域。单元测试提供了清晰、客观的二值验证信号,编译器报错信息为反思提供了丰富的诊断依据。在实际工程中,Reflexion 模式已被 Devin、Sweep 等 AI 编程助手用于失败恢复——当生成的代码未通过测试时,智能体分析错误日志、生成修复方案并重试,将 HumanEval 通过率从 80% 提升至 91%。
数学问题通常具有明确的正确答案,便于构建自动验证器。Reflexion 可以帮助智能体在证明失败后分析哪一步推导出了问题,并在下一轮尝试中调整证明策略。对于 LeetCode Hard 级别的算法题,Reflexion 将解决率从 7.5% 提升至 15%,虽然绝对值仍然有限,但相对提升达到 100%。
Reflexion 的计算开销主要来自多次迭代执行,每轮迭代都需要完整的 Actor 推理加反思生成。相对于单次 Chain-of-Thought 调用的 Token 消耗:
每次迭代还会检索历史反思记忆,进一步增加输入 Token 数量,形成累积效应。
延迟与迭代次数呈线性关系。对于一个基础推理时间为 2 秒的任务,三轮 Reflexion 迭代的端到端延迟通常在 8 至 12 秒之间。在生产环境中,标准 HTTP 网关超时(通常为 10 至 30 秒)可能会中断正在进行的反思循环,需要将超时阈值配置为 60 至 120 秒,或采用流式响应与轮询模式。
尽管开销显著,但在错误代价高昂的场景中,Reflexion 的投入产出比仍然合理。例如在代码生成任务中,一轮成功的 Reflexion 可以避免人工调试的时间成本;在数据处理流水线中,自动纠错可以减少故障停机损失。关键在于任务的验证信号是否足够清晰可靠。
Reflexion 的效果高度依赖于 Evaluator 的质量。当评估信号模糊或不可靠时,反思可能基于错误的归因而误导后续尝试。MBPP 基准上的性能下降(从 80.1% 降至 77.1%)就是一个典型案例——智能体生成的单元测试存在较高假阳性率,导致其过早判定尝试成功。
当底层模型缺乏足够的领域知识来区分正确与错误时,可能产生"幻觉式改进"——智能体自信地诊断出一个不存在的错误原因,并在下一轮中应用无效的修正方案。这种情况在模型能力低于 GPT-4 级别时尤为明显,starchat-beta 的实验结果显示其使用 Reflexion 后相对基线没有任何提升。
对于缺乏明确验证信号的任务(如创意写作、开放式研究探索),反思容易退化为空洞的套话,无法提供可执行的改进指导。WebShop 任务的失败也印证了这一点——当失败模式是"在庞大搜索空间中探索了错误区域"时,告诉智能体"下次尝试不同的搜索词"并不能有效收敛。
Reflexion 不会改变模型权重,所有学到的内容仅存在于当前会话的上下文窗口中。一旦会话结束,积累的反思记忆即告丢失。要实现跨会话的持续学习,必须借助外部持久化存储机制。
两项 2026 年的独立研究对 Reflexion 的实际表现提出了更审慎的评估:
反思质量与底层大语言模型的推理能力呈强正相关。只有当模型本身具备足够的领域知识和因果推理能力时,才能生成准确的错误归因和有效的改进建议。这也是 Reflexion 在 GPT-4 上表现出色而在较小模型上效果有限的主要原因。
评估器提供的反馈越具体、越可操作,反思的质量越高。二值信号(通过/失败)配合详细的错误日志(如编译器报错信息、单元测试失败详情)能够为反思模型提供充分的诊断依据。相比之下,模糊的标量奖励难以支撑高质量的归因分析。
结构化反思模板能够显著提升反思的可执行性。推荐采用"失败现象 → 根因分析 → 改进行动"三段式模板,强制反思输出包含具体的约束条件、涉及的工具或 API、以及明确的下一步行动指令,避免生成"下次要更仔细"这类无效的空话。
记忆缓冲区的管理策略直接影响反思的利用率。过于激进的淘汰机制可能丢失关键经验,而过大的缓冲区则会稀释注意力并增加 Token 成本。实践中需要根据任务特点调整记忆容量、去重策略和优先级排序规则。
Reflexion 本质上是一个串行多轮迭代过程,每轮都需要完整的推理-评估-反思周期。即使采用高性能模型,单轮延迟也在数秒量级,多轮迭代的累积延迟很容易超过 10 秒。这对于语音助手(首字延迟要求 ≤ 150 毫秒)或实时对话机器人(首字延迟要求 ≤ 300 毫秒)等场景来说是完全不可接受的。
Reflexion 更适合以下非实时场景:
对于需要低延迟的实时交互,可采用以下轻量级替代方案:
Reflexion 在具有清晰验证信号的结构化任务上表现出良好的泛化能力。HumanEval 代码生成(91% vs 基线 80%)、ALFWorld 序列决策(130/134 vs 基线 108/134)、HotpotQA 多跳问答(75% vs 基线 61%)等多个异构基准上的持续提升,证明其核心机制不依赖于特定任务域。
Reflexion 的框架设计独立于底层模型架构,理论上可应用于任何支持上下文学习的大语言模型。然而实验表明,其增益幅度与模型的基础能力密切相关—— frontier 模型(如 GPT-4 级别)能获得 10 个百分点以上的提升,而中等规模模型的增益则较为有限。
Reflexion 可与多种推理增强技术组合使用:
截至 2026 年,主流智能体框架均已内置 Reflexion 或其变体的支持:LangGraph 提供了官方的 Reflexion 教程和 LATS 扩展;CrewAI 在 Agent 层面支持 reasoning=True 和 max_reasoning_attempts 参数;AutoGen 将其作为标准的 Reflection 设计模式文档化。这种广泛的框架支持进一步证明了 Reflexion 的通用价值和工程可行性。
Chain-of-Thought 是一种单次通过的推理增强技术,通过在答案之前显式生成逐步推理过程来提升单次输出的质量。它相当于给模型一个"先想清楚再回答"的提示,但整个推理链条是线性的、不可回溯的——一旦某一步推理出错,错误会沿着链条向下游传播且无法修正。
Reflexion 则是一种跨多次尝试的学习机制,它不关注单次推理的内部结构,而是关注如何在失败后利用反馈改进下一次尝试的整体策略。它将"犯错"转化为"学习信号",通过迭代逼近正确答案。
CoT 追求的是"一次做对",适合有明确推理路径的问题;Reflexion 追求的是"越做越好",适合可通过迭代优化的复杂任务。
两者并非互斥关系,而是可以在不同层次上协同工作。在实际应用中,最常见的模式是在 Reflexion 的每次 Actor 尝试内部使用 CoT 进行逐步推理,同时在外层通过反思机制实现跨尝试的学习。这种组合既保证了单步推理的质量,又具备了从失败中积累经验的能力。