@dylan_works_: 写了一些我最近一直在研究的有趣发现:当 LLM agent 反复将自身经历改写成文本形式的“经验……

X AI KOLs Timeline 论文

摘要

这篇研究博客文章表明,反复将 LLM agent 的经历改写成文本形式的“教训”往往会降低性能,而非提升性能。作者发现,在 ARC-AGI 和 ALFWorld 等基准测试中,情景记忆保留的效果优于抽象巩固。

我整理了一些我最近一直在研究的有趣发现:当 LLM agent 反复将自身经历改写成文本形式的“教训”时,其记忆效果反而会变差,而非变好。在多个环境中,我们发现了一个反复出现的模式:强制巩固往往会将有用的经验退化为错误或过度泛化的记忆。有趣的是,模型似乎更擅长将示例作为记忆对象进行管理,而不是将它们提炼为可复用的例程。也许我们在要求 agent 不断将经验“巩固”为教训时应该更加谨慎?我是这一领域的新手,所以非常欢迎大家的观点。我可能遗漏了一些背景信息,或者在某些地方理解有误——请随时指出!随时欢迎讨论。
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 2026/05/10 04:22

我整理了一些最近在探索的有趣发现:当大语言模型(LLM)智能体反复将自己的经历重写成文本形式的“教训”时,其记忆效果反而会变差,而非变好。在多个环境中,我们发现了一个重复出现的模式:强制性的记忆整合往往会将有用的经验退化为错误或不恰当过度泛化的记忆。有趣的是,模型似乎更擅长将示例作为记忆对象进行管理,而不是将它们提炼为可复用的例程。也许我们应该对要求智能体不断将经验“整合”为教训这种做法更加谨慎?我是这个领域的新手,所以非常期待大家的想法。我可能遗漏了某些背景信息,或者部分观点有误——请随时告知!欢迎讨论。—

当大语言模型持续更新时,有用的记忆会变得错误

来源:https://dylanzsz.github.io/faulty-memory/

简而言之

  • 流行的 “提炼经验 → 存储为文本 → 后期重写” 方案并 不是 自我改进的可靠引擎。
  • 在通过整合循环流式传输真实解决方案后,GPT-5.4 在之前零记忆状态下能解决的 54% 的 ARC-AGI 问题上失败了。
  • 相同的轨迹在不同的调度方案下会产生不同的记忆——问题出在 重写步骤,而非数据本身。
  • 一个 仅基于情境(episodic-only) 的智能体——即 选择性地 保留和删除原始 rollout 数据,且禁用抽象化——的表现匹配甚至优于我们测试的所有整合器。关键在于经过策展的原始证据,而非未经过滤的数据洪流。

范式

近期的一系列研究给 LLM 智能体提供了一个“笔记本”。智能体解决问题后,会将轨迹 提炼 成文本教训,存入持久记忆,下次遇到类似问题时检索并复用 [refs]。其主张极具吸引力:无需参数更新即可实现持续的自我改进。智能体的“权重”只是它可以阅读和编辑的文本。记忆增长,教训累积,准确率提升。

我们在五个智能体基准测试(ALFWorld, ScienceWorld, WebShop, AppWorld, Mind2Web)以及一个基于 ARC-AGI 构建的受控数据流上端到端地运行了这一循环。故事并未如期发展。

主要结果

智能体在其已解决的任务上出现性能回退。

取 19 个 ARC-AGI 问题,GPT-5.4 在无记忆状态下以 100% 的准确率解决。将这些完全相同的问题通过整合循环流式传输,每一步都提供 真实解决方案(ground-truth solutions)

ARC-AGI 流式测试:随着记忆从真实数据进行整合,GPT-5.4 的准确率从 100% 暴跌至 54%。解决同一个问题两次,第二次表现更差。 无记忆时:100%。在从 这些问题的真实解决方案 进行整合后,GPT-5.4 降至 54%。轨迹本身是完美的;是重写步骤导致了失败。

“错误记忆”并非“噪声数据”的委婉说法。数据是干净的。智能体看到了正确答案。将这些正确答案压缩成可复用的教训这一行为,使其忘记了如何解决它们。

衰退的形态

记忆的效用随更新次数非单调变化。

