LightMem
ICLR 2026 接收 | 轻量级大模型记忆增强框架,记忆 token 减少 79% 同时保持高精度
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
ICLR 2026 接收 | 轻量级大模型记忆增强框架,记忆 token 减少 79% 同时保持高精度
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你和一位智能助手聊了三天,期间聊到了你最喜欢的电影、你正在做的项目、你家的宠物名字。但当你第四天再打开对话时,它像什么都没发生过一样——这就是当前大模型最尴尬的问题:缺乏长期记忆。
LightMem 就是来解决这个问题的。它是浙江大学 NLP 实验室(zjunlp)开源的一个轻量级记忆增强框架,核心目标是用最小的计算开销,让大模型记住对话中的关键信息,并在需要时精准召回。该项目论文已被 ICLR 2026 接收,同时衍生的 StructMem 子项目也被 ACL 2026 接收,学术认可度极高。

图1:LightMem 项目 Logo
大语言模型(LLM)的上下文窗口是有限的。以 GPT-4o-mini 为例,即使扩展到 128K token,也不可能把用户过去一年的对话全部塞进去。传统方案是"全部扔进去"(FullText),但这意味着每次查询都要传输海量历史记录——在 LoCoMo 基准测试中,FullText 方案每次问答需要传输约 54,884K tokens,计算成本极高。
另一个常见方案是 RAG(检索增强生成),但 NaiveRAG 在 LoCoMo 基准上准确率只有 63.64%,因为它没有理解对话中信息的重要程度差异——用户随口提到的天气和认真讨论的项目需求,在 RAG 眼里没有区别。
LightMem 的核心洞察是:不是所有信息都需要记住,也不是所有记住的信息同等重要。它通过"选择性记忆"机制,只把真正重要的信息存入记忆,再用高效的方式召回。

图2:FluxMem 架构示意图(将记忆建模为异构图)
LightMem 的记忆管理分为三个阶段:压缩 → 分割 → 摘要,每一步都有明确的目的。
第一步:智能压缩(Pre-Compression)
原始对话可能包含大量冗余表达。LightMem 使用 LLMLingua-2 模型对输入消息进行压缩,保留核心语义的同时大幅减少 token 数量。在 LoCoMo 测试中,压缩后的记忆 token 从原始的 ~54K 降至 ~11K,减少了约 80% 的存储开销,同时准确率基本持平(甚至略有提升)。
第二步:主题分割(Topic Segmentation)
长对话往往包含多个不同主题。LightMem 通过 LLM 分析对话结构,将连续的对话流切分为独立的主题片段。每个片段独立存储、独立索引,避免了"A 话题的信息污染 B 话题的检索结果"的问题。
第三步:分层摘要(Hierarchical Summarization)
不是所有对话都需要完整记住。LightMem 对每个记忆片段生成摘要,摘要和原文分别存入不同的向量存储。检索时,系统先在摘要层做粗筛,再在原文层做精排,兼顾效率和精度。

图3:EM²Mem 多模态记忆架构(支持长视频问答)
在 LoCoMo(长对话记忆基准)上,LightMem 的表现非常亮眼:
| 指标 | LightMem | FullText | NaiveRAG | Mem0 |
|---|---|---|---|---|
| 准确率(gpt-4o-mini) | 73.83% | 73.83% | 63.64% | 61.69% |
| 记忆 Token 总量 | 11,494K | 54,884K | 3,870K | 72,517K |
| 运行时长 | 67,084s | 6,971s | 1,884s | 120,175s |
关键发现:在准确率追平 FullText(73.83%)的同时,LightMem 将记忆 token 量减少了 79%,计算效率显著优于 Mem0 等竞品。虽然运行时长比 NaiveRAG 长,但这是因为 LightMem 执行了更复杂的记忆更新操作——本质上是在"提前做好功课",换来的是问答时的高精度。
LightMem 采用工厂模式(Factory Pattern)构建整个系统,核心目录结构如下:
src/lightmem/
├── configs/ # 各种配置类(Pydantic)
├── factory/ # 工厂方法(不同后端的 LLM/Embedding)
├── memory/ # 核心记忆管理(LightMemory 主类)
└── memory_toolkits/ # 评估工具包(支持 Mem0/A-MEM 等基线对比)
每个模块都可以替换具体实现。记忆管理器支持 OpenAI、DeepSeek、Ollama、vLLM 等多种后端;向量检索支持 Qdrant、FAISS、BM25;文本嵌入支持 HuggingFace Transformers。这种设计让 LightMem 可以灵活适配各种部署环境——从云端 API 到本地 GPU 均可运行。
LightMem 的 API 设计非常简洁,核心入口是 LightMemory 类:
from lightmem.memory.lightmem import LightMemory
config_dict = {
'pre_compress': True,
'topic_segment': True,
'memory_manager': {
'model_name': 'openai',
'configs': {'model': 'gpt-4o-mini', 'api_key': 'YOUR_KEY'}
},
'index_strategy': 'embedding',
'retrieve_strategy': 'embedding',
}
lightmem = LightMemory.from_config(config_dict)
lightmem.add_memory(messages=[{'role': 'user', 'content': '我爱 pistachio 冰淇淋'}])
related = lightmem.retrieve('我最喜欢什么口味?', limit=5)
LightMem 还提供了 MCP(Model Context Protocol)Server 支持,通过 fastmcp 启动一个 HTTP 服务,对外暴露记忆的增删改查接口。这意味着任何支持 MCP 协议的 AI Agent(如 Claude Desktop、Cursor 等)都可以直接调用 LightMem 的记忆能力,无需额外集成代码。
pip install 'lightmem[mcp]'
fastmcp run mcp/server.py:mcp --transport http --port 8000
LightMem 并非完美解决方案。首先,它高度依赖外部 LLM API(OpenAI/DeepSeek),本地部署虽然支持 Ollama/vLLM,但性能和效果与云端 API 存在差距。其次,配置复杂度较高——从 LLMLingua 模型到向量存储,每个环节都需要手动配置,对新手不够友好。另外,目前仅支持离线更新(online 更新模式为占位符),实时记忆更新能力还有待完善。
LightMem 的出现代表了一个重要趋势:记忆增强正从概念验证走向工程落地。此前,大多数记忆方案的论文停留在学术评估阶段,缺乏实际可用的代码库。LightMem 不仅提供了完整的代码实现,还配套了 LoCoMo 和 LongMemEval 两个基准测试的复现脚本,以及 Jupyter Notebook 教程,大幅降低了研究者和开发者的使用门槛。
更重要的是,ICLR 2026 + ACL 2026 的双论文接收证明了学术界对其方向的认可。可以预见,记忆增强将成为下一代 AI Agent 的标准组件,而 LightMem 正在定义这个领域的工程标准。
相关资源: