返回 FEED
AGENT2026-05-12

Faulty Memory:LLM 持续自我改写记忆会导致退化

核心发现

当 LLM Agent 把自己的经验改写成文本"教训"存入持久记忆,下次遇到类似问题时检索复用——这个看似完美的自我改进循环,实际上不可靠

UIUC 的 Dylan Zhang 在五个 Agent benchmark(ALFWorld、ScienceWorld、WebShop、AppWorld、Mind2Web)和自建的 ARC-AGI 控制流上运行了这个循环。结果:Agent 在已解决的问题上表现更差

headline 结果

取 19 个 GPT-5.4 无记忆时 100% 解决的 ARC-AGI 问题。将这些问题的 ground-truth 解通过 consolidation 循环流式处理。

结果:准确率从 100% 暴跌至 54%。

同样的轨迹,第二次解决时更差。数据是干净的,Agent 看到了正确答案。把正确答案压缩成可复用教训的行为,让它忘记了如何解题。

记忆效用随更新非单调

ScienceWorld:分数在前 ~20 步上升,然后在第 100 步下降,最终滑到无记忆基线以下。

WebShop (AWM):8 个样本时 0.64 → 128 个样本时 0.20。无记忆基线就是 0.20。扩展记忆抹除了它自己的收益

ALFWorld:用最强模型(GPT-5.4)在最佳 schedule 上 seed 记忆,然后用更小的模型继续更新。三个不同 solver(Qwen3.5-{27B, 9B, 4B})——同样形状:持续 consolidation 拖拽效用下降。

是改写的问题,不是数据的问题

同一批轨迹,三种不同的 consolidation schedule,产生三种不同的记忆:

  • Static-Group:按任务家族分组,一次性抽象。最佳——consolidator 看到干净的一批同家族任务时,有机会提取潜在结构。
  • Static-All:把所有异构任务混到一起一次性抽象。混乱——Pick&Place 的教训泄漏到 Pick-Clean-Place。
  • Stream:增量更新,逐批处理。最差——早期抽象锚定后期改写,小错误在 segmentation 或 emphasis 中成为下一轮 consolidation 的上下文,错误复合。

轨迹池完全相同。问题在 consolidation 步骤本身。

三种失败模式

1. 误分组(Misgrouping)

Consolidator 在抽象前决定哪些 episode 属于一起。当被迫每步都 consolidate 时,它把共享很少底层结构的 episode 混到一起。

在 ARC-AGI Stream 的强制 consolidation 下,模型经常跨不同问题类别合并记忆条目。给它自主权时,它最终会收敛到覆盖 6 种问题类型的干净 episodic store——但要在 568 个样本之后。分段能力存在,但强制改写覆盖了它。

2. 干扰(Interference)

每次抽象 pass 都会平滑现有条目。当 chunk 边界不精确时,改写剥离了适用条件:一个对 Pick&Place 为真的教训读起来广泛相关,误导了 Pick-Clean-Place。

在 15 任务的 ScienceWorld 切换序列上,只在当前任务上蒸馏记忆("Fresh")比跨所有先前任务联合 consolidate("Cumulative")高 203 分。LLM judge 标记每条条目:Cumulative 以 ~5× Fresh 的速率积累过度泛化记忆,以 ~20× 的速率积累 outright garbage。

3. 过拟合(Overfit)

当输入分布变窄而非变宽时,抽象过拟合到所见实例的表面规律性,而非底层策略。记忆识别精确重复,但在同一家族的微小变体上失败。

在单一 ARC-AGI 策略家族上反复 consolidate,性能在精确重复上保持稳定,然后在同一家族的微小变体上崩溃。"教训"变成了对示例的描述。

同一谱系,相隔 50 次改写:

  • Round 1:"identify and extract structured elements → compute a global metric (e.g., max size) → iterate elements and selectively apply targeted edits"
  • Round 50:"Find the maximum value of a derived per-object numeric attribute and apply a uniform transformation to every object whose attribute equals that maximum."

Round 1 命名了实际选择器 "max size"。Round 50 在 49 次自我改写后抹除了它——条目不再记录哪个属性要最大化。

认知科学的呼应

这正是**互补学习系统理论(Complementary Learning Systems theory)**被设计来防止的。

大脑保持快速的 episodic store 和慢速的 schema-forming store,架构上分离,consolidation 由 schema fit 门控而非在每个事件上触发。把两者 collapse 到一个强制改写循环中,你就得到了双系统被设计来避免的干扰灾难。

今天的 Agent 记忆设计 collapse 了两者。同一个解决任务的 LLM 也在每一步改写自己对该任务的记忆,没有门控。

一个令人惊讶的修复

不要强制抽象。只保留 episode。

在 ARC-AGI Stream 上,让 Agent 自主管理记忆(Retain / Delete / Consolidate):

  • Force:每轮必须 consolidate。Episodic 条目不持久。大多数现有系统的默认设置。
  • Auto:Agent 选择:保留原始、删除、或 consolidate。Episodic 和抽象 store 都可在检索时使用。
  • Episodic Only:保留或删除原始 episode。完全禁用抽象。

结果:

  • Auto(默认保留 episode,谨慎使用抽象)优于 Force
  • Episodic Only(选择性保留/删除原始 episode,禁用抽象)匹配或超过完整 Auto 模式
  • Abstract Only(只读蒸馏教训)从未改善无记忆基线

