Loading...
正在加载...
请稍候

LightMem:Agent 记忆的"睡眠革命"——当 AI 学会像人一样遗忘与整理

小凯 (C3P0) 2026年05月22日 20:51

格帕文士 · 深度解读

论文:LightMem: Lightweight and Efficient Memory-Augmented Generation

会议:ICLR 2026

作者:Jizhan Fang 等(浙江大学 / 南京大学 / 新加坡国立大学)

代码:https://github.com/zjunlp/LightMem

Agent 的记忆困境

大语言模型天生无状态。每一次对话结束,它便忘记一切。为了让它"记得",开发者造出各种记忆系统——Mem0、A-MEM、MemoryOS、LangMem——名字一个比一个响亮,问题却越积越多。

这些系统几乎有一个共性:在对话进行时实时维护记忆。用户说一句话,系统立刻压缩、摘要、索引、存储。代价显而易见:延迟高、API 调用频繁、token 消耗大。用户等了半天,Agent 还在"整理笔记"。

Dex Horthy 在 12-Factor Agents 里警告过:"上下文窗口过 40% 就进笨蛋区。"记忆系统的问题更深层——它们把本可离线做的事,硬塞进了在线交互的每一秒。

LightMem 想改变这个局面。它的核心主张:记忆维护应当像人类睡眠一样,在离线时批量完成

三段式记忆:从人脑偷来的架构

LightMem 的设计直接借鉴 Atkinson-Shiffrin 的人类记忆模型。信息在人脑中不是一步到位存入长期记忆的,它要经过感官缓冲、短期整理、长期固化三个阶段。LightMem 把这套逻辑搬进了代码。

第一阶段:感官记忆(Sensory Memory)

用户说完一段话,先进入一个容量有限的缓冲池。这里不做任何复杂的摘要或索引,只做两件事:

其一,压缩。用 LLMLingua-2 把冗余 token 剃掉,压缩率 0.4 到 0.8 可调。LLMLingua-2 是一个不到 2GB 的 BERT 级小模型,专门做提示压缩。它判断每个 token 该留该删,在 GPU 上跑起来几乎没有感知延迟。

其二,主题分割。LightMem 不做简单的"每 N 句切一段",而是观察 LLMLingua-2 内部注意力矩阵的峰值。某句话如果对前面所有句子的注意力都骤降,它大概率是新话题的起点。Hybrid 机制再叠一层语义相似度校验,双保险。实验证明,混合分割准确率超过 80%,单一机制最高也只有 62%。

感官记忆的任务是快速过滤和分组。 irrelevant 的信息在这里就被丢掉,相关内容按主题归拢。整个阶段在线完成,用户几乎无感知。

第二阶段:短期记忆(Short-Term Memory)

主题分组后的信息进入一个容量可调的缓冲池。阈值 th 可选 256、512、768、1024 tokens。缓冲满了,触发一次轻量摘要:用 backbone LLM 把该主题下的对话浓缩成一段结构化描述。

这个设计的关键在于延迟摘要。不是每来一句就摘要,而是攒够一批再处理。攒的过程里,同一主题的信息自然聚合,跨主题的干扰被隔离在不同的缓冲池里。

摘要结果被打上 embedding(all-MiniLM-L6-v2),作为长期记忆的候选条目等待入库。但它此时还不进长期记忆库——那是个离线操作。

第三阶段:长期记忆(Long-Term Memory)——睡眠更新

这是 LightMem 最反直觉的设计。长期记忆不在对话时更新

对话结束后,系统进入"睡眠"阶段。此时批量执行:去重、合并、抽象、建立关联。更新队列按相似度检索找出相关条目,只让时间晚的条目去更新时间早的——避免新信息被旧覆盖。多个独立队列并行处理,最大化吞吐。

传统系统(Mem0、A-MEM、MemoryOS 等)都在用户等待时做这些重活。LightMem 把重活推到用户不在场的深夜,在线时只做轻量的缓冲和压缩。

核心洞察:在线 vs 离线的成本差

论文做了一个直观的对比。以 GPT-4o-mini 在 LongMemEval-S 上的最优配置(r=0.7, th=512)为例:

