Agent 越用越"自信",却越来越错——EDV 用三权分立堵住经验学习的自我确认陷阱

你有没有遇到过这种情况:一个 LLM 智能体刚部署的时候挺机灵,跑着跑着却开始反复犯同一个错,而且犯得理直气壮。你去翻它的记忆库,发现里面赫然记着一条"成功经验"——可那条经验本身就是错的。

这事我自己踩过坑。当时做的是一个带长期记忆的工具调用 Agent,思路很朴素:让它自己执行任务、自己总结哪步走对了、自己把"成功"的做法写进记忆下次复用。听起来无懈可击对吧?结果上线一段时间后,某些任务的成功率不升反降。排查了半天才意识到问题出在哪——它把一条"看起来很合理但其实是错的"轨迹当成功经验存了下来,然后每次遇到类似任务都去检索它、强化它。错误就这么滚雪球了。

这篇 6 月底挂出来的论文(arXiv:2606.24428)给这个现象起了个挺贴切的名字——自我确认陷阱(Self-Confirmation Trap)。更重要的是,它给了一个我看完觉得"对,就该这么干"的解法——EDV,一个 Execute-Distill-Verify 的三段式框架。


核心摘要

经验驱动的自我进化,是 LLM 智能体在开放世界里持续变强的关键。但现在主流的经验学习方法几乎都是单智能体闭环:同一个 Agent 既当运动员(执行任务)、又当裁判(判断哪些该写进记忆)。问题在于,执行和评估用的是同一个推理过程、同一个视角——一条内部自洽但客观错误的轨迹,从 Agent 自己的角度看就是"我做对了",于是被当成功经验存下来,后续不断被检索复用,错误持续累积。这就是自我确认陷阱。

EDV 的破局思路是三权分立:执行(Execute)阶段让多个异构 Agent 并行探索同一任务、产出多样化轨迹;蒸馏(Distill)阶段派一个第三方 Agent 对这些轨迹做横向对比、提炼候选经验,避开执行者的自我美化;验证(Verify)阶段由执行组用共识机制投票,只有通过的经验才写入共享或私有记忆。三个角色一解耦,经验学习就从"孤独的自我反思"变成了"协作式构建 + 入库前过滤"。

效果上,在 τ²-bench、Mind2Web、MMTB 三个长程基准上 EDV 都稳定超过强基线:τ²-bench 平均 Pass@1 做到 86.6(对比 Router 的 83.5、单模型无记忆的 76–80),MMTB 总分 58.10。更狠的是效率——RETAIL 子集上平均推理 token 消耗比 ReasoningBank 降了 24.5 个点,还做得更好。

我的判断:这篇论文最值钱的地方不在于"多智能体协作"这个壳——这个大家都在玩——而在于它把多智能体从"提升任务求解"挪到了"提升经验构建本身的可靠性"上,并且用一个污染实验硬核地证明了自我确认陷阱是真实存在、真会造成损失的。这不是又一篇蹭 Agent memory 热度的工作。


论文信息

  • 标题:Escaping the Self-Confirmation Trap: An Execute-Distill-Verify Paradigm for Agentic Experience Learning
  • 作者:Shiding Zhu, Yudi Qi, Yajie Wang, Jiaze Li, Chao Song, Yaorui Shi, Yibo Miao, Hanqi Gao, Kai Zhang
  • arXiv:2606.24428 (cs.CL),2026 年 6 月 23 日提交
  • 代码:https://github.com/shidingz/EDV

问题在哪:运动员兼裁判,这事本身就不靠谱

先把"经验学习"这件事讲清楚。一个 Agent 在环境里跑任务,会产生一条轨迹——状态、动作、观察交替出现的序列。跑完之后,我们希望它能从中提炼出可复用的经验,存进记忆,下次遇到类似任务直接检索来用。这套思路在 ReasoningBank 这类工作里已经比较成熟了。

但论文一上来就盯住了一个被大家忽略的结构性缺陷:在缺乏明确 ground truth 的开放世界里,执行和评估被耦合在了同一个推理过程中。

什么意思?Agent 跑完一条轨迹,然后还是这个 Agent 来判断"这条轨迹算不算成功、值不值得写进记忆"。问题是,如果这个 Agent 在执行时就有某种系统性的认知偏差,那它在评估时大概率会复现同样的偏差——它看不出自己错在哪,因为错的恰恰是它的"看法"本身。

