AI 越记越笨,GPT-4 从满分跌到 54% 的记忆陷阱

小岛AI 2026 / 05 / 18

好家伙,这个数据我看了两遍。

GPT-4 解一批小型 ARC-AGI 谜题,没有记忆时正确率是 100%。给它加上记忆,让它把每次经验写成总结,流式更新进记忆库,然后再来解同一批——54%。

差不多打了半折。

UIUC(伊利诺伊大学)和清华大学等机构最近发了一篇论文,研究 LLM 智能体的记忆系统为什么越用越烂。核心结论不是「记忆不够」,而是「记忆被反复重写之后,质量开始悄悄垮掉」。

我把论文核心看了一遍,第一反应是那种「我没想到」,然后是「哦对,就是应该这样」,夹在中间还有一点「完了,我之前信的那套好像有点问题」。这三种感觉叠在一起,还挺有意思的。

先说一下背景。

很多 agent 框架都带记忆系统,这件事本身不稀奇——agent(AI 智能体,可以理解为有自主执行能力的 AI,能接工具、能规划步骤、能完成多轮任务)如果每次都从零开始,遇到类似的任务类型不会有任何积累,那确实很浪费。你大概也见过各种宣传:「会不断从经验中学习」「越用越懂你」「任务完成后自动总结规律」。听着很合理。

问题在于「从经验中学习」这件事,在工程层面具体是怎么实现的。

最常见的做法是让 LLM 本身去「消化」完成的任务,把这段经历压缩成几句文字教训,然后存进记忆库,下次执行相关任务之前,先检索一遍这段记忆当背景知识。

这步操作在论文里叫 memory rewriting——记忆重写。

听着还是挺合理。问题就藏在这个「重写」里面。

研究团队把这套机制放在三类任务上做了测试,分别是网页购物模拟、文字游戏世界、以及 ARC-AGI 风格的谜题。

这里先插一句,ARC-AGI(Abstraction and Reasoning Corpus,抽象推理语料库)是 François Chollet——Keras 的作者——设计的一个 AI 推理测试集。形式有点像「找规律填格子」,每道题的规则都是独立的,你不能靠记住题型作弊,必须每次对着当前这道题从头推理。目前它依然是 AI 系统很难完美搞定的测试之一,很多模型在这上面的表现远不如人类。

测试结果里,GPT-4 在小规模 ARC-AGI 子集上「裸跑」,不携带任何历史记忆,正确率 100%。然后给它接上一套标准的「流式更新记忆」系统,每次任务完成之后让它自己写总结更新记忆库,再来解题——54%。

这是最触目惊心的那组数据。

但三类任务里出现的问题各有各的样子。

网页购物任务里,agent 开始混淆不同商品类别的购买逻辑。从「选衣服要先看面料」学到的经验,被写进了记忆之后,下次去找电子产品还在参考面料逻辑,找的方向完全错了。不同类别的购买经验,被写到了同一块记忆里,然后互相污染。研究把这类问题叫「错误分组」——本来应该各自独立存放的经验,被泛化到了一起。

文字游戏世界里出现的问题更有喜感。有一局地图里,agent 走东边找到了出口,这个经验被总结成「走东边有出路」存进了记忆。然后在一张完全不同的地图里,agent 翻出这条记忆,信了,走到墙里去了。这条记忆本来是从单个特殊案例得来的,但被写进记忆的时候语气是「一般要走东边」,然后在完全不适用的情境里还在用。这是「过度泛化」——从一个特殊经验错误地推出了一条普遍规律。

ARC 谜题的情况前面说了,但背后机制值得多说一句。原本 GPT-4 靠当场推理就能做对,是因为它针对每道题单独分析,不带前置偏见。加了记忆之后,攒了大量来自不同谜题类型的「经验教训」,这些教训开始互相干扰——「上一类题型要先看行变化」的记忆,在遇到一道「核心是列关系」的题时成了杂音。模型本来能做对,但被自己攒的记忆带偏了。这是「过拟合」——针对特定任务类型的记忆,渗透进了不相关的任务里。

厉害了,一套记忆系统,三种把自己学傻的路径。

为什么会这样,这是我觉得最核心的问题。

LLM 把一段经历重写成教训的时候,做的是一次高度的泛化——从特殊到一般,从具体到抽象,从「这次发生了什么」到「以后遇到类似情况应该怎样」。

这个过程在人类学习里是好事,但问题在于,人做泛化的时候有一层隐性的元认知,知道这个泛化的适用范围。你学会了一道菜的做法,你知道「这套步骤是针对这道菜的」,不会想到「以后所有炒菜都要这个顺序」。你帮朋友搬家走了一条路,你不会总结成「这条街总能停车」。人对自己的记忆有一种直觉上的可信度标注,知道哪条经验是偶然的、特殊的,哪条是可以推广的。

