Agent 推理范式的形式化收敛性理论 2026
把 ReAct/Reflexion/ToT/Plan-and-Execute 放进统一 POMDP 框架,从 (H,π,update) 三元组差异给出各范式的边界与失败模式分类,并收敛为可操作的范式选择判别式。
约 21 分钟阅读6,118 字2 次阅读博主

把 ReAct/Reflexion/ToT/Plan-and-Execute 放进统一 POMDP 框架,从 (H,π,update) 三元组差异给出各范式的边界与失败模式分类,并收敛为可操作的范式选择判别式。

过去三年,"Agent 推理范式" 这个词已经从研究词汇扩散到工程词汇。ReAct、Reflexion、Tree-of-Thoughts、Plan-and-Execute 这四种范式几乎统治了所有公开的 Agent 论文与开源框架;一个新提出的 Agent 系统,如果不在这四种范式里挑一个站队,就很难在审稿人眼里获得解释力。但这种统一化命名带来一个副作用:研究者和工程师习惯于把它们当成离散的几类方法——像四种不同品牌的产品——而不是看成一个潜在状态空间上的四个不同算子族。这个分类错觉的直接后果,是当下大量经验性结论互相不可证伪:一个团队报告"ReAct 在 HotpotQA 上掉点",另一个团队报告"Reflexion 在 ALFWorld 上更稳",第三团队又说"Plan-and-Execute 在长链工具调用上完胜"。这些经验都是对的,但它们缺少共同的标尺——我们不知道是因为任务不同、模型不同、还是范式本身的归纳偏置不同。
更糟的是,所谓"收敛性"在 Agent 文献里几乎是一个被默认假设、却很少被显式讨论的概念。我们默认 ReAct 的交错循环最终会停、Reflexion 的自批评最终会把任务做完、Tree-of-Thoughts 的搜索树最终会回缩到一条路径——但如果模型本身没有显式的终止保证,这些"最终"只是经验观察,不是理论保证。对一个研究 Agent 推理的人而言,他真正想问的不是"哪个范式在某基准上分高",而是"给定一个有限状态的任务空间,某个范式生成的轨迹是否以非零概率收敛到可接受解"。这才是 Agent 推理范式背后的可计算性问题。本文的目的是把这四个范式放进同一个形式化框架,并由此给出它们各自收敛性的可证伪判别式。
我们先把环境建模成一个经典的部分可观察马尔可夫决策过程(POMDP)元组 ,其中 是世界状态集, 是动作空间, 是转移, 是观察空间, 是观察函数, 是奖励, 是折扣。Agent 在每一步得到一个观察 ,维护一个内部状态 (可以是记忆、笔记、思维链、搜索树等),并产生下一个动作 。这个 在四个范式里的实例化方式完全不同,但它在形式层面都共享"采样下一个动作"这同一函数签名。
接下来我们定义任务。一个 agent 任务 由初始分布 、终止谓词 、以及可接受集 组成。我们关心 agent 的一条轨迹 是否最终命中 ——也就是是否存在 使得 且 。注意这里我们允许终止谓词和可接受集分离:例如一个问答任务的终止谓词可能是"模型停止生成 token",而可接受集是"最终答案字符串命中 ground truth"——这种分离在工程上很常见,但在收敛性证明里会引入额外的复杂项。
四个范式的差异,可以完全压缩成对 三元组的选择。其中 是内部状态更新函数。ReAct 选 ——历史观察/动作/推理三元组的线性追加;Reflexion 在 ReAct 基础上额外引入 ,其中 reflect 是把过去若干步轨迹压缩成一条短评;Tree-of-Thoughts 选 ,search tree 是显式数据结构;Plan-and-Execute 选 ,plan 是显式的子目标序列。
这个统一化看似只是记号整理,但它直接给出后面所有讨论的支点:当我们在比较"哪个范式收敛得快"时,本质是在比较 这对组合下, 生成的轨迹对 的可达性差异。
ReAct 是四个范式里最古老、也最简单的一个。它把一次完整任务执行编码成 Thought → Action → Observation 三元组的线性追加,Agent 在每一步先输出自然语言推理 ,再发出动作 ,再读环境观察 。这个机制的形式化含义是 , 是简单的串接, 是一次自回归采样。整个轨迹对外部世界 的投影是 ,但因为 完全在语言空间里、且只在生成 时影响决策, 这一序列本身几乎不进入外部世界轨迹,只对后续的 起 conditioning 作用。
ReAct 的轨迹在 上是一个非齐次马尔可夫过程: 的"分布"取决于上下文长度和已生成前缀;但作为对 的投影,它可以被近似视为一个马尔可夫决策过程,状态是 。这个近似是否成立,取决于"推理 token 是否携带长期依赖"。经验上我们看到 ReAct 的失败模式有三种典型:
第一种是推理漂移:thought 中的虚构事实逐渐传染到后续 action,例如一个初始错的中间结论在 5 步之后变成 action 的隐含前提,而模型完全没有意识到它在自洽地扩散错误;第二种是动作退化:在长轨迹里模型倾向于重复之前的 action pattern,例如反复尝试同一个工具调用而不换思路;第三种是观察遗忘:当上下文窗口饱和后,模型对早期关键 observation 的引用强度显著下降。
这三种失败模式共享一个底层机制——ReAct 的 是一个无限增长的 append-only buffer,没有任何显式的"遗忘 / 压缩 / 重写"机制。模型对历史的控制完全通过注意力机制间接实现,而注意力的"有效带宽"是有限且不均匀的。当 超过某个长度阈值(经验上通常在 8-16 步之后),收敛概率会以非线性速率下降。我们后面会看到这个结论如何把 ReAct 放在收敛性谱系的最弱一端。
Reflexion 在 ReAct 的 基础上引入第二个状态 :一个长度有界的"反思笔记"序列。每当 ReAct 主循环执行 步( 是超参,通常 5-20)后,agent 用一个二次提示调用语言模型对过去 步做自我批评,输出一条短文本 写入 。下一次主循环开始时, 被附加到上下文前缀里作为"经验教训"。
形式化地,Reflexion 引入了一个状态修正算子 ,使得 的分布不仅取决于最近 步 trace,还取决于所有历史 memo 的拼接。这等价于在原始 POMDP 上定义了一个新 POMDP,其状态空间扩展为 。直觉上,这相当于把 agent 的"经验"从短期上下文里拉出来,放到一个长期但低带宽的信道里。
Reflexion 的收敛性比 ReAct 强在哪里?关键在于 提供了一个"压缩 + 摘要 + 提取教训" 的能力。当主循环的 trace 已经被推理漂移污染时,memo 把这个漂移以更高密度的方式重述一遍,使模型有机会在新的 prompt 上下文里"看到"自己之前的错误。这等于一个外显的 error-attribution 机制——只是这个机制没有强约束保证 memo 真的指向了真正的错误源头。文献里记录到一种典型的 Reflexion 失败模式:虚假反思——memo 提取的"教训"其实是某个无关现象的关联,导致后续主循环把这些无关因素当成关键变量反复尝试。
Reflexion 的收敛性本质上由 memo 长度 与 trace 长度 的乘积决定。如果 不足以覆盖 trace 中关键的失败模式,那么 memo 提取就退化成噪声累加;如果超出某个阈值,memo 之间的相互覆盖也会让 agent 的"经验"互相矛盾,导致下一轮主循环在两个相反的反思之间漂移。经验上 Reflexion 在 5-20 步的中等长度任务上提升最显著,但在极短任务(< 5 步)和极长任务(> 50 步)上常常观察不到稳定收益——这个边界条件和我们的理论预测一致。
Tree-of-Thoughts(ToT)和它的推广 Graph-of-Thoughts(GoT)把 agent 的内部状态从线性 trace 换成显式的搜索图。 是一个节点-边结构,每个节点 是一个"中间想法"(一段自然语言文本),每条边 是一个"推理步骤"。Agent 在每一步要么从当前叶节点扩展出若干候选子节点(expand),要么从所有候选里选择一个继续(select),要么主动回退到一个父节点尝试别的分支(backtrack)。
这个范式把搜索问题显式化:Agent 实际上是在一个有根图上做启发式搜索。select 操作可以视作对每条路径累积价值的评估,expand 是生成新候选,backtrack 是承认之前的选择不好并剪枝。这个范式的形式化含义比 ReAct/Reflexion 更接近经典 AI 搜索(A*、MCTS、beam search),区别仅在于"路径价值"由语言模型在自然语言空间里打分。
ToT 的收敛性论证依赖两个关键假设:(1) 搜索图是有限的——这要求 expand 操作有终止条件,例如最大深度 或总节点数 ;(2) select 操作在某个时间步后会稳定——这要求模型对路径价值的评估在重复查询时变化足够小。第一个假设在工程上由 token 预算或上下文窗口强制保证;第二个假设是 ToT 文献里讨论得最多、也最少被严格证伪的。一个常见的失败模式是 select 算子的"价值震荡"——同一条路径在两次评估中得到的分数差异过大,导致 agent 反复在多条相似路径之间切换,最终超时或栈溢出。
GoT 把 ToT 的树结构放宽到任意有向无环图,允许节点被多条路径共享,这相当于引入了"子问题的结果复用"。形式上,这意味着 agent 内部状态里出现了显式的"工作记忆",共享节点是不同路径交叉点的语义抽象。GoT 的收敛性论证在大多数情况下继承 ToT 的假设集,但额外需要"合并判定"——模型对两个节点是否表达同一子问题的判断稳定。这个判定本身就是 LLM-as-a-judge 范式的经典失效点,所以 GoT 在工程实践中常常需要额外的去重规则。
Plan-and-Execute 把 agent 拆成两个独立模块:planner 和 executor。Planner 接受初始任务描述,输出一个子目标序列 ;Executor 接受子目标 ,调用工具产生结果,回报给 Planner。Planner 看到 executor 的回报后决定下一步是按计划走、跳过当前子目标、还是修订 plan。这个循环持续到 Planner 决定终止。
形式化上, 是一个长度可变的子目标列表, 是"修订"——可能插入、删除、修改某些 。Executor 本身可以实例化为任意范式——典型实现是一个短 ReAct 子 agent——这意味着 Plan-and-Execute 是一个"宏范式",它的收敛性论证需要分层:外层(planner)的收敛性和内层(executor)的收敛性各自独立。
Planner 的核心算子是"子目标收缩"——给定一个粗粒度目标 ,planner 需要预测执行 后世界状态会向哪个子空间收缩。如果这个预测是准确的, 随步数单调递减,planner 自然收敛;如果预测失准(例如一个子目标实际需要的步数远超规划时的估计),planner 必须反复修订 plan,引入额外的元层计算。
Plan-and-Execute 的经典失败模式是规划幻觉——planner 在生成子目标时假设了某些工具能力或世界状态,这些假设在执行时被证伪,但 planner 要花好几轮才能识别出"我的 plan 错了",这段时间里 executor 在不断产生无效动作。还有一种失败是粒度失衡——planner 把任务分解得太粗,导致某个子目标本身就是一道难题,需要嵌套子计划;或者分解得太细,导致 plan 长度失控,planner 自己跑不完 plan。
把四个范式放在同一标尺上,我们可以看到一条清晰的"收敛性梯度":
从失败模式角度看,四个范式有一个共同的根本问题:归纳偏置的隐性假设。ReAct 假设"模型在 trace 长度内能维持自洽推理",Reflexion 假设"反思算子能正确归因错误",ToT 假设"路径价值评估在重复查询时稳定",Plan-and-Execute 假设"planner 的子目标预测足够准确"。这些假设在论文里通常用一句"in practice we observe"带过,但严格地说每一个都需要独立验证。当任务分布漂移时,对应假设失效,相应范式就掉点——这解释了为什么一个团队的经验不能直接迁移到另一个团队。
把这四个范式放进更大语境,它们的位置会更清楚。Chain-of-Thought(CoT)严格说不是一个 Agent 范式——它没有 action 通道——但它和 ReAct 共用同一个 ,差别只在 ReAct 把 CoT 的 thought 与 action 交错,所以 CoT 的收敛性可以视为 ReAct 在"无 action 反馈"这个退化情形下的特例。过程奖励模型(Process Reward Model,PRM)可以视作给 ToT 的 select 算子加了一个外置评分器,从而把"模型自评"的不稳定性替换成"训练过的奖励模型"的稳定性。ToT-mix(混合推理)则是把 Plan-and-Execute 的 planner 和 ToT 的搜索图结合,外层做子目标,内层做局部搜索。
一个尚未充分讨论的问题是"范式混合"的理论保证。当我们在同一个 agent 里同时使用 Reflexion 的 memo 和 ToT 的 search tree 时,memo 应该写到树的哪个层级、tree 的 backtrack 操作是否应该被 memo 影响、两者同时存在时的收敛性论证如何给出——这些都没有标准答案。经验上一些组合(如 Reflexion + ToT)确实在某些基准上稳定超越任一单范式,但理论上的"为什么"很大程度上还没被写出。
另一个值得讨论的是评估协议本身。当下几乎所有 Agent 推理范式的对比实验都在有限预算(如 50 步)下报告成功率,但我们的形式化分析说明,四个范式的相对优劣高度依赖步数预算。ReAct 在 5 步任务上可能完胜,但在 50 步任务上掉点;ToT 在 50 步任务上可能稳赢,但在 100 步任务上因为 select 算子震荡而崩盘。一个更严谨的评估协议应该把"步数预算"作为横轴画出成功率曲线,而不是给单一截止阈值下的成功率排序。
把上面的形式化分析收敛成几条工程判别式:(1) 如果任务平均轨迹长度 < 8 步,直接用 ReAct——额外机制带来的开销不值得。(2) 如果任务在 8-30 步区间且失败模式以"推理漂移"为主,加 Reflexion memo,且 取 5-10 之间。(3) 如果任务需要"试错 + 回退"且工具空间有限(< 20 个动作),用 ToT,且把 max_depth 限制在 6 以内。(4) 如果任务可以被自然分解为 3-10 个粗粒度子目标,且子目标之间的依赖是 DAG,用 Plan-and-Execute,planner 用强模型、executor 用弱模型以节省成本。(5) 如果上述条件都不完全满足,做混合——Plan-and-Execute 外层 + ReAct 或 ToT 内层 + 必要时 Reflexion memo 跨层写入。
对研究者来说,更重要的判别式是"什么时候不该相信某个范式有效"。当任务的状态空间呈现强偏斜分布(例如 95% 的状态是"中间状态",只有 5% 是"终止状态")时,单纯的轨迹范式(ReAct/Reflexion)会因为轨迹中的"中间状态"占主导而几乎无法命中终止状态,此时必须用搜索(ToT)或分解(Plan-and-Execute)。当任务的目标函数无法被低维表达时(例如创意写作、对话状态),select 算子的"价值评估"假设几乎不可能成立,此时 ToT 的提升有限,应优先考虑 ReAct/Reflexion 的 prompt 工程改进而非范式替换。
最后,从理论角度看,目前 Agent 推理范式领域最缺乏的不是新的范式,而是对已有范式的形式化收敛性证明。我们的分析给出了一些判别式,但严格的收敛率上界、样本复杂度下界、规划完备性证明——这些经典 AI 搜索里的标准工具——在 LLM-based agent 上几乎都是空白。把这套工具移植过来,可能比发明第六个第七个新范式对领域的推进更大。一个可以预期的研究方向是把 ToT 的有限搜索图假设与 PRM 的过程奖励模型结合,给出在固定预算下的渐近收敛保证——这条路径在传统强化学习里已经有 Monte-Carlo Tree Search 的形式化基础,而 LLM 作为函数逼近器的引入只改变"路径价值评估算子"的实现细节,不改变搜索收敛性论证的整体骨架。
一句话摘要:把 ReAct/Reflexion/ToT/Plan-and-Execute 放进统一 POMDP 框架,可以把四个范式的差异压缩成对 的不同选择,并由此给出它们的收敛性边界与失败模式分类——这比单纯比较基准分数更能解释为什么同一任务在不同范式上的相对优劣会随步数预算反转。
Conversation
0 条