论文把这个用一个条件概率讲得很干脆。设 \(c(\tau) \in \{0,1\}\) 是轨迹的客观正确性,\(v_{\pi_\theta}(\tau) \in \{0,1\}\) 是 Agent 自己的批准决策。单智能体闭环里,执行和评估都用同一个策略 \(\pi_\theta\),于是:

\[P\big(v_{\pi_\theta}(\tau)=1 \mid c(\tau)=0\big)\]

这个概率会被显著抬高。翻译成人话:一条客观上错误的轨迹,被 Agent 自己盖章"通过"的概率高得离谱。 一旦写进记忆,它就会被反复检索、复用,错误就持续累积。

论文举了个特别具体的例子,我觉得比公式更能说明问题。一个航班改签任务:单智能体系统反复尝试用旅行凭证(travel certificate)去支付,但它没识别出一个隐藏约束——凭证根本不能用于修改已有预订。可它每一步的动作在局部上都"看起来连贯",所以从它自己的视角这条轨迹合情合理,于是在自我验证里被判成功、存进记忆。结果呢?以后每次遇到类似的改签任务,它都会重新掉进这个坑。

这就是关键。问题不在于 Agent 蠢,而在于它没有一个外部视角来戳破自己的自洽幻觉

下面这张图把传统做法和 EDV 的差别摆得很清楚:

图1:传统单智能体经验学习 vs EDV 框架

图1:上半部分是现有做法——单个 Agent 跑出轨迹后自蒸馏(Self-Distillation)直接写入记忆,整条链路是一个人闭环。下半部分是 EDV——一个异构 Agent 池(图中能看到不同厂商的模型图标)并行产出多条轨迹(Traj. 1~n),经过蒸馏得到候选经验(Candidate Experience),再经过 Verify 这道关卡,最后才分别写入共享记忆库(Shared Memory Bank)和私有记忆库(Private Memory Bank)。注意那朵带购物车的"Verify"云——它就是堵住错误经验入库的闸门。

所以论文真正的命题不是"怎么收集更多经验",而是:怎么在经验写进记忆之前,就把错误和噪声过滤掉? 进一步,它问了一个挺有意思的问题——多智能体协作,能不能不只是用来把任务做得更好,而是用来让"经验构建"这件事本身更可靠?


方法核心:Execute-Distill-Verify,三个角色各管一摊

EDV 的整体设计可以拆成两层:经验构建阶段(离线,把高质量经验攒出来)和推理使用阶段(在线,新任务来了检索经验来用)。

先说一个贯穿始终的设定:异构 Agent 池 \(\mathcal{A} = \{A_1, \dots, A_K\}\),每个 Agent 用不同的基座模型或提示策略。对每个任务,EDV 随机采样一个子集当执行组,再随机挑一个当蒸馏 Agent。这个"随机"很重要——它避免了某个 Agent 长期固化成某种角色、带来持久的偏置。

整体流程看这张图:

图2:EDV 框架总览

图2:左侧粉色区是 STAGE 1 经验构建——Agent x/y/z 循环协作,产出三样东西:Ability Matrix(能力矩阵)、Shared Memory Bank(共享记忆库)、Private Memory Bank(私有记忆库)。中间蓝色区是 STAGE 2 推理使用的"选择与检索"——先用 Model Selector 根据能力矩阵匹配最合适的求解模型,然后判断 Match Found?有就直接取共享记忆,没有就降级去查私有记忆。右侧是最终基于检索到的记忆做推理输出。整套设计的精妙之处在于:构建是离线、可并行的,在线只需轻量查找。

Execute:让异构 Agent 并行铺开解空间

执行阶段构造一个异构执行组 \(\mathcal{A}_{\text{exec}}\),组里每个 Agent 独立和环境交互,各自产出一条候选轨迹:

\[\mathcal{T}(q) = \{\tau_i \mid \tau_i \sim \pi_i(\cdot \mid q),\; A_i \in \mathcal{A}_{\text{exec}}\}\]

这一步的意义,论文说得很到位:它要的不是简单地多试几次,而是用异构性去暴露不同的成功/失败模式。 同一个任务,GLM 可能走通了一条路、MiniMax 可能卡在另一处——这种差异本身就是信息。你想想看,如果三个 Agent 都是同一个模型,那它们大概率会犯同样的错,多试几次也是白搭。异构才是关键。

Distill:派个"第三方"来做横向对比

这是我觉得整个框架里最聪明的一刀。蒸馏阶段引入一个第三方蒸馏 Agent \(A_{\text{distill}}\),它不参与执行,只负责对执行组产出的那一堆轨迹做跨轨迹对比,输出候选经验集 \(\mathcal{E}_{\text{cand}} = \{e_1, \dots, e_m\}\)

