为什么大多数LLM记忆系统在20轮对话后就崩了?一种时间层级记忆方案

1 阅读3分钟

为什么大多数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)