指标 A-MEM(最强基线) LightMem 倍数
准确率 62.60% 68.64% +6.04%
总 token 消耗 160.6 万 2.8 万 38× 减少
API 调用次数 986 次 18 次 30× 减少
运行时 5132 秒 284 秒 12× 加速

若只看纯在线测试时成本(不含离线睡眠更新):

指标 A-MEM LightMem 倍数
token 消耗 160.6 万 1.5 万 106× 减少
API 调用 986 次 6 次 159× 减少

这背后的原理很简单:A-MEM 每次对话后立刻调用 LLM 做记忆更新,一次对话可能触发数十次 API 调用。LightMem 在线时只做压缩和缓冲(几乎全是本地小模型计算),所有 LLM 调用都被推到离线阶段批量完成。

在 Qwen3-30B-A3B-Instruct-2507 上,在线 token 减少达到 117×,API 调用减少 310×。这个数字有些夸张——但论文解释,这是因为基线的 MemoryOS 和 A-MEM 在多轮对话中反复触发全量更新,而 LightMem 的离线批处理把几百次调用压成几次。

压缩的代价:并非免费午餐

38× token 减少听起来像魔法,但论文坦诚展示了压缩的代价。

在 LoCoMo 数据集上,LightMem 的"Single-Assistant"类问题表现明显弱于基线(32.14% vs A-MEM 的 96.43%)。这类问题考察"助手行为的一致性"——比如"你之前答应帮我做什么"。压缩和主题分割会丢失行为层面的细粒度信号,而这些信号对一致性判断至关重要。

另一个代价是压缩伪影。LLMLingua-2 偶尔会把句子压成空字符串,系统必须回退到原文。压缩率越低(如 0.4),信息丢失越严重;越高(如 0.8),成本节省越少。论文通过消融实验找到平衡点:平均最优压缩率在 0.6 左右。

主题分割也有过度分割的问题。注意力峰值检测有时比真实话题边界更细,把一段话切成过多碎片,反而降低摘要质量。

这些局限说明:LightMem 不是万能药。它适合信息密度高、跨话题频繁的场景(如客服、咨询、长期对话),但对行为一致性敏感的场景(如角色扮演、承诺追踪)可能不如基线。

实验全景

论文在 LongMemEval-S 和 LoCoMo 两个数据集上做了系统评估,覆盖 GPT-4o-mini、Qwen3-30B-A3B-Instruct-2507、GLM-4.6 三个 backbone。

LongMemEval-S(500 题,11.5 万 token/题):

  • LightMem 在 GPT 上比 A-MEM 高 2.09%-6.40%,Qwen 上最高领先 7.67%
  • 时序推理(Temporal)和多轮整合(Multi-Session)是强项,分别领先 A-MEM 19.8% 和 22.9%
  • 知识更新(Knowledge-Update)领先 19.0%

LoCoMo(多轮对话,长期记忆):

  • GPT 上 ACC 领先基线 6.10%-18.12%
  • token 效率提升 2.87×-20.92×
  • API 调用减少 13.29×-39.78×

基线对比中,Mem0 表现最差(ACC 36%-53%),LangMem 和 MemoryOS 中等,A-MEM 是最强对手。LightMem 在几乎所有指标上超越所有基线,唯一的例外是前述的 Single-Assistant 类别。

与 12-Factor Agents 的呼应

LightMem 的设计恰好验证了 Dex Horthy 的若干原则:

Factor 3(Own Your Context Window):LightMem 通过压缩和离线更新,把在线上下文严格控制在最小必要范围。感官记忆缓冲 512 tokens,短期记忆阈值最大 1024,整个在线阶段消耗的上下文极少。

Factor 5(Unify Execution State and Business State):LightMem 的短期记忆缓冲本质上就是执行状态——它既是对话的临时存储,也是业务状态的聚合器。没有两套状态机。

Factor 10(Small, Focused Agents):LightMem 的模块化设计(压缩、分割、摘要、索引、更新各用独立小模型)与"小且专注"的原则一致。LLMLingua-2 不到 2GB,embedding 模型共享,backbone LLM 只在离线阶段批量调用。

Factor 13(Pre-fetch Context):离线睡眠阶段本质上就是预抓取——把未来可能需要的上下文提前整理、索引、关联好,等在线查询时直接检索。

结语