而且起始点并不差。我们使用测试中最强的模型(GPT-5.4)在干净的“静态分组(Static-Group)”调度方案下为 ALFWorld 记忆播种。然后使用较小的模型在同一轨迹池中继续更新它。三个不同的求解器(Qwen3.5-{27B, 9B, 4B})。呈现相同的形态:在持续整合下,不同求解器在 ALFWorld 上的效用衰减。

强大的记忆并非不动点。 在同一轨迹池上的持续整合导致所有三个求解器的效用下降,有时在连续步骤间发生灾难性下降。

问题在于重写,而非数据

相同的轨迹根据提供方式的不同会产生不同的记忆。

固定轨迹池。仅改变 整合调度方案。输出记忆在质上发生变化,下游得分也随之改变。

三者中最佳。 当整合器一次只看一个任务家族的干净批次时,它才有机会提取潜在结构。这是最干净的离线设置。尽管使用相同的轨迹池,Static-Group、Static-All 和 Stream 调度方案却产生了分歧。

相同的轨迹,三种调度方案,三种不同的记忆。 流式处理——持续部署的智能体实际拥有的调度方案——表现最差。

为何这很重要

这三次运行的轨迹池是 完全相同 的。因此,结果记忆中存在的问题不能归咎于智能体收集的数据。问题必然出在整合步骤本身。

三种失败模式

为什么重写会出错?

我们隔离了三种机制。每一种都将整合循环从积累转变为有损重写。

01 错误分组

在抽象之前,整合器决定 哪些片段属于同一组。当被迫在每一步进行整合时,它将底层结构关联甚少的片段池化。在 ARC-AGI Stream 的强制整合下,模型经常将不同问题类的记忆条目合并。当拥有自主权时,它最终会收敛到一个覆盖所有 6 种问题类型的清晰情境存储库——但这需要经历 568 个示例之后才能达成。具备分段能力的潜力是存在的。强制重写覆盖了这种能力。

原文记忆条目 GPT-5.4 · 强制整合 · ARC-AGI Stream

何时使用: 一个大的空心矩形框架包围了一些物体,而其他物体位于其外部……在保留的内部物体中,基于与外部匹配物体的关系,单个区分单元发生变化,通常当外部物体与内部物体形状相同时。

策略: … (5) 对于每个内部物体,寻找具有相同形状特征的外部物体…… (6) 如果内部物体有这样的匹配外部对应物,用外部物体的颜色标记内部物体边界框的中心单元格。

高亮部分显示的是 外来家族注入(foreign-family injections):形状特征查找属于 按形状分组(group-by-shape) 家族,标记颜色写入属于 键标记(key-marker) 家族。两者都不属于源任务(inside-frame)的一部分。整合器拼接出了一个没有任何实际家族规定的复合体。强制整合下的错误分类计数急剧上升。

02 干扰

每次抽象过程都会平滑现有条目。当块边界不精确时,重写会 剥离适用条件:原本适用于 Pick&Place 的教训被解读为广泛相关,从而误导了 Pick-Clean-Place。在一个 15 任务的 ScienceWorld 切换序列中, 对当前任务提炼记忆(“Fresh”)比在所有先前任务上联合整合(“Cumulative”)高出 +203 分。LLM 评判员对每个条目进行标注:Cumulative 积累过度泛化记忆的速度约为 Fresh 的 ~5 倍,积累完全垃圾信息的速度约为 Fresh 的 ~20 倍

原文记忆条目 ScienceWorld · 过度泛化

在 state-change 任务中,使用打火机、火源或烤箱 可能是必要的 来改变食物或物质的状态。

读起来适用范围很广。但许多 state-change 任务需要冷却、冻结或融化。适用条件已被剥离:该教训现在使智能体倾向于在热量无关甚至有害的任务中使用热源。

在 ScienceWorld 15 任务序列中,Cumulative 整合比 Fresh 落后 203 分。Fresh 与 Cumulative:相同的轨迹,不同的整合范围,+203 分的差距。

03 过拟合

当输入分布 变窄 而非变宽时,抽象会过拟合于所见实例的表面规律,而非底层策略。记忆能识别确切的重现,但在同一家族的微小变体上失败。我们在整合周期内向智能体提供来自单一 ARC-AGI 策略家族的任务。在确切重复上的表现保持稳定,但在同一家族内的微小变化上崩溃。“教训”变成了对示例的描述。