注意这里和传统做法的本质区别:传统的自蒸馏是执行者复述自己那条"最佳"轨迹——但它有选择偏置,它会美化自己的决策。而第三方蒸馏 Agent 不复述任何单条轨迹,它做的是识别多条轨迹之间的有用差异,把这些差异提炼成可泛化的经验。这就把"执行者中心的自我总结"换成了"中立第三方的对比分析"。

图3:EDV 经验构建阶段的详细流程

图3:左侧 Execute——Agent x 和 Agent y 在同一个环境(ENV)里各自跑出多条轨迹(Traj. x₁~xₙ、y₁~yₙ),图里能看到轨迹被标了对错(✓/✗)。中间 Distill——Agent z 作为第三方,对所有轨迹做对比分析,一边做 Experience Generation 产出候选经验 e₁~eₘ,一边 Update Ability Matrix(更新能力矩阵)。右侧 Verify——候选经验经过那朵购物车云的共识投票,根据投票结果分别写入 Agent X 的私有库、Agent Y 的私有库,或者大家都认可的共享记忆库。这张图把"谁干什么、信息怎么流"讲得最透。

Verify:共识投票,默认拒绝

这是 EDV 真正中断自我确认陷阱的那道关卡。验证组就等于执行组(\(\mathcal{A}_{\text{verify}} = \mathcal{A}_{\text{exec}}\)),每个执行者基于自己的执行上下文,对每条候选经验给一个二元判断 \(V_j(e) \in \{0,1\}\)

然后是一套严格的默认拒绝(default-reject)策略:

  • 全票通过 → 写入共享记忆库(这是大家都认可的通用经验)
  • 部分通过 → 写入对应 Agent 的私有记忆库(只对特定 Agent 有效)
  • 其余情况 → 直接丢弃

这个设计的潜台词是:宁可错杀,不可放过。 默认拒绝意味着只有真正经得起多方检验的经验才能入库。第三方蒸馏已经过滤了一道,共识验证再补一刀,残余的错误经验在这里被拦下。

推理时:能力矩阵 + 分层检索

构建好的记忆怎么用?新任务 \(q_{\text{test}}\) 来了,系统先查 Ability Matrix 选出最合适的求解器(哪类任务谁更擅长),然后做分层检索——先查共享记忆库,不够再查这个求解器的私有记忆库。检索到的经验拼进任务上下文,指导后续推理。

整个在线流程没有多智能体协调的开销,就是选模型 + 查记忆,很轻。


实验:数据说话,而且有几个点我得单独拎出来

实验设置

三个长程基准:τ²-bench(复杂约束求解,双控制对话环境)、Mind2Web(Web 交互)、MMTB(多工具任务执行)。异构模型池是 Mimo-V2-Flash、GLM-4.7-FP8、MiniMax-M2.1 三个。构建记忆时随机抽两个组执行组、另一个当蒸馏 Agent。

基线设计得挺讲究,这点我要夸一下——它不只是和"无记忆"比:

  • NM(No Memory):单模型裸跑,测内在能力
  • RB(ReasoningBank):代表性的单智能体记忆学习方法,这是主要对手
  • Judge:推理时用 LLM-as-Judge 裁决多个异构输出
  • Router:推理时用能力矩阵选最合适的模型

后两个尤其关键——它们能回答一个尖锐的质疑:EDV 的提升到底是因为"经验构建更好",还是单纯因为"用了多个模型 + 推理时挑一个"? 如果 EDV 只是赢在模型多,那它应该和 Judge/Router 差不多才对。

主结果:τ²-bench 上甩开 Router 3 个点

方法 骨干模型 AIRLINE RETAIL TELECOM Avg.
NM Minimax-M2.1 61.5 82.2 85.5 76.4
NM Mimo-V2-Flash 64.5 79.2 91.7 78.5
NM GLM-4.7-FP8 64.0 78.1 96.6 79.6
RB Minimax-M2.1 66.0 83.3 87.7 79.0
RB Mimo-V2-Flash 64.0 83.3 94.7 80.7
RB GLM-4.7-FP8 66.0 82.5 97.2 81.9
Judge Ensemble 66.0 84.7 93.9 81.5
Router Ensemble 68.0 85.2 97.2 83.5
EDV (Ours) Ensemble 72.0 88.6 99.1 86.6

