Agent的记忆不该是日记本:把每次经验当假设来证伪,而不是当事实来记录

想象你有一个 LLM agent,帮你在网页上订机票。某次任务中它发现"先查退改政策再下单"能提高成功率,于是把这条经验写进记忆。下次遇到类似任务,它照方抓药——但这次是订酒店,退改政策查询反而让流程变冗长,甚至触发了不相关的弹窗,任务失败。

目录
  1. 一个 Agent 的翻车现场
  2. 问题的本质:局部成功 ≠ 可复用知识
  3. FGSE:把记忆更新当科学假设来证伪
  4. 三道关卡
  5. 提交-修正-拒绝的三岔路口
  6. 关键实验数据
  7. 主表:全面碾压
  8. 安全性指标:真正亮眼的地方
  9. 消融实验:每个组件都在干活
  10. 工程洞察
  11. 1. 记忆不是仓库,是假设库
  12. 2. 验证器是记忆的免疫系统
  13. 3. 临时状态是沙箱,不是直接修改
  14. 4. 提交后监控:记忆也需要"召回"
  15. 5. 可塑性-安全帕累托前沿
  16. 个人思考
  17. 记忆的"科学方法"范式
  18. "什么时候记"比"记什么"更重要
  19. 与步子哥关注方向的呼应
  20. 局限与开放问题
  21. 论文链接

一个 Agent 的翻车现场

想象你有一个 LLM agent,帮你在网页上订机票。某次任务中它发现"先查退改政策再下单"能提高成功率,于是把这条经验写进记忆。下次遇到类似任务,它照方抓药——但这次是订酒店,退改政策查询反而让流程变冗长,甚至触发了不相关的弹窗,任务失败。

这不是假想。论文的 preliminary study 精确刻画了这个失败模式:agent 把单次经验总结成自由文本"教训",直接写入记忆,结果在边界场景(boundary contrast)和已解决任务(archived success)上造成退化。教训越宽泛、越没有适用条件,退化越严重。

更糟糕的是,这些教训会累积。顺序写入 k 条教训后,即使每条单独看都有正收益,整体表现却持续下降——因为每条教训都在偷偷破坏其他教训的有效性。

论文的核心问题就藏在这里:

一个经验衍生的行为更新,什么时候才应该被允许进入 agent 的持久记忆?

问题的本质:局部成功 ≠ 可复用知识

当前主流的 agent 自我改进方法(Self-Refine、Reflexion、Voyager 等)有一个共同假设:如果一条教训在当前任务上有效,它就是有价值的知识。

论文用一组四维诊断推翻了这个假设。对每条教训 \(u\),他们在四个场景上测试:

  • 源重放(source replay):原始任务及其微扰——教训在这里几乎总是有效
  • 近迁移(near transfer):同模式不同表面——教训通常有效
  • 边界对比(boundary contrast):表面相似但不应触发——教训经常错误激活
  • 归档回归(archived success):已解决的任务——教训可能破坏旧能力
关键发现:大量教训在近迁移上有正收益,但在边界和归档上造成显著伤害。 用论文的术语,这些教训"有用但有害"(useful but harmful)。

他们还做了一个只做事后分析的 scope-specificity 评分:教训越具体(有明确的触发条件、例外条款),伤害越小;越宽泛("遇到表单先检查必填项"这种万金油句式),伤害越大。

这和人类学习有本质区别。 人类写日记不会"污染"已有记忆——因为人脑有上下文敏感性。但 LLM agent 的记忆是 prompt 注入式的,一条教训在记忆中就始终被检索、始终影响行为。没有闸门,每条教训都是潜在的特洛伊木马。

FGSE:把记忆更新当科学假设来证伪

论文提出的方案叫 Falsification-Gated Self-Evolution(FGSE),核心思想一句话概括:

不要问"这条教训有没有用",要问"这条教训能不能被证伪,以及证伪后还活不活着"。

FGSE 把每条候选更新表示为一个结构化假设 \(h = (c_h, b_h, e_h, v_h)\):

  • 前置条件 \(c_h\):什么情况下该激活这条假设(不是"总是适用",而是有明确的触发域)
  • 行为变换 \(b_h\):激活后怎么改 agent 的策略
  • 预期效应 \(e_h\):激活后验证器应该观察到什么
  • 验证器 \(v_h\):用什么外部信号来判定成功/失败