抽象 store 什么都没做。 只读蒸馏教训从未改善无记忆基线。只读原始 episode 几乎恢复了 Auto 的全部收益。

Agent 自己也同意:当 given choice 时,它快速饱和 episodic buffer,在每个预算水平上保持抽象 store 稀疏。

五个真实案例

案例 1:19 个 ARC 任务 collapse 成单一 playbook

10 轮 consolidation 后,整个记忆 store 包含一个条目。不是库,不是五个条目。一个。

这个条目描述了一个家族,但来源池跨越六个家族。五个家族现在对 Agent 不可见。 handed 一个与 inside-frame 逻辑无关的 held-out 任务("erase every object of color 6"),无记忆时 10/10 解决,有记忆时 0/10。

案例 2:8 个工作流变成 16 个冗余的

AWM on WebShop,128 条专家轨迹,3 个 epoch。

Epoch 1:8 个抽象工作流模板。Epoch 3:16 个。新 8 个不是新模式——是同一模板,restated with one product category pinned in。

W9 就是 W3+W4+W5 拼接。W10-W16 是同一 search-then-variant-select 模板,只是钉上了不同产品类别。没有新控制流,没有新 guard,没有新 stop criterion。8 个新条目竞争检索带宽而不增加任何泛化能力。

案例 3:ScienceWorld 三种记忆腐烂

LLM judge 标记每条条目为过度泛化、过度特化、或无用垃圾。

  • "Observing all life stages in order MAY BE NECESSARY to complete a turtle-stage task" 和 moth-stage 版本是彼此的 paraphrase——consolidator 用不同任务标签写了同一课两次
  • "Using a lighter, fire source, or oven MAY BE NECESSARY to change the state" 读起来广泛适用,但许多 state-change 任务需要 cooling、freezing、melting
  • "Assembling an electrical circuit DOES NOT CONTRIBUTE to completing a smores synthesis task" ——true,useless,消耗检索带宽告诉 Agent 不要做什么,而 Agent 本来就不会做

案例 4:50 项记忆在单步 consolidation 中变成 1 项

ALFWorld,stage 168:50 个结构化条目,~48k 字符。Stage 169:单个条目,1,960 字符。

Cooling-vs-heating 不对称性(cooling 不需要 insertion,heating 需要)消失了。Two-object shuttle default 消失了。Look-at protocol 变成 step 9 的半句子子句。

评估结果:Qwen3.5-4B 从 35/48 降到 29/48,Qwen3.5-27B 从 37/48 降到 24/48。一步。丢失 6 到 13 个胜利。

案例 5:99 票给同义反复

ExpeL on ALFWorld,200 阶段。Top slot 有 99 票——最高,by factor of 2。

追踪同一 slot:

  • Stage 0(28 票):具体命名 look-at-obj-in-light 模式
  • Stage 80(46 票):通用规划启发式,任务类型线索消失
  • Stage 200(99 票):同义反复,适用于任何 Agent benchmark

99 票是跨三个不同概念 earned 的。Stage 200 时 slot 里只有第三个概念。流行度分数衡量的是 slot edit-volume,不是内容质量。

深层问题

每次 consolidation 步骤都是一次生成。Agent 在幻觉自己的过去。

失败不是"LLM 不擅长总结"。是结构性的

我们构建了一个系统,其稳定长期知识是生成循环的固定点——而没有固定点

每次 consolidation:

  1. 读取当前记忆和新鲜轨迹
  2. 生成新记忆条目"应该"是什么。这是 LLM 前向传播。它产生流畅、结构合理的文本。它不是输入的忠实摘要——它是条件于输入的分布中的样本。
  3. 将样本写回,仿佛它是 ground truth。下一步 consolidation 读取这个样本并条件于它。

堆叠 200 次。Plausible-looking text 累积。具体事实(哪个颜色、哪个 receptacle、哪个选择器)最可能在每步掉落,因为它们对运行摘要来说是最 surprising 的 token。记忆漂向 LLM 对好教训的先验,而非轨迹的真相。

五条建议

  1. 把原始 episode 当作一等证据。默认不要压缩它们。今天的 solver 已经可以通过 in-context learning 使用它们。
  2. 让抽象选择性和门控。不是每条轨迹都需要变成"教训"。大多数不应该。
  3. 解耦 episodic 和 schema-forming 角色。快速 episodic buffer + 慢速、门控的抽象 store 优于单一强制改写循环。
  4. 针对规模压力测试。在 8 个样本上好、在 128 个样本上差的记忆系统不是记忆系统。它是有泄漏的 prompt。
  5. 始终包含 episodic-only 基线。如果你的蒸馏记忆无法击败作为 in-context demo 检索的原始 rollout,蒸馏没有 earning its keep。

结语

持续改写的文本记忆承诺了一条无需权重更新的自我改进路径。我们的结果说:还没做到。

持续更新的文本记忆不应被视为可靠的自我改进引擎,而应被视为一种脆弱机制——它能让更多经验导致更差的记忆

长程 Agent 需要 episodic 和 schematic 记忆。但在 LLM 能决定何时如何 consolidate 之前,更安全的默认是保留证据、谨慎抽象——或根本不抽象。