读这张表我注意到两件事。第一,EDV 平均 86.6,比最强的 Router(83.5)还高 3.1 个点——这说明它的优势不是来自模型集成本身,因为 Router 已经用上了同样的模型池。多出来的部分,只能归因于经验构建质量。第二,RB 这个单智能体记忆方法,平均也就 79–82,比裸模型(NM)提升相当有限,有些情况下甚至接近——这恰恰暗示了单智能体经验学习的天花板。

Mind2Web 上的结果更有意思,因为它带了理论上界。比如 Cross-Task 设置,EDV 做到 EA 48.62 / AF1 63.10 / SSR 43.17 / SR 4.76(SR 上界是 24.21);Cross-Website 是 EA 44.79 / AF1 55.64 / SSR 36.56;Cross-Domain 是 EA 43.39 / AF1 56.38 / SSR 39.57。三种泛化设置下都稳定优于强基线。坦率讲,SR(完整任务成功率)这个绝对数看着不高,但 Mind2Web 本身就是出了名的难,且有检索约束,这里更该看的是相对提升。

MMTB 上 EDV 总分 58.10,同样压过 Router(55.96)、Judge(54.79)。单工具子项 A_sgl 做到 84.38,并行多工具 A^P 从基线的十几二十提到 37.50。

三个我觉得最能打的实验

第一,记忆质量审计(5.3)。 这个实验我特别喜欢,因为它不绕弯子,直接人工打分(5 分制,τ²-bench RETAIL):

维度 RB EDV 方向
Groundedness/Correctness 3.72 4.41 越高越好
Actionability 3.58 4.32 越高越好
Specificity 3.64 4.27 越高越好
Noise/Hallucination 1.21 0.63 越低越好
Potential Harm if Reused 1.08 0.51 越低越好

最关键的是后两行:EDV 写入记忆的噪声/幻觉降了一半,复用时的潜在危害也降了一半。这直接坐实了"EDV 在源头过滤了低质量信息"这个核心主张。光说成功率高没用,得证明记忆质量本身真的更好——这个实验做到了。

第二,记忆污染实验(5.4)。 这是全文我觉得最硬核的一招。作者故意往 RB 的 RETAIL 记忆里注入了占总量 10% 的"错误但内部连贯"的经验(比如错误的支付规则)。结果?RB 在 RETAIL 的 Pass@1 从 82.5 直接掉到 77.2,掉了 5.3 个点。

这个实验的妙处在于,它把"自我确认陷阱的危害"从一个理论担忧变成了一个可测量的损失。10% 的污染就能让性能崩这么多——而单智能体方法恰恰最容易产生这种污染。论证闭环了。

第三,效率(5.6)。 这点反直觉但很重要:你可能觉得多智能体框架肯定更贵,但 EDV 的经验构建是离线、可并行的,在线推理时一点多智能体协调开销都没有。更妙的是,因为记忆质量高,推理反而更省——RETAIL 上平均 token 消耗比 RB 降了 24.5%,还做得更好。本质上它把成本从"反复的在线搜索"转移到了"高质量的离线经验构建"。

消融:每一刀都砍在该砍的地方

渐进式范式消融(Table 4,RETAIL,Pass@1)是我读得最仔细的一张表,因为它逐步拆解每个设计带来多少收益:

# 配置 执行 蒸馏 验证 Pass@1 Drop
1 Basic SA 1 Self None 83.3 -5.3
2 SA + Self-Verify 1 Self Self 83.2 -5.4
3 SA + Indep. Verifier 1 Self External 84.5 -4.1
4 MA + Self-Distill 2 Executor Executor 85.9 -2.7
5 MA + Third-Party Distill 2 External Distill 87.1 -1.5
6 EDV (Full) 2 External Executor 88.6

这张表讲了一个挺完整的故事:

  1. 自检救不了自己。给单智能体加显式自我验证(行 1→2),Pass@1 从 83.3 反而微降到 83.2。自我确认陷阱是单智能体的结构性问题,自己监督自己等于没监督。
  2. 光解耦验证还不够。给单智能体配独立验证器(行 3),只涨了 1.2 分到 84.5。为什么?因为只有一条轨迹,参考太少了——验证器没东西可对比。轨迹多样性是前提
  3. 多智能体执行 + 第三方蒸馏才真正放出价值(行 4→5)。执行者自蒸馏(85.9)因为选择偏置浪费了大部分信息增益,换成中立第三方蒸馏(87.1)才把跨轨迹的可泛化经验提取出来。
  4. 共识验证是最后的质量守卫(行 5→6,87.1→88.6)。第三方也有认知盲区,执行组的一致投票再过滤一遍残余错误。

四个机制环环相扣,缺一个掉一截。这种消融做得很诚实,没藏着掖着。