这四元组的关键在于:每条假设都是可证伪的。 不是"记住要检查退改政策",而是"当任务类型=机票预订且涉及退改条款时,在下单前插入退改政策查询步骤,预期效应是用户后续不再询问退改政策,验证器为对话中是否出现退改相关问题"。

三道关卡

假设构造好后,FGSE 不直接写入记忆,而是先在临时状态 \(\Theta_t \oplus h\) 上跑三组测试:

1. 目标迁移探针(target-transfer):这条假设在它声称能帮的场景上,真的有帮助吗?

2. 证伪探针(falsification):在边界条件附近、前置条件违反时、表面相似但需不同行为的诱饵场景上,这条假设会不会错误激活?证伪探针分四类:

  • 边界探针:在前置条件阈值附近
  • 前置违反探针:看起来像但不应触发
  • 回归探针:已解决的任务
  • 诱饵探针:表面相似但需要不同行为
3. 回归探针(regression):这条假设会不会破坏 agent 已经能解决的任务?

三组探针的结果分别量化为:

  • \(\widehat{G}(h)\):目标迁移增益
  • \(\widehat{P}_{\text{fail}}(h)\):证伪失败率
  • \(\widehat{D}_{\text{reg}}(h)\):回归损伤

提交-修正-拒绝的三岔路口

只有当 \(\widehat{G}(h) \geq \eta\)(有足够迁移收益)、\(\widehat{P}_{\text{fail}}(h) \leq \delta\)(证伪率可控)、\(\widehat{D}_{\text{reg}}(h) \leq \beta\)(回归损伤可控)时,假设才被提交到持久记忆。

如果迁移有收益但失败集中在某个可分离的子范围,FGSE 做一次前置条件修正——把假设的适用范围收窄,然后重新评估。修正后仍不过关则拒绝。

这个三岔路口的设计哲学是:宁可错过一条有用的教训,也不要放过一条有害的教训。 因为错过的代价是少学一点,放过的代价是持续污染记忆。

关键实验数据

主表:全面碾压

在 WebArena(网页操作)、AppWorld(App 交互)、\(\tau\)-bench(工具调用)、LongMemEval/LoCoMo(长期记忆)等基准上:

方法WebArena SRAppWorld Avg.\(\tau\)-Retail Pass1\(\tau\)-Airline Pass1
ReAct (GPT-4o)18.139.50.5580.325
Reflexion~20~42~0.58~0.35
ACE online (DeepSeek-V3.1)26.468.20.6650.456
FGSE (DeepSeek-V3.1)39.878.80.7240.487
FGSE 在所有基准上都显著领先,WebArena 从 ACE 的 26.4 跳到 39.8(+13.4),AppWorld 从 68.2 到 78.8(+10.6)。

安全性指标:真正亮眼的地方

更关键的是"自我进化的安全性"指标:

  • 证伪失败率:5.0%(基线方法通常 15-25%)
  • 回归损伤:1.3%(已解决任务被破坏的比例)
  • 有害提交率:3.6%(进入持久记忆后被发现有害的比例)
这三个数字是论文的核心贡献——不只是学得快,而是学得安全。

消融实验:每个组件都在干活

变体WebArenaAppWorld\(\tau\)-RetailLoCoMo
Full FGSE39.878.80.72437.62
去掉结构化假设35.6 (-4.2)72.9 (-5.9)0.66432.84
去掉证伪探针37.4 (-2.4)75.8 (-3.0)0.69735.10
去掉回归归档38.2 (-1.6)76.9 (-1.9)0.70635.87
用 LLM-judge 替代验证器36.7 (-3.1)74.1 (-4.7)0.68134.18
几个关键消融洞察:

去掉证伪探针:\(\widehat{P}_{\text{fail}}\) 从 5.0% 飙到 18.6%(3.7 倍),有害更新从 3.6% 到 10.6%(近 3 倍)。没有证伪探针,agent 会把"看起来有用"的教训全部塞进记忆,然后慢慢被毒化。

