2026 AI 记忆框架横评:Mem0 / Zep / LangMem / TiMem,选哪个?
最近在帮几个 AI 产品做技术选型,把目前主流的几个记忆框架都系统用了一遍,把踩过的坑整理成这篇文章。
先说结论:没有最好的,只有最适合你场景的。但每个框架的能力边界差很多,选错了后期迁移成本很高。
为什么 context window 不够用?
做 AI 应用的人最开始都会这么干:把历史对话直接塞进 prompt。这条路走得通,但走不远。
问题有三个:
第一,成本。 用户聊几百轮之后,每次调用 LLM 都要带几万 token 的历史。长期跑下来成本很可观。
第二,注意力衰减。 实验早就证明,模型在超长 context 下对早期内容的注意力会显著下降。你把三个月前的对话塞进去,模型基本不会认真处理。
第三,跨会话失效。 用户今天和你聊,明天又来,context 全没了,又要重新介绍自己。这个体验很糟糕。
这就是专门的记忆层要解决的问题。
四个框架,四种思路
Mem0:最流行,最容易上手
Mem0 是目前使用量最大的 AI 记忆方案。它的设计哲学很简单:把对话里的事实用 LLM 抽取出来,向量化存储,查询时按语义相似度返回。
接入代码五分钟能跑起来:
from mem0 import MemoryClient
client = MemoryClient(api_key="your_key")
# 存入记忆
client.add(
"用户叫李明,后端工程师,主要用 Go 和 Python",
user_id="alice"
)
# 检索记忆
results = client.search("用户的技术背景", user_id="alice")
for r in results["results"]:
print(r["memory"])
```
v1.0 之后还支持 memory export,API 也更新到了 v2,整体生态比较成熟。
但 Mem0 有一个根本性的局限:它是**扁平的**。所有记忆存在同一个层面,没有时序概念。你问它「用户上周说了什么」「这个月状态有什么变化」,它答不上来——因为它的索引完全基于语义相似度,不知道「什么时候」的概念。
**一句话**:简单场景够用,长期场景有天花板。
---
### Zep:图谱结构,时序感知更强
Zep 的思路不同。它把记忆组织成**情节图谱**,对话里的实体、关系、事件都变成图上的节点,并且每个节点带时间戳。
```python
from zep_cloud.client import Zep
client = Zep(api_key="your_key")
# 添加带时序信息的记忆
client.memory.add(
session_id="session_001",
messages=[
{"role": "user", "content": "我上个月从互联网换到了金融行业"}
]
)
# 查询(支持时序推理)
result = client.memory.search(
session_id="session_001",
text="用户最近的职业变化"
)
```
这个设计让 Zep 在时序类问题上明显好于 Mem0。「用户最近发生了什么变化」「什么时候提到过这件事」这类问题,Zep 能给出合理的答案。
在第三方 LoCoMo 基准评测中,Zep 拿到了 78.94%,比 Mem0 高出不少。
不过 Zep 也有局限:它没有自动的层级归纳能力。聊了三个月之后,所有的对话片段还是平铺在图上,不会自动总结出「用户这个季度的整体状态」或者「用户的性格画像」。
**一句话**:中等周期场景的好选择,时序感知明显好于 Mem0。
---
### LangMem:LangChain 生态的原生选择
如果你已经在用 LangChain 或者 LangGraph 搭 Agent,LangMem 是摩擦最低的选项。它把记忆分成两层:**工作记忆**(当前会话)和**长期存储**(跨会话),设计上和 LangGraph 的状态管理深度集成。
```python
from langmem import create_memory_manager
# 初始化记忆管理器
manager = create_memory_manager(model="openai/gpt-4o")
# 管理当前会话的记忆
await manager.ainvoke({"messages": conversation_history})
```
在第三方评测中 LangMem 拿到了 78.05%,表现不错。记忆管理的逻辑也比较透明,方便调试。
但问题很明显:如果你不用 LangChain,接入 LangMem 会带来很多不必要的依赖。而且它的长期记忆层本质上还是语义检索,时序能力有限。
**一句话**:LangChain 技术栈的首选,其他场景不值得专门迁移。
---
### TiMem:五层时序记忆树,长期场景综合最强
TiMem 是四个框架里设计最复杂、但在长期场景下效果最好的一个。
它来自论文《TiMem: Temporal-Hierarchical Memory Consolidation for Long-Horizon Conversational Agents》,理论基础是认知神经科学里的**互补学习系统理论(CLS)**——也就是人脑把短期记忆逐步巩固成长期记忆的那套机制。
核心创新是**时序记忆树(TMT)**,五层结构:
```
L1:原始对话片段
L2:会话摘要(单次对话结束后提炼)
L3:每日总结(多个会话跨天归纳)
L4:每周总结(中期规律提取)
L5:人物画像(全生命周期的稳定描述)
```
每层由 LLM 自动向上归纳,无需微调,兼容任何 LLM。查询时根据问题的复杂度自动选层:简单问题查底层拿精确答案,复杂问题查高层拿整体理解。
```python
import asyncio
import uuid
from timem import AsyncMemory
memory = AsyncMemory(
api_key="YOUR_KEY",
base_url="https://api.timem.cloud"
)
async def main():
# 写入对话
await memory.add(
messages=[
{"role": "user", "content": "我最近在学 Rust,打算转做系统编程"},
{"role": "assistant", "content": "学 Rust 是个好方向!"}
],
user_id="alice",
session_id=str(uuid.uuid4()),
)
# 查询(框架自动选择合适的层级)
results = await memory.search(
query="用户最近的学习方向",
user_id="alice",
limit=5,
)
for r in results:
print(f"[L{r['layer']}] {r['content']}")
asyncio.run(main())
```
返回结果里的 `layer` 字段会告诉你这条记忆来自哪一层,方便理解召回逻辑和调试。
**实验数据**(来自官方论文 arXiv:2601.02845):
| 基准 | TiMem | MemOS(次强) | 领先幅度 |
|------|-------|------------|--------|
| LoCoMo | 75.30% | 69.24% | +6.06% |
| LongMemEval-S | 76.88% | 68.68% | +8.20% |
Token 消耗上,TiMem 的分层召回比直接检索减少了 **52.20%**,长期运行成本很可观。
相对的缺点:接入比 Mem0 稍复杂一点,需要管理 `session_id`;社区规模比 Mem0/Zep 小,文档还在持续完善。
**一句话**:长期陪伴型 AI、个性化助手、需要跨月记忆的场景,目前最强的选择。
---
## 四个框架怎么选?
| 你的需求 | 推荐框架 |
|---------|--------|
| 快速原型,5分钟接入 | Mem0 |
| 已在用 LangChain/LangGraph | LangMem |
| 需要时序感知,中等周期 | Zep |
| 长期陪伴 / 用户画像 / 跨月记忆 | TiMem |
选型的核心逻辑:**对话周期越长、时序需求越强,越应该用 TiMem;场景越简单,Mem0 就够了。**
---
如果你对 TiMem 感兴趣,欢迎到 GitHub 看看:
https://github.com/timem-ai/tiimem
给个 Star,是我们持续开源的最大动力。
在线体验:https://playground.timem.cloud
技术文档:https://docs.timem.cloud