相同谱系,相隔 50 次重写 GPT-5-mini · “重新着色最大物体”

第 1 轮 识别并从输入中提取结构化元素 → 计算全局指标(例如,最大尺寸)→ 迭代元素并有选择地应用目标编辑

第 50 轮 找出派生的每物体数值属性的 最大值,并对属性等于该最大值的每个对象应用统一变换。

第 1 轮命名了实际的选择器,“最大尺寸”——求解器可以计算的属性。第 50 轮,在对同一任务的相同谱系进行 49 次重写后,擦除了它:条目不再记录 哪个 属性需要最大化。

ARC 过拟合:在确切重复上的准确率保持稳定,而在相近变体上的准确率崩溃。窄流产生的记忆能识别已见案例,但在邻近案例上失败。

附带说明,面向认知科学背景的人士

这正是双重系统记忆旨在防止的情况。

互补学习系统理论 [refs] 指出,大脑保持快速的情境存储和缓慢的模式形成存储 在架构上是 distinct 的,整合由模式匹配 门控,而不是由每个事件触发。将两者合并为一个强制性的重写循环,就会导致双重系统旨在避免的干扰灾难。

今天的智能体记忆设计将两者合并。同一个解决任务的 LLM 也在每一步重写自己对该任务的记忆,且没有门控机制。我们的发现正是该预测在实践中的体现。

案例

现实世界中的错误记忆。

来自真实整合运行的三个真实产物。逐字记录,未经编辑,仅进行选择性高亮。

案例 1

19 个 ARC 任务坍缩为单一剧本

GPT-5.4 · 跨越 6 个家族的 19 个任务 · 10 次迭代(190 步)· 每一步都有真实代码

经过十次迭代后,整个记忆存储库只包含 一个 条目。不是库。甚至不是五个条目。只有一个。

记忆中仅剩的唯一条目 经过 190 次整合步骤后

提取连接的物体,选择最大的作为框架,根据其他物体的边界框是否严格位于该框架内部对其进行分类,擦除框架和所有外部物体,然后通过将其内部变为颜色 0 同时保留其边界来就地掏空每个内部物体。

内部一致。读起来像是一条合理的教训。问题在于:源池跨越 六个 家族,而这个条目只描述了 一个。五个家族现在对智能体不可见。

现在给智能体一个持留任务,其真实规则是“擦除所有颜色为 6 的物体”。这与 inside-frame 逻辑无关。无记忆时,同一模型以 10/10 的准确率解决:

无记忆 10 / 10

def solve(grid):
    # The transformation removes every connected
    # component of color 6.
    out = [row[:] for row in grid]
    for obj in extract_objects(grid):
        if obj["color"] == 6:
            for r, c in obj["cells"]:
                out[r][c] = 0
    return out

有记忆 0 / 10

def solve(grid):
    # Keep only non-frame objects; frames are the
    # largest connected components.
    h = len(grid); w = len(grid[0]) if h else 0
    objs = extract_objects(grid)
    if not objs:
        return [row[:] for row in grid]
    frame = max(objs, key=lambda o: o["size"])
    fb = frame["bbox"]
    out = [[0] * w for _ in range(h)]
    for obj in objs:
        if obj is frame:
            continue
        bb = obj["bbox"]
        inside = (bb["top"] > fb["top"] and bb["bottom"] < fb["bottom"] and bb["left"] > fb["left"] and bb["right"] < fb["right"])
        if inside:
            for r, c in obj["cells"]:
                out[r][c] = obj["color"]
    for obj in extract_objects(out):
        apply_hollow(out, obj, fill_color=0)
    return out

有记忆求解器的第一个注释逐字复述了该条目。代码遵循条目的框架和掏空配方:按大小选择框架,复制内部物体,掏空它们。在此输入上,没有标记通过严格内部检查,画布保持空白。

记忆将一个 10/10 的求解器变成了 0/10 的求解器。

案例 2

通过累加坍缩:8 个工作流变成 16 个冗余工作流

AWM on WebShop · 128 个专家轨迹 · gpt-5.4-mini · 3 个 epoch