组件消融(Table 5)则验证了 Ability Matrix(移除掉 2.0 分)和记忆分层(只用共享掉 2.9 分、只用私有掉 2.7 分)都是必要的。论文还给了记忆使用的细账:共享记忆检索率 72.3%、每次命中带来 3.2% 增益;私有记忆覆盖 31.8% 的任务、每次命中 1.8% 增益。私有记忆专门补那些"近三分之一任务里的个性化边缘 case",扁平结构替代不了。

附录里还有几个值得一提的数:训练收敛上,RB 在第 2 个 epoch 后就停滞甚至下降(0.830→0.815),而 EDV 一路涨到 Epoch 4 的峰值 0.909;检索经验数量上,RB 在 1 条经验时见顶(0.825)后被低质量经验拖累退化到 0.793,EDV 则单调上升到 3 条时的 0.886。这个对比特别能说明问题——RB 不是不会用经验,是它的经验本身有毒,越用越糟。


我的判断:好在哪,以及哪里还能再追问

先说我被打动的地方。

这篇论文的核心洞察——经验学习的瓶颈不在数量而在构建可靠性——我觉得是真的抓到了点子上。现在一堆 Agent memory 的工作都在卷"记得更多、检索更准",但很少有人正面回答"万一你记的东西本身就是错的怎么办"。EDV 把"执行/蒸馏/验证"三权分立的设计,本质上是给经验构建引入了外部视角和制衡,这个思路是对的,而且那个污染实验把危害量化得很扎实,不是空谈。

第三方蒸馏那一刀尤其漂亮。它精准地切中了自我总结的选择偏置——你让运动员复盘自己的比赛,他总会美化;你让一个没下场的第三方来对比所有人的录像,反而能看出真问题。

但有几个地方我会打个问号。

一是成本结构。 离线构建虽然可并行,但毕竟要跑多个异构大模型、多条轨迹、还要蒸馏和投票,这个构建成本到底多大?论文强调在线省 token,但没太细讲构建端的总开销。对于任务分布稳定、值得一次性攒经验的场景这没问题,但如果任务长尾、经验复用率低,这笔离线投入未必划算。

二是异构性的依赖。 EDV 的有效性高度依赖 Agent 池的异构程度——消融里也说了,同质化的多智能体等于白搭。但"凑齐几个能力相当又互补的异构模型"这件事本身有门槛,而且模型选择对结果的影响有多大,论文没做这方面的敏感性分析。换一套弱一些、或者同质化高一些的模型池,EDV 的优势还剩多少?这个我挺好奇。

三是共识机制的保守性。 默认拒绝 + 全票才进共享库,质量是有了,但会不会过滤掉一些"少数派正确"的经验?也就是只有一个 Agent 走通了一条非常规但正确的路,其他 Agent 因为没走过而投了反对票——这条宝贵经验就被丢了,或者只能进私有库。论文里 τ=0.9 时性能下降也侧面印证了"过严会误杀"。这个 precision/recall 的权衡,还有调优空间。

跟同期工作比,EDV 的定位我觉得是清晰的:它不是在 memory 检索或存储结构上做文章(那是 ReasoningBank 那条线),而是在经验生成的可信度这个更上游的环节切入。这个角度相对新,工程上也好落地——三个阶段都是模块化的,你完全可以在现有的 Agent memory pipeline 上加一道第三方蒸馏 + 共识验证。


收尾:如果你也在做带记忆的 Agent

实话说,看完这篇论文,我第一反应是想回去把我那个翻过车的 Agent 改一改。如果你也在做经验/记忆驱动的智能体,有两个点我觉得可以直接借鉴:

第一,别让执行者自己当裁判。哪怕你没条件搞多个异构模型,至少可以引入一个独立的验证步骤——用不同的提示、不同的视角去审一遍要写入记忆的内容。自我确认陷阱是结构性的,自检解决不了。

第二,记忆入库要有"默认拒绝"的门槛。宁可少记一些,也别让错误经验污染记忆库。那个 10% 污染掉 5 个点的实验,值得每个做 Agent memory 的人记在心里。

至于这个方向往后会怎么走——我猜"经验构建的可靠性"会慢慢从一个被忽略的细节,变成 Agent 自我进化系统里的标配模块。毕竟,一个会自我学习的系统,如果学的东西本身是错的,那它学得越快,死得越惨。

论文和代码都开源了(https://github.com/shidingz/EDV),感兴趣的可以去翻翻 Prompt 设计,Distill 和 Verify 那两段提示词在附录 B 里写得挺细的。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我