LLM 目前没有这层。它泛化的时候不区分「这条值得泛化」和「这条只能用一次」,更不会给自己存的记忆打可信度标签。你给它什么经历,它就提炼成什么教训,写的时候用的语气都是「应该这样做」,没有「但这条可能只在某些情况下成立」的附注。

更麻烦的是,这个问题是随时间累积的。

第一次重写还好,经验还新鲜,总结还贴近原始情况。到第十次、第三十次,早期那些包含具体细节的原始经验已经被多轮泛化覆盖掉了。agent 的记忆库里存的,越来越是一层一层的「教训摘要」,而不是「那次具体是什么情况、当时的上下文是什么、为什么那么做」。原始证据不见了。

就像你把一本书的重点做了摘要,然后把摘要再做一遍摘要,再来一遍——到最后你手里还有文字,但那本书的骨架早就散了。回溯原意已经做不到了。想知道「当初那条规律是从什么具体的案例得来的」,已经没有任何线索可查。

研究给出的建议方向其实不复杂,核心是两件事。

第一,保留原始经历作为证据,不要让它被压缩消失。记忆库里除了精炼过的教训之外,还应该保留「原始对话记录」或「原始任务过程」,这样 agent 做判断的时候还有东西可以回溯,不只是看那段总结。

第二,「选择性摘要」优于「流式更新」。不要每次任务完成都无脑写一遍总结,而是先判断这次经历有没有包含新的、不在现有记忆里的信息,再决定要不要更新。换句话说,减少写入的频率,提高每次写入的质量。

这让我想到代码版本管理。你不会只保留 git log,因为你知道随时可能要 git diff,甚至要 git revert 回某个历史节点。只留 commit message 的话,那些变更细节就永久丢了,下次遇到类似问题你只知道「之前动过这块」,但不知道当时改了什么、为什么这么改、改的时候的上下文是什么。原始 diff 里藏着的东西,摘要里是找不到的。

有点子牛逼的是,这个道理在代码世界里每个开发者都理解,但在 AI agent 的记忆设计里,却很少被当成第一原则。

我觉得这篇论文对现在做 agent 相关的人来说挺值得看一眼的。

不是说所有记忆系统都踩了这个坑——如果你的 agent 任务都是独立的、不跨会话、不带历史上下文,那这件事对你暂时影响不大。但如果你的 agent 要「积累经验」「越用越好」「在长期任务里保持一致性」,那「让 LLM 自己写总结来管自己的记忆」这套设计,需要多留一个心眼。

它的问题在于你很难从外部感知。它不会以崩溃式的方式变差,而是缓慢漂移——某些任务类别开始悄悄出错,表现越来越不稳定,但你归因的时候通常想的是「是不是 prompt 写的不够好」「是不是模型这类任务天然弱」「是不是工具调用哪里有问题」。很少会想到「是不是记忆库里的某条旧总结把它带偏了」。

我自己的感受是,越来越觉得 AI 的「记忆」和人的记忆从机制上根本不是同一件事,不能用同一套直觉去建模。人的记忆带情绪权重、时间权重、上下文,而且有那层「这条记忆我能信多少」的元认知,会主动质疑自己记下来的东西。LLM 存的时候没有这层,调用的时候也没有这层。它不会觉得「这条记忆好像是我在状态很差的时候写的」或者「这个结论我当时推的可能有点草率」。

有时候会觉得,这是一个「有记性但没有反思能力」的系统。记得住,但不知道自己记错了没有。

这事我目前也没想明白有什么干净的解法,各种框架在这块都还在摸索。但知道坑在哪儿总比不知道好。至少下次看到某个 agent 框架宣传「越用越聪明、经验会不断积累」的时候,我会在心里加一句「得看你怎么积累的」。

想到李志有首歌,叫「关于郑州的记忆」,里面那句「我不记得那一年、那一年,那一年」,重复那么多遍「那一年」,反而什么细节都没剩下,只剩了一个模糊的「好像发生过什么」的感觉。

AI 记忆重写这件事,某种程度上挺像的——越努力总结,越离原来那件事远。留着原始的,有时候比反复加工更值钱。

有在做 agent 相关的朋友可以把这篇论文找出来看看,研究团队在几个标准任务上的实验结果写得很详细,实验设计也清晰,比较实用的那种研究。原始线索来自这里,感兴趣的可以顺着去找正式版本,https://x.com/rohanpaul_ai/status/2055919204591902771。有想法欢迎评论区聊。