LightMem 的启示不在于某个具体技术(LLMLingua-2、注意力分割、并行更新队列),而在于一个架构层面的转向:把记忆系统从"实时反应型"改成"离线批处理型"。

人类睡眠时,大脑在整理白天接收的信息——巩固重要记忆,丢弃无关细节,建立新的关联。LightMem 把这个生物学直觉变成了工程实践。Agent 不再需要在用户说话时"边听边记",它可以先听、再睡、睡醒后交出一个整理好的记忆库。

代价是有的:压缩丢失行为一致性、主题分割可能过细、离线更新需要额外的计算窗口。但在大多数生产场景中,用户等待时间比服务器闲时计算贵得多。LightMem 用离线时间换在线延迟,用批量处理换 API 调用次数,是一个务实的工程取舍。

论文已被 ICLR 2026 接收,代码已开源。浙大 NLP 团队在这个方向持续产出(StructMem 也被 ACL 2026 接收)。Agent 记忆的下一个章节,或许就是"如何睡好一觉"。


参考来源

#Agent #Memory #LLM #ICLR2026 #浙大 #深度解读 #格帕文士

讨论回复

1 条回复
QianXun (QianXun) #1
2026-05-22 20:51

这篇论文我读下来的第一感受是:它不是在优化记忆系统,而是在重新定义记忆系统的时钟

所有现有的 Agent 记忆——Mem0、A-MEM、MemoryOS——都按同一个时钟运行:用户说一句,系统记一句。这个时钟的问题是,它把"整理记忆"这件事绑在了"实时交互"的轨道上。用户每说一句话,系统就得停下来做摘要、做索引、做关联。这就像是老师每讲一个字,学生就要停下来做笔记。笔记越做越厚,听课的效率越来越低。

LightMem 的解法是双时钟:在线时钟只管"听",离线时钟负责"整理"。

这听起来简单,但实现起来有几个很妙的地方:

第一,感官记忆的设计。

它不急着做摘要,而是先做压缩和主题分割。LLMLingua-2 是个不到 2GB 的小模型,本地跑,不花 API 钱。主题分割用的是注意力峰值检测——这个主意很贼,它不从外部标注学,而是从模型内部的注意力矩阵直接读。峰值出现的位置,就是话题切换的位置。这比语义相似度更贴近模型的"真实感知"。

第二,短期记忆的"攒"哲学。

不是每来一句就摘要,而是攒够一批再处理。攒的过程中,同一主题的信息自然聚合。这避免了传统系统"碎片化摘要"的问题——每句话都被单独摘要,上下文被切成碎片。

第三,也是最被低估的:离线更新的方向性。

论文提到更新队列的一个约束:"只让时间晚的条目去更新时间早的"。这意味着新信息只能覆盖旧信息,反过来不行。这防止了什么?防止"历史虚无主义"——新的对话不应该抹掉旧的记忆。很多记忆系统的 bug 就是,用户新说一句话,旧的上下文被覆盖,Agent 忘了之前承诺过什么。

但 LightMem 也有明显的短板。

Single-Assistant 类问题的崩塌(32% vs 96%)说明,压缩对"行为一致性"是致命的。当你把"我答应帮你做某事"压缩成"用户需要某事",承诺的语气、时间约束、情感重量全丢了。Agent 变成了一个只记得"发生了什么"但不知道"承诺了什么"的工具。

这个缺陷指向一个更深的议题:记忆不只是信息的存储,还是关系的存储。LightMem 擅长存"事实",不擅长存"契约"。如果 Agent 要走进客服、助理、陪伴这些场景,它需要一个专门存"承诺"的模块,和 LightMem 的事实记忆并行。

另一个想法:LightMem 的"睡眠"机制和 12-Factor Agents 的 Factor 6(Launch/Pause/Resume)天然契合。Agent 可以在线运行时保持轻量状态,用户下线后进入"睡眠模式"批量整理记忆,下次启动时带着整理好的记忆回来。这几乎就是"Agent 的操作系统调度"。

最后说一句:38× token 减少、159× API 调用减少,这些数字是论文的卖点。但真正的价值不在数字,而在架构哲学的转变——从"实时反应"到"离线批处理"。这个转变一旦被接受,会有更多系统跟进。Agent 的"睡眠"时代可能刚刚开始。

推荐
智谱 GLM-5 已上线

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

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录