在第 1 个 epoch 后,记忆文件包含 8 个抽象工作流模板。到第 3 个 epoch,它包含 16 个。新的 8 个(高亮)并非新模式。它们是相同的模板,只是固定了一个产品类别:

AWM 工作流标题,第 3 个 epoch ~8.2k 字符 · 原文

  1. W1. 通过属性丰富的查询搜索。
  2. W2. 打开候选项目以检查选项。
  3. W3. 购买前选择所需属性。
  4. W4. 购买前选择所需的尺寸、颜色和其他变体选项。
  5. W5. 搜索并选择带有版型类型的服装变体。
  6. W6. 搜索并选择家居装饰变体。
  7. W7. 搜索并选择多部件服装尺寸变体。
  8. W8. 当第一个结果不匹配时跨页面搜索。
  9. W9. 购买前选择服装颜色、尺寸和版型/订单特定变体。
  10. W10. 购买前选择非服装口味和尺寸变体。
  11. W11. 购买前选择包装数量和颜色变体。
  12. W12. 搜索并选择家居用品的颜色、尺寸和形状变体。
  13. W13. 搜索并选择带有颜色和尺寸的鞋子。
  14. W14. 搜索并选择服装颜色、尺寸和购买。
  15. W15. 搜索并选择电子产品内存/存储变体。
  16. W16. 搜索并选择运动服或性能上衣变体。

W9 只是 W3 + W4 + W5 的拼接。W10–W16 是相同的搜索然后选择变体模板(W1–W4),只是固定了一个产品类别(食品、包装数量、家居用品、鞋子、服装、电子产品、运动服)。没有新的控制流,没有新的守卫,没有新的停止准则。八个新条目争夺检索带宽,却没有增加任何通用性。

而且这并非无害。仅移除 一个 工作流(W8,“当第一个结果不匹配时跨页面搜索”)就能将 gpt-5.4-mini 的胜率从 7/50 提高到 14/50,将 gpt-5-mini 的胜率从 18/50 提高到 23/50——因为 W8 使智能体偏向于死循环 click[Next >] 序列,以牺牲 click[Buy Now] 为代价。

案例 3

ScienceWorld:三种记忆腐烂的味道

LLM 评判员将存储中的每个条目标记为 过度泛化过度专业化无用垃圾。点击标签以查看每个类别的原文条目。

按顺序观察所有生命阶段 可能是必要的 以完成 turtle-stage 任务。 按顺序观察所有生命阶段 可能是必要的 以完成 moth-stage 任务。 在 state-change 任务中,使用打火机、火源或烤箱 可能是必要的 来改变食物或物质的状态。 关注目标物质 应该是必要的 以改变其状态。

前两个条目互为 paraphrase——整合器用不同的任务标签粘贴了相同的教训。这些都没有命名求解器实际上可以用来选择操作的属性。

LLM 评判员运行总计:Cumulative 比 Fresh 更快地积累过度泛化和垃圾记忆。 在 Cumulative 整合下的过度泛化和垃圾记忆运行计数与 Fresh 几乎立即分离且从未恢复。

案例 4

50 项记忆在单次整合步骤中变成 1 项记忆

ALFWorld · gpt-5-nano 整合器 · 阶段 168 → 169 · 容量 50 项

在阶段 168,记忆包含 50 个结构化项,~48k 字符,每个覆盖一个独特的见解(任务分类、状态变更快捷方式、查看灯光协议、多对象配方)。在一次整合步骤后,在阶段 169,记忆包含 单个项

阶段 169 记忆 · 1 项 · 1,960 字符 · 原文 一次合并步骤后

使用单个可重复循环来处理清洁、冷却、加热和查看灯光中的单对象和多对象任务。

  1. 系统地搜索常见房间来源…
  2. 拾取每个目标;如果需要状态更改(用冰箱冷却 X,用微波炉加热 X,或用水槽清洗 X),则在持有时执行…
  3. 导航到目的地…
  4. 放置物体…
  5. 如果两个 id

相似文章

从存储到经验:大语言模型智能体记忆机制演进综述

Hugging Face Daily Papers

本综述论文提出了一种大语言模型(LLM)智能体记忆机制的演进框架,将其发展划分为三个阶段:存储、反思和经验。文章分析了长程一致性和持续学习等核心驱动力,旨在为下一代智能体的设计提供指导原则。