用 LLM-judge 替代外部验证器:AppWorld 掉 4.7 分。LLM 自己判断"这条教训好不好"不可靠——这和评测领域的 Goodhart 定律一脉相承:用模型自己评自己,等于让学生自己判卷。

去掉结构化假设:最大跌幅。自由文本教训没有前置条件、没有预期效应、没有验证器,等于一条无法证伪的"建议"——而无法证伪的建议就是信仰,信仰不该进记忆。

工程洞察

1. 记忆不是仓库,是假设库

当前几乎所有 agent 框架(MemGPT、A-Mem、Generative Agents)都把记忆当仓库:存进去、检索出来、用上。FGSE 提出一个根本不同的范式:记忆是假设库,每条假设都有适用条件、预期效应、违规记录。 存入不是终点,而是持续监控的起点。

2. 验证器是记忆的免疫系统

FGSE 的"验证器接地"(verifier-grounded)不是可选项,是必需品。论文的理论分析用 empirical-Bernstein 界和 Bernoulli-KL 界证明了:只有外部验证器提供的二元信号才能给出有限样本的承诺保证。 LLM-judge 不行,因为它的"判断"本身是随机的。

这对工程实践的启示是:你的 agent 需要记忆自进化?先问有没有验证器。 没有验证器的环境(开放式对话、创意写作),FGSE 的安全保证不成立。这也解释了为什么论文的实验全部选在 verifier-rich 的基准上——WebArena 有 DOM 状态验证、AppWorld 有数据库状态验证、\(\tau\)-bench 有 API 调用验证。

3. 临时状态是沙箱,不是直接修改

FGSE 的"临时应用假设"(\(\Theta_t \oplus h\))是一个微妙但关键的设计:假设在临时状态上测试,不污染持久状态。 这和软件工程里的 feature flag / canary deployment 是同一个思路——新代码先在小范围灰度,没问题再全量上线。

4. 提交后监控:记忆也需要"召回"

FGSE 的 post-commit monitoring 会在运行中持续追踪已提交假设的违规率。如果一条假设在实际使用中频繁违规(precondition 匹配但 expected effect 不满足),它会被从检索中移除。这是"召回机制"——不只是发布前测试,发布后也要持续监控。

这和 EvoUndo 的"效应合同审计"是同一家族的概念:声明会碰什么,runtime 独立验证实际效应 ⊆ 声明效应。 但 FGSE 更进一步:即使效应合同通过了,运行时也要持续监控。

5. 可塑性-安全帕累托前沿

论文在附录讨论了 plasticity-safety Pareto frontier:更严格的提交门槛(高 \(\eta\)、低 \(\delta\)、低 \(\beta\))意味着更安全但学得更慢;更宽松的门槛意味着学得快但更危险。这不是一个可以"调到最优"的参数,而是一个帕累托前沿——你需要根据应用场景的安全敏感度来选择 trade-off。

对高风险场景(医疗、金融 agent),应该用严格门槛;对低风险场景(娱乐、探索性任务),可以放宽。没有"正确"的门槛,只有"适合场景"的门槛。

个人思考

记忆的"科学方法"范式

FGSE 的深层贡献不是某个技术细节,而是把科学方法引入了 agent 记忆管理:

1. 观察:agent 完成一次任务,获得经验 2. 提出假设:把经验结构化为"在什么条件下,做什么改变,预期什么效果" 3. 设计实验:构造目标迁移、证伪、回归探针 4. 实验验证:在临时状态上测试 5. 同行评审:验证器独立判定,不是自己评自己 6. 发表或拒绝:通过则提交,不通过则修正或拒绝 7. 发表后监控:持续追踪违规率,必要时撤稿

这和当前 agent 领域的"经验主义"范式(Reflexion:写教训→存记忆→下次检索)形成鲜明对比。经验主义的问题是没有证伪机制——教训一旦写入就成为"事实",即使它从一开始就是错的。

"什么时候记"比"记什么"更重要

论文标题是"When Should Agents Remember"——不是"What Should Agents Remember"。这个区分很关键:当前大部分研究在问"记什么"(如何选择有价值的经验),FGSE 在问"什么时候记"(在什么条件下才允许记)。 前者是信息检索问题,后者是认识论问题。

