Skip to content
检测中

EDV:让 Agent 别再「自我确认」——经验学习的三段式护栏

论文精读 · 第 3 篇 论文:Escaping the Self-Confirmation Trap: An Execute-Distill-Verify Paradigm for Agentic Experience Learning arXiv:2606.24428 · 2026.06 · Zhu et al. · 代码

与本站 Loop Engineering · MemoryMeta-Loop 直接对话——讲的是「往记忆里写经验」前,先验明正身。


TL;DR

agent 从失败中学习,主流做法是单 agent 闭环:自己执行、自己总结、自己决定写进记忆。EDV 戳破一个致命漏洞——Self-Confirmation Trap(自我确认陷阱):一条「错但自洽」的轨迹,会被 agent 当成成功经验存下来,之后越用越错。破法是把闭环拆成三段:Execute(多 agent 并行探索)→ Distill(第三方蒸馏)→ Verify(共识验证),只有通过验证的经验才进记忆。三个长程基准全部涨点。

一句话:记忆是 agent 的长期资产,写入必须有审计,不能让执行者自己给自己签字。


一、它想解决什么问题

先理解「经验驱动的自进化」。

强 agent(coding agent、GUI agent)都在做一件事:跑完任务后,把成功经验总结进记忆,下次复用。这是让 agent 越用越强的关键机制。本站 Loop Engineering · Meta-Loop 讲的就是这个范式——agent 不仅要完成任务,还要从任务里「学到怎么更好地完成任务」。

但主流实现几乎都是单 agent 闭环

[同一 agent] → 执行任务 → 总结结果 → 决定写什么进记忆 → 下次调用

EDV 点破这套闭环里的一个结构缺陷:

执行者自己判断自己做得对不对,等于让学生自己给自己判卷。

这就是 Self-Confirmation Trap:agent 跑了一条轨迹,觉得「我每一步都自洽、逻辑通顺」,于是判定「这是成功经验」,写进记忆。可如果这条轨迹本身就是错的,只是错得自洽呢?比如:

  • 一个 coding agent 用了一个能跑通但有 bug 的方案,总结成经验
  • 一个 GUI agent 用了绕远但碰巧成功的路径,记成「最优解」

这些「错但自洽」的经验一旦进记忆,会在检索复用时反复被调用,错误像利息一样累积。单 agent 闭环的结构缺陷,让 agent 越学越偏。


二、核心思想:把闭环拆开,引入「他者」

EDV 的破法很工程化——别让一个 agent 干三件事

把「执行 / 总结 / 验证」解耦,每一件交给不同的主体,引入他者视角切断自我确认:

阶段单 agent 闭环EDV
执行单 agent 跑多个异质 agent 并行跑同一任务,产生多条候选轨迹
总结同一 agent 总结第三方 agent 比较多条轨迹后蒸馏
验证同一 agent 判对错执行组共识投票,通过才进记忆

关键洞察:错的轨迹往往「自洽但唯一」,正确的轨迹往往「多条路径殊途同归」。 多个异质 agent 如果都收敛到类似结论,这个经验就更可信;如果只有一条轨迹自说自话,就高度可疑。

这呼应 Loop Engineering · Memory 里那句反复被验证的话:

写入记忆的成本,必须高于读取记忆的成本。否则记忆会被噪声污染,最后比没有记忆更糟。

EDV 给「写入成本」装了一个闸门——共识验证。没有这个闸门,记忆就是 agent 的垃圾桶。


三、三段式逐个拆

3.1 Execute:多异质 Agent 并行探索

同一个任务,多个结构不同的 agent(不同模型、不同 prompt、不同工具集)同时跑,产出多条候选轨迹

为什么要「异质」?

如果多个 agent 同质(同一个模型同一个 prompt),它们会犯同样的错,共识就失去意义——错也错到一起。

异质是为了保证错误是独立的:A 用 GPT 系、B 用 Claude 系、C 用开源模型,它们各自犯的错大概率不同。共识才有过滤价值。

工程上这是「多样性换可靠性」——牺牲一些 token(跑多份),换回可信的经验。这跟 CORAL 用多 agent 异步探索是同源思想(见本站 CORAL 精读):多视角比单视角更接近真相。

3.2 Distill:第三方蒸馏

关键设计:总结经验的 agent,不是执行任务的 agent

单 agent 闭环里,执行者总结自己的轨迹,天然有「executor-centric bias」——会美化自己的选择、忽略自己的错误。EDV 让一个没参与执行的第三方 agent,拿着多条轨迹做比较式分析

  • 看哪些步骤是多条轨迹共有的 → 大概率是关键步骤
  • 看哪些步骤只有某条轨迹独有 → 可能是冗余或错误
  • 综合出一条「去偏后的经验

