为什么大多数LLM记忆系统在20轮对话后就崩了?
用过 ChatGPT、Claude 或者任何基于大模型的对话应用,你可能都有过这种体验:前几轮对话 AI 很聪明,但聊到第20轮、第50轮的时候,它开始忘事了。之前说过的偏好、做过的决定,AI 好像完全不记得。
这不是错觉,而是整个行业面临的真实技术瓶颈。
一、AI 为什么会「失忆」?
大模型有「上下文窗口」限制,能同时处理的信息量有上限。对话超出窗口后,早期信息被截断或丢失。
目前主流方案是「记忆检索」——把历史对话存起来,需要时用向量搜索找回来塞进上下文。
但实际有三个致命问题:
1. 没有时间概念
三个月前用户说「我最近在学Python」和昨天说的,权重一样。但实际重要性完全不同。
2. 所有记忆都是「平的」
随口一句话和长期行为习惯被同等对待,分不清该记住什么、该遗忘什么。
3. 记忆越多,上下文越乱
存储的记忆条目增加后,检索回来的内容越来越杂,反而影响回答质量。
二、时间层级记忆:TiMEM 的思路
我们做了一个开源项目 TiMEM,核心思路是把记忆按时间维度分成5层,像人脑一样逐层抽象和压缩:
| 层级 | 名称 | 示例 |
|---|---|---|
| L1 | 碎片记忆 | 「用户问了 Python 装饰器的用法」 |
| L2 | 会话摘要 | 「用户在学习 Python 高级特性」 |
| L3 | 日模式 | 「用户这周每天都在学 Python」 |
| L4 | 周趋势 | 「用户习惯工作日晚上学习,重心从基础转向 Web 框架」 |
| L5 | 稳定画像 | 「中级 Python 开发者,偏好实战案例」 |
关键思想:不是所有记忆都值得保留同样的细节。随口提一句的信息停留在 L1 然后自然衰减,反复出现的行为提升到 L3/L4,稳定特征到达 L5 长期保存。
三、Benchmark 结果
在两个学术界认可的评测集上:
- LoCoMo(长对话记忆):75.30%,测试时最高分
-
- LongMemEval-S(单会话长记忆):76.88%,测试时最高分
-
- 记忆 token 消耗减少 52.2%——检索压缩后的周趋势摘要比检索50条原始片段高效得多
四、快速上手
pip install timem-ai
from timem import TiMEM
memory = TiMEM(api_key="your-key")
# 存储对话
memory.add(
user_id="user_123",
content="我最近在学 Rust,之前一直写 Python"
)
# 检索记忆
results = memory.search(
user_id="user_123",
query="这个用户会什么编程语言?"
)
```
支持 OpenAI、Claude、智谱、Qwen 以及本地模型。
## 五、还没解决的问题
跨会话一致性我们还在迭代——同一用户在不同应用里产生的记忆如何合并,目前没有特别优雅的方案。欢迎交流。
## 相关链接
- GitHub:[github.com/TiMEM-AI/timem](https://github.com/TiMEM-AI/timem)
- 论文:[arXiv 2601.02845](https://arxiv.org/abs/2601.02845)
- 官网:[timem.ai](https://timem.ai)