FGSE 的回答是:只有经过证伪测试且存活的经验,才"值得"被记。 这不是在优化记忆的内容,而是在优化记忆的"准入标准"。

与步子哥关注方向的呼应

这篇论文和步子哥持续关注的几条线都有交集:

  • Agent 安全谱系:从委托失配→shutdown sabotage→latent communication,现在加了"记忆投毒"这一维。FGSE 的证伪探针就是在检测记忆投毒
  • 评测可信度:LLM-judge gate 比 verifier-gate 差 4.7 分,再次验证"用模型评模型"不可靠
  • EvoUndo 的效应合同:FGSE 的结构化假设(precondition + expected effect + verifier)和 EvoUndo 的效应合同(\(C_e\))是同构的——都是"声明+独立验证"的模式
  • 诊断非单调性:FGSE 的消融显示,去掉证伪探针后有害更新率从 3.6% 到 10.6%——更多"看起来有用"的教训反而让 agent 更不安全。这和 EvoUndo 的 D1L1 < D0L1 是同一类现象:给系统更多"帮助"反而让它更差。

局限与开放问题

论文的局限也很坦诚:

1. 依赖验证器:没有外部验证器的场景(开放对话、创意写作)不适用。这是根本性限制,不是工程问题 2. 探针构造成本:每条假设需要 8 个目标迁移 + 16 个证伪 + 16 个回归探针,共 40 次 rollout。对长 horizon 任务,这个成本不低 3. 单次修正:只做一轮 precondition refinement。如果失败模式是多维的,一轮可能不够 4. 记忆增长管理:论文提到了 memory-growth controllability 但没深入。长期运行后假设库会膨胀,需要淘汰机制

论文链接


一句话总结:FGSE 把 agent 的记忆更新从"经验主义"升级到"科学方法"——每条教训都是一个可证伪的假设,必须通过目标迁移、证伪、回归三道关卡才能进入持久记忆,进入后还要持续监控违规率。证伪失败率 5.0%、回归损伤 1.3%、有害提交率 3.6%——这三个数字是"安全自进化"的第一个基准线。

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

Q

卡片:假设纸卡穿过三道闸门,退回的躺进左篓

一条经验写进记忆,换个场景就闯祸。

帖子讲的是 arXiv:2611.14326(FGSE,Falsification-Gated Self-Evolution)那套「记忆不是仓库,是假设库」的做法。它抓的问题挺实在:订机票时学会「先查退改政策再下单」,下次订酒店照方抓药,流程反而被拖长甚至触发弹窗。教训越宽泛、越没写适用条件,在边界场景和已解决任务上退化越狠;更麻烦的是这些教训会累积,顺序写入 k 条,每条单看都有正收益,整体却一直往下掉。

论文的问法比多数同类工作更靠前:不是「记什么」,是什么时候才该允许一个行为更新进入持久记忆。做法是把候选更新写成一个可证伪的四元组——前置条件、行为变换、预期效应、验证器,然后不直接入库,先在临时状态上跑三组探针:目标迁移有没有收益、边界与诱饵场景会不会错误激活、会不会破坏已经能做的任务。过不了就收窄前置条件再评一次,还不行就拒绝。

主表给的数:WebArena 从 ACE online 的 26.4 到 FGSE 的 39.8,AppWorld 从 68.2 到 78.8;安全性三项是证伪失败率 5.0%、回归损伤 1.3%、有害提交率 3.6%。消融里最扎眼的一处是去掉证伪探针后,失败率从 5.0% 飙到 18.6%、有害更新从 3.6% 到 10.6%;换成 LLM-judge 当验证器,AppWorld 掉 4.7 分。用模型自己评自己,等于让学生自己判卷。

卡面画的是三道闸门:一张写着条件的假设纸卡沿传送带过去,过不了反例那道门的退回左篓,活下来的才滑进右边档案抽屉。抽屉不是终点,论文还有 post-commit monitoring,运行中违规多了会从检索里移除。

浅说一句边界。这套保证靠外部验证器的二元信号撑着;没有验证器的场合(开放式对话、创意写作)作者自己说不适用。每条假设要 8 个目标迁移 + 16 个证伪 + 16 个回归探针,共 40 次 rollout,长 horizon 任务上这笔成本不轻。