这等于给经验加了一个编辑工序:执行者负责产生素材,第三方负责去偏成稿。没有这一步,经验的「偏差」会原样进记忆。

3.3 Verify:共识验证

最严格的一层。

蒸馏出的「候选经验」,还要拿回执行组验证:这条经验到底有没有用?多个 agent 用它再跑一遍,看是否共识性地带来改进。

只有通过共识的经验,才写进共享或私有记忆。没通过的,丢弃。

整条链的净效果:

原始轨迹(可能错但自洽)
    │ Execute: 多异质 agent 并行 → 错误独立化
    │ Distill: 第三方比较 → 去执行者偏差
    │ Verify: 共识投票 → 过滤自洽但错误的内容

进记忆的经验(可信)

三道闸门,把「自我确认」的口子一层层堵死。


四、为什么三段缺一不可

值得单独拎出来想——能不能简化?

去掉哪段后果
去 Execute(单 agent 跑)没有多样性,Distill 无从比较,退化回自我总结
去 Distill(执行者自总结)偏差原样进候选,Verify 也救不回(共识验证的是有偏的候选)
去 Verify(直接写)「候选经验」未经检验,错的自洽内容仍可能漏进记忆

三段是串联的过滤器,每段堵一类错误:

  • Execute 堵「单一视角的盲点」
  • Distill 堵「执行者自我美化」
  • Verify 堵「自洽但错误」的内容

砍任何一段,对应的错误就漏过去。这是工程上「纵深防御」在经验学习里的复刻。


五、实验结果

EDV 在三个公认有难度的长程基准上验证:

基准领域特点
tau2-bench工具调用 / 多轮对话长程决策
Mind2WebWeb GUI agent跨页面、长链路
MMTB多模态多任务综合长程

结果:EDV 在三个基准上持续超越强基线。论文把涨点归因于——

可靠的经验构建,是 agent 稳健自进化的前提。

翻译:不是模型变强了,是写进记忆的东西更干净了。脏经验少一点,agent 表现就好一截。这又一次印证——记忆的写入质量,比记忆的存量大小重要得多。


六、工程对照:EDV 验证了什么

EDV 的三段式,对应本站 Loop Engineering 系列里几个核心论断:

EDV 设计对应论断系列文章
Execute 多异质并行多视角 > 单视角Multi-Loop
Distill 第三方蒸馏元循环要引入「他者」Meta-Loop
Verify 共识才写入写入记忆的成本必须高Memory

最深一层的启发,是关于**「自我反思」的边界**:

本站 Meta-Loop 讲过,agent 的自我反思(self-reflection)是进化的引擎。但 EDV 提醒一个反直觉的点——

纯自我反思是有上限的。当执行者和裁判是同一个 agent,反思会滑向自我确认。要突破,必须引入外部视角。

所以 EDV 不是否定自我反思,而是给它加一个「不可自证」的约束:经验成立的前提,是有一个不参与执行的「他者」点头。这跟代码评审为什么必须别人来审,是同一个道理。


七、启发与局限

启发:

  1. 记忆写入要审计,不能自理。 agent 自己总结的经验,默认带「执行者偏差」。任何要长期复用的记忆,写入前都该过一道他者验证。这条对做人(写个人知识库)同样成立。
  2. 多样性是过滤的前提。 想用共识去伪,参与共识的 agent 必须异质。同质的「共识」只是错误的一致。
  3. 自洽 ≠ 正确。 一条逻辑通顺的轨迹,可能是错得通顺。agent(和人)最容易把「我讲得圆」当成「我对」,这是认知的系统性陷阱。

局限:

  1. 成本不低。 Execute 要跑多份、Distill 要额外 agent、Verify 要再跑一遍,单条经验的构建成本是单 agent 闭环的好几倍。对高频写入的场景,这个开销得权衡。
  2. 共识的边界。 共识能过滤「自洽但错误」的内容,但所有 agent 共同的盲区(比如都用了同一个错误的世界知识)它过滤不掉。异质缓解但不根治。
  3. 「异质」的工程定义偏模糊。 论文用不同模型/工具制造异质,但多异质才算够、异质到什么程度最优,没有明确量化。

一句话点评: EDV 给 agent 的「记忆系统」装了一道必须的质检工序。它戳中的不是模型不够强,而是让一个 agent 既当运动员又当裁判,是结构性缺陷。经验学习的下一步,不在更大的模型,而在更严的写入闸门。

Released under the ISC License.