AI越反思越蠢:我们可能把Agent的“长期记忆“做反了
我是一名 AI 算法工程师,在学习大模型的过程中踩过很多坑,我把自己的经验写成了一本免费电子书《动手学大语言模型:写给程序员的手搓LLM实战指南》。
本书的主要目标是帮助读者通过动手实践的方式快速地学懂 LLM。
我希望能尽自己最大努力将其打造成最适合初学者入门大模型中文版图书 😄
📘整本书已免费开源:阅读全文
AI越反思越蠢:我们可能把Agent的"长期记忆"做反了
先说一个非常反直觉的实验。
一个 AI 模型,本来 19 道题能全对。研究者没给它任何错误信息——反过来,直接把标准答案喂给它,让它像我们设想的"自我进化 Agent"那样,把成功经验总结成可复用的心得,存进记忆库。
结果,它做错的题反而变多了。
喂进去的不是噪声,是百分之百正确的解法。模型是在"总结正确经验"的过程里,把自己绕蠢的。
这是 arXiv 上一篇新论文《Useful Memories Become Faulty When Continuously Updated by LLMs》的核心发现。在作者搭的 ARC-AGI Stream 实验里,GPT-5.4 不用任何记忆,19 道题 100% 做对;把同一批题的正确解法持续压缩进记忆、反复重写之后,正确率掉到了大约 54%。我自己一直在推各种 Memory Consolidation 方案,看完这篇,得停下来想想了。
一、 先划清边界:被挑战的到底是什么
需要先说明一句,免得标题把人带偏。
这篇论文没有研究"AI 反思有没有用",也没碰 CoT、self-correction、planning 这些。Agent 的长期记忆是个大范围——原始日志、向量库、用户偏好、工具状态、技能库,都算。论文精确打击的是其中一种做法:把任务轨迹交给 LLM,总结成一条文本经验,然后在后续运行中持续重写这套经验库。它的结论是,在当前模型能力下,这个"写入"动作本身就是高风险操作。
理解全文,需要先搞清楚一个区分,这也是论文最有价值的概念框架。情节记忆(episodic),是原始轨迹本身,“当时一步步发生了什么"的完整记录;抽象记忆(consolidated),是把多次经验蒸馏出来的、schema 式的"心得”。人脑两套都有,而且在架构上是分开的。但今天主流的 Agent 框架——CLIN、Agent Workflow Memory(AWM)、Dynamic Cheatsheet、ACE,思路都属于一类——几乎全在追第二种抽象记忆,而且默认一件事:每次 consolidation,最差也就是没用,不会有害。
论文用大量实验说:这个假设是错的。
如果要给整篇文章一条主线,我会这样概括——过去我们以为 Agent 长期记忆的问题是"记得不够多",这篇论文提醒我们,真正的问题可能是三个动作:写得太勤、压得太早、改得太随意。
二、 正确的经验也会被总结坏
研究者特意把输入条件设得对记忆极为有利:要么用 Agent 自己做对的题,要么直接给标准答案。喂进去的经验,按设计就是有用的。
即便如此,效用曲线还是同一个形状:先升,后降,跌破"零记忆"基线。在 ScienceWorld 上,按每批 4 条轨迹持续更新,得分在第 20 步左右见顶,之后一路下滑到第 100 步,记忆库设多大都逃不掉。
WebShop 上更直白。AWM 蒸馏出的记忆,8 个样本时还有 0.64,到 128 个样本掉到 0.20,基本归零,和完全不用记忆持平。攒了 128 条经验,等于白攒。
记忆不是越多越好。左图 ScienceWorld,效用先升后降;右图 WebShop,橙线是原始轨迹、紫线是 AWM 蒸馏记忆——样本越多,AWM 一路掉到和"零记忆"持平,原始轨迹却基本稳得住。问题不是经验不够,是经验被反复压缩后开始变形。
我的理解是:让 LLM 连续重写自己的记忆,本质是有损压缩的反复叠加。每一次抽象,丢掉一些有用细节,塞进来一些凭空冒出来的伪规则,原本贴合任务的抽象在慢慢漂移。单看一步问题不大,但下一步是在被污染过的记忆基础上再压缩。错误没有被修正,而是被当成上下文继续传递、放大。
这就是"压得太早、改得太随意"的代价。
三、 退化的锅,是经验背还是"总结"背
有人会问:是不是原始轨迹质量不行?论文专门做了实验排除这个可能。同一批轨迹固定不变,只改"喂给压缩器的方式"。
一组对照是 Static-All(轨迹池一次性全量抽象)对 Stream(分批流式更新,模拟持续进化的 Agent)。结果 Stream 明显更惨——那个 ARC-AGI 案例里,Static 跑完 10 轮、50 轮还能保住,Stream 第 10 轮就崩了。轨迹是同一批,差别只在更新节奏。这就是"写得太勤"的代价。
另一组对照更说明问题:episodic-only。不做任何抽象,原始轨迹直接当 few-shot 塞进上下文。这个"什么都不干"的土办法,在 WebShop、ALFWorld、AppWorld 上,基本能和精心设计的 lesson-style 框架打平,很多时候还更好。
把这两件事放一起看——轨迹池不变,换个更新节奏结果就不一样,而且不抽象的对照组反而更稳——结论只能指向一个地方:问题出在 consolidation 这个写入动作本身,不在经验。
四、 记忆是怎么被污染的
论文没有停在"记忆会退化"这个现象上,而是把退化拆成了三种可观测的机制。对做工程的人来说,这部分最有参考价值。
misgrouping,类别混淆。 不同任务家族的轨迹被硬凑成一条规则。论文里有个反直觉的细节:模型并不是看不出类别结构——给它足够的自主权,它最终能把 6 种题型干净地各归各类。但在每步强制 consolidation 的模式下,强制抽象这个动作本身,覆盖掉了它原本能做对的分组。瓶颈不是"认不出类别",而是"被逼着抽象"。
overgeneralization,条件丢失。 分组对了也没用,抽象照样会把一条规则的适用条件磨掉。论文里一个例子很生动:一条本来只适用于"挑出最大物体"的策略,连续重写 50 轮之后,“max size"这个唯一具体的判据没了,变成了"找出某个派生数值属性的最大值”——读起来更通用,但已经没人知道到底该最大化哪个属性。一条有边界的经验,被磨成了万能废话。
overfitting,表面规律。 当输入流很窄、反复是同族近似重复题时,记忆会过拟合到见过的具体实例。原题能答对,同族稍微变一下就崩。它记住了见过的样子,却没学到真正的策略。
光说机制有点抽象,论文附录里有两个塌缩案例,肉眼可见。
第一个更极端。把 19 道横跨 6 个题型的题反复喂 10 遍后,整个记忆库塌缩成了一条规则——“找最大的物体当框,把框里的东西挖空”。然后拿一道完全无关的题来测,这道题的真实规则只是"擦掉某个特定颜色的物体",本来不用记忆 10/10 能过。但模型带着那条记忆硬套"框-挖空"剧本,最后输出了一整片空白网格,0/10。
第二个案例同理。250 道横跨 6 个题型的训练任务流式喂进去后,记忆库塌缩成两条全部来自同一题型的规则,另外 5 个题型一条没留。结果一道本来"留下最大物体"就能满分的题,模型按记忆里的"形状出现频率"去筛选,从 10/10 掉到 2/10。
这不是抽象曲线,是实际错误。中间一栏 GPT-5.4 不用记忆做对了(10/10),右边带着塌缩后的记忆,直接产出一片空白(0/10)。
同样的对比——不用记忆时模型正确留下最大的三角形(10/10),带记忆时却按记忆里的"形状多数"规则只留下两个小 T 形(2/10)。它不是少做了一点,是被错误记忆带偏,执行了完全不该执行的规则。
五、 论文的解法:把 consolidation 从默认动作改成受控动作
问题出在"强制、即时、无差别地重写记忆",解法的方向也就清楚了。
研究者搭了 ARC-AGI Stream 测试床,给 Agent 三个显式动作:Retain(保留原始情节)、Delete(删除)、Consolidate(抽象),让它自己决定每步干什么。然后对比三种模式:每轮强制抽象的 Force、模型自选的 Auto、彻底禁用抽象的 Episodic Management Only。
有意思的是,Auto 模式下,Agent 拿到选择权后,会默认大量保留原始情节,把抽象库维持得很稀疏——它用脚投票,选了 episodic-first。而纯 Episodic Management Only,完全不抽象,居然能和 Auto 打平甚至更好。在当前模型能力下,保留原始情节是更稳的默认值。
落到工程上,论文给的建议很具体:原始情节记忆被严重低估,直接当 few-shot 往往比规则库更鲁棒;不要每轮都跑 consolidation,要加门控;不同任务家族的经验,绝对不能扔进同一批次让 LLM 一起总结。
六、 但这不等于"以后别总结了,全存原始轨迹"
讲到这儿得拐一个弯,否则容易走到另一个极端。
原始轨迹不是免费午餐。它上下文成本高,检索难,trace 质量参差不齐,多任务场景下还得做标签、索引、去重、版本管理,长期运行更不可能无限往 prompt 里塞 few-shot。论文自己在结论里也承认:情节记忆无限堆下去会撑爆上下文、也难以组合复用,压缩和迁移终究需要抽象。
所以真正的问题不是"要不要抽象",而是"什么时候抽象、抽象什么、由谁验证、错了怎么回滚"。
我自己的判断是这样一句话——raw episode 应该是证据层,不是最终答案层。可靠的 Agent 记忆,方向不是废掉 consolidation,而是把抽象建立在可回溯、可验证、可删除、可版本化的原始证据之上。
顺着这个思路,我想补充一套更具体的写入架构。需要说明:下面这套分层是我基于论文结论的工程延伸,论文本身没有讲到这个程度,不要当成论文内容。
可以把 Agent 的记忆写入想成四个部分。最底层是情节存储,存原始轨迹、观察、动作、反馈,它的工程要求是可检索、可裁剪、可回放——成本和噪声是它的代价,但它是整套系统的证据基础,不能丢。往上是抽象存储,存规则、策略、模式,但每一条抽象都必须带三样东西:来源(从哪几条轨迹来的)、适用条件(什么情况下用)、置信度。没有这三样的抽象,就是论文里那种被掏空的万能废话。再往上要有一个验证环节,新抽象写入前先用反例或回放测试跑一遍,过不了就回滚——这是论文里"门控"思想的具体化。最后是检索路由,决定一个任务该读哪一类记忆,关键是按任务家族隔离,避免跨域误召回——这正对应论文说的 misgrouping。
一句话:真正可靠的记忆系统,不是一个"心得本",而是一套带证据链的写入系统。
七、 对企业Agent来说,这事比答错一道题严重得多
这是我特别想强调的一点,因为它和很多人正在落地的东西直接相关。
在 benchmark 里,记忆退化的后果是一道题从 10/10 掉到 2/10,测试完了就完了。企业场景不一样。一条错误规则一旦被沉淀进长期状态,后续的客户跟进、审批流程、知识库更新、代码修改、运营决策,全都可能受影响。而且它是静默的——模型当场犯错,你还能发现;但它把这次错误当成"经验"存了下来,下次、下下次接着用,你很难定位是哪一步出的问题。
最可怕的不是模型当场 hallucinate,而是系统把这次 hallucination 当成经验保存了下来。对任何打算让 Agent 长期运行、持续积累的团队,这都是必须正视的风险。
八、 几点判断
第一,这篇论文真正的价值,在于换了一个 baseline。 它没说抽象记忆没用,说的是:你的抽象记忆,必须先打得过"什么都不抽象、原始轨迹直接塞 prompt"这个对照组,才有资格说自己有用。如果你手上正在做 Agent 项目,建议很直接——把 episodic-only 作为对照组先跑一遍。这件事现在就能做,很可能你会发现,精心设计的记忆模块并没有跑赢这个土办法。
第二,当前 LLM 的元认知能力,可能比我们以为的弱。 今天的做法,是让同一个模型既"生成记忆"又"监控自己抽象得好不好",论文反复点到这个控制回路不稳定。这和 chain-of-thought 有时一本正经胡说八道是同一类问题——让一个模型同时当运动员和裁判,本来就靠不住。往远看,也许我们需要把"用经验"和"提炼经验"拆开:要么 finetune 一个专门负责 consolidation 的小模型,要么引入外部可验证的记忆机制。
第三,回到那条主线。对 Agent 记忆系统来说,能不能保留证据,比会不会总结重要得多。原始轨迹应该是底层账本,抽象记忆只是上层索引。未来真正可靠的 Agent,不会把每一次经验都急着写成心得,而会先判断一句:这条经验,到底值不值得被写进长期记忆。
Agent 长期记忆真正危险的,不是记不住,而是把还没验证清楚的经验,过早写成了长期规则。
顺便一提,这篇论文的作者之一吴正坤来自清华大学交叉信息研究院,目前在 UIUC 访问研究。工作做得很扎实,附录里那些记忆退化的真实案例尤其值得细读。
参考来源
- Dylan Zhang et al., Useful Memories Become Faulty When Continuously Updated by LLMs, arXiv:2605.12978
- 论文涉及的记忆框架:CLIN、Agent Workflow Memory (AWM)、Dynamic Cheatsheet、ACE
原文地址:https://mdnice.com/writing/d0c043d92b8e4d5184613269a95bf5ed