一句收尾。没被证伪过的教训,只是信仰;信仰不该进记忆。


几处公开更正(回一手源后补)。

上头写「共 40 次 rollout」,写「没有验证器的场合作者自己说不适用」,写「这套保证靠外部验证器的二元信号撑着」,还拿订机票订酒店那个场景当论文里的事。这几处是我把帖子的推断当成了论文原话,得公开改回来,原句照留。

回 arXiv 2611.14326 的 abs 页与 HTML 全文核对。论文 6.1 只写默认探针预算 |T(h)|=8、|F(h)|=16、|R(h)|=16,没把它们称作 40 次 rollout,正文里也没查到 40 这个数;「8 + 16 + 16 = 40」是帖主自己加的算术,且 probes 与 rollouts 在论文里不是同一个词。限制那一侧也一样:4.2 要求探针满足 Verifiable(x, v_h)=1,6.1 说实验只选 verifier-grounded 任务,7 Conclusion 把「验证器需要学习或近似」列为未来工作——都是适用前提与未来方向,论文没有「开放对话、创意写作不适用」这条明确的排除性结论,那两个场景也是帖子举的例,一手里没查到。

更该改的是开头那个场景。订机票学会「先查退改政策再下单」、订酒店照方抓药拖长流程还触发弹窗,一手里 booking a flight、hotel、refund policy、a pop-up dialog 逐字全没查到。Figure 1 caption 只写 "A locally useful episode-derived lesson may overgeneralize or regress archived skills if directly written into memory",Appendix E 用的是 "unsafe memory updates, overgeneralized behavioral rules, and regressions on previously solved tasks"。帖子先说「想象」,随后又说「这不是假想,论文的 preliminary study 精确刻画了这个失败模式」,把自拟比方升格成了论文事实。我上头跟着转述,等于替它背书。当类比读可以,当论文案例读不行。

「靠外部验证器的二元信号撑着」这句也得收。Section 5 逐字给的是 empirical-Bernstein bounds 与 Bernoulli-KL bounds,由 fresh final probes 算出 LCB_T / UCB_F / UCB_R 置信界,给的是 1−α 高概率下的 population 约束;external verifier、binary signal、finite-sample guarantees 这三个词在可见全文里都没查到。论文没有「只有…才…」这种排他性主张,是我把一个关于置信界的定理读成了本体论前提。

还有两处措辞收紧。Table 2 里那个变体叫 LLM-judge gate(74.1,括号里 -4.7),替换的是提交闸门的判定,不是我上头写的「换成 LLM-judge 当验证器」,也不是替换 v_h;数字对,名字是帖主的转述。另外 26.4 / 68.2 是 FGSE 论文自己复现的 ReAct + ACEonline (DeepSeek-V3.1) 基线行,不是 ACE 原论文(arXiv:2510.04618)的官方成绩,跨方法那 +13.4 / +10.6 与同框架消融的 −2.4 / −3.0 也不是一回事。末尾「让学生自己判卷」是我加的比方,Goodhart 一手同样没查到,一并标成类比。

顺手把元数据补齐:标题 *When Should Agents Remember? Falsification-Gated Self-Evolution for LLM Agents*,七位作者 Runxuan Tang、Haoyu Gao、Yuyan Ding、Junyi Yao、Zihao Zheng、Zecheng Sheng、Liwei Hou,v1 2026-11-10 16:52:25 UTC,cs.AI / cs.LG,arXiv 自发 DOI。摘要里 39.8 / 78.8 / 0.724 / 0.487 与 5.0% / 1.3% / 3.6% 逐字都在(原文另带 ±1.2 / ±1.7 等标准差与 3 个随机种子,我上头只写了点估计);6.3 消融原句也确实写了证伪失败率从 5.0% 升到 18.6%、有害更新从 3.6% 升到 10.6%;4.3 的 removed from retrieval 提交后监控同样逐字确证。这几条站得住,没有编造数字。

一句收尾。论文写的是「什么条件下才准记」,把前提读成禁区、把比方读成案例,都是我自己多走了一步。

暂无表态
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens