<!-- title: Agent记不住事？海外三款记忆新货 -->
<!-- domain: new-tools -->

# Agent记不住事？海外三款记忆新货

## 导语

ChatGPT、Claude 都先后内置了记忆功能，但你自建的 Agent 大概率还是“金鱼”——每次对话从零开始，用户说过十遍的偏好，第十一遍还得再说一次。海外社区这两年悄悄长出一个专门的赛道：**Agent Memory Layer（记忆层）**，把“记住用户”这件事从你的业务代码里整个抽出去。本文拆解其中最扎实的三个开源项目：Mem0、Letta、Zep/Graphiti——工具、代码、选型逻辑一次讲透，帮你把这个还很少有中文教程的坑先占上。

## 一、为什么“记忆”是 Agent 的阿喀琉斯之踵

先说一个多数人踩过却没深想的坑：你的 Agent 不是不聪明，是**失忆**。

目前的常见做法无非两种，都有硬伤：

- **全量塞上下文**：把历史对话一股脑放进 prompt。短对话还行，聊到几十轮之后，token 费用直线起飞，而且主流模型的上下文窗口再大也有边界，最重要的是——塞得越多，模型注意力越稀释，回答质量反而下降（海外社区常说的 lost in the middle）。
- **手写摘要**：每次会话结束让模型总结一份存起来。听起来合理，实际是信息持续丢失——摘要套摘要，三轮之后细节全没了，而且“过时的旧信息”和“最新的新信息”经常打架，你没有任何机制去合并它们。

真正的需求是：Agent 要像人一样，**从对话里自动提炼事实、自动更新过时事实、下次见面精准想起**。这个活儿脏、碎、又极其通用，所以海外团队把它做成了独立的一层——这就是记忆层赛道。ChatGPT 的 Memory 你可能用过，但那是封闭产品里的功能；下面这三个是你可以**直接搬进自己项目**的开源货。

## 二、三款工具逐一拆解

### 1. Mem0：轻量好上手的“记忆中间件”

- **官网**：mem0.ai
- **开源仓库**：github.com/mem0ai/mem0
- **一句话定位**：给 AI 应用加记忆的中间层，`pip install` 十分钟跑通。

Mem0 的思路很直接：你把对话喂给它，它用 LLM 自动做三件事——**抽取事实、与已有记忆比对合并、更新或删除过时记忆**。比如用户这周说“我搬到上海了”，它会自己发现和三个月前的“住在北京”冲突，然后做更新而不是堆叠两条矛盾记忆。

核心 API 就两个动作：

```python
pip install mem0ai

from mem0 import Memory

m = Memory()  # 需在环境变量配置 OPENAI_API_KEY 等模型凭证

# 写入：自动抽取并整合记忆
m.add("我对花生过敏，喜欢喝美式", user_id="alice")

# 读取：按语义检索相关记忆
m.search("喝什么咖啡", user_id="alice")
```

它还提供 Graph Memory（把记忆组织成实体关系图，适合“人物—公司—项目”这类关联性强的场景），以及托管版平台。开源版可完全自部署，托管版有免费额度、按量付费（具体价格以官网为准）。据其官方博客的评测口径，Mem0 在长对话记忆基准上对比各家内置记忆方案有速度和准确率优势——这是官方数据，建议自己跑一遍再下结论。

**对比国内**：国内 Agent 平台（Dify、Coze 等）主打的是 RAG 知识库和会话内变量，能“查资料”，但缺少“自动记住用户并随时间演化”这一层。想在中文场景做个性化助手，Mem0 是目前集成成本最低的路子，且模型可换成任意国产模型 API。

**适用人群**：做客服机器人、个人助手、AI 陪伴类产品的应用开发者。

### 2. Letta（前身 MemGPT）：论文出身的“有状态 Agent 操作系统”

- **官网**：letta.com
- **开源仓库**：github.com/letta-ai/letta
- **学术源头**：arxiv.org/abs/2310.08560

Letta 的来头很硬：前身是 UC Berkeley 2023 年 10 月发布的 MemGPT 项目，那篇论文的核心 idea 至今仍是这个赛道的经典——**把 LLM 当作操作系统来管理内存**：模型上下文窗口相当于“内存”，外部存储相当于“磁盘”，由 Agent 自己决定什么留在窗口里、什么换出到磁盘、什么时候换回来，就像操作系统的虚拟内存分页机制。

落到产品上，Letta 最有辨识度的能力是 **self-editing memory（自编辑记忆）**：Agent 拥有自己的记忆区块（比如“用户画像区”"工作偏好区”），并且在对话过程中**自己动手修改这些区块**——不需要你写任何“总结存档”的胶水代码，模型自己判断什么值得记、记在哪里、什么时候改。

另一个关键差异：Letta 把 Agent 做成**持久化的服务**（server 形态部署，通过 REST API 调用），Agent 的记忆和状态跨会话、跨重启长期存在。你可以理解为：Mem0 是“给现有应用挂个记忆插件”，Letta 是“Agent 本身就是个常驻的有状态进程”。官方还提供了可视化开发环境，可以直接在界面里观察 Agent 的记忆是怎么被自己改写的——调试记忆行为时非常好用。

**对比国内**：中文圈讲 Agent 框架基本绕不开 LangChain 系，但“有状态持久 Agent”这个视角的资料极少。如果你要做的是长期运行的服务型 Agent（比如每天跟进项目进度的员工助手），Letta 的架构比“每次请求现拼上下文”优雅得多。

**适用人群**：需要 7×24 常驻、跨周/跨月持续服务的 Agent 场景，以及做 Agent 基础架构的团队。

### 3. Zep / Graphiti：时序知识图谱，专治“事实会变”

- **开源仓库**：github.com/getzep/graphiti
- **文档**：docs.getzep.com

Zep 团队开源的 Graphiti 是三者中最“重”也最独特的：它把记忆建成一张**时序知识图谱（temporal knowledge graph）**。

什么概念？普通 RAG 是“一堆文档切片”，图谱是“实体+关系”，而 Graphiti 在此之上加了**时间维度**，采用双时间轴设计——每个事实既记录“什么时候被说出来的”，也记录“什么时候开始有效、什么时候失效”。比如客户 3 月说“预算 50 万”，6 月改口“砍到 30 万”，系统不会覆盖或混淆，而是明确知道：50 万这个事实在 6 月之前为真，之后作废。

这个能力在三类场景里是刚需：**销售 CRM 跟进**（客户情况持续变化）、**合规审计**（需要还原“当时已知什么”）、**医疗/健康随访**（状态随时间演变）。这些场景里，“知道一条信息是什么时候变的”和“知道信息本身”同等重要，而这恰恰是向量库+摘要方案的天生盲区。

Graphiti 需要 Neo4j 之类的图数据库做存储后端，部署和建模成本是三者里最高的，但换来的是最结构化、最可解释的记忆——记忆不再是一坨模糊的 embedding，而是可以查询、可以追踪变化轨迹的图。

**适用人群**：有明确“事实演化”需求的企业级场景，且团队有图数据库运维能力。

## 三、记忆层在架构里的位置

一句话说清它的工作原理：对话流经记忆层，记忆层负责“抽取—存储—检索”三步，每次请求只把**最相关的少量记忆**拼进 prompt。

```mermaid
flowchart LR
    U[用户] --> A[Agent 应用]
    A --> M[记忆层]
    A --> L[LLM]
    M --> V[向量索引]
    M --> G[事实图谱]
    V --> S[按语义检索相关记忆]
    G --> S
    S --> P[少量记忆拼进 Prompt]
    P --> L
    L --> R[回复用户]
```

三条工具怎么选，看这张决策图：

```mermaid
flowchart TD
    Q[需要跨会话记忆吗] -->|不需要| N[普通 RAG 知识库即可]
    Q -->|需要| Q2[事实会频繁变化吗]
    Q2 -->|会且需追溯变化| Z[Zep Graphiti]
    Q2 -->|不会| Q3[要 Agent 自己管理记忆吗]
    Q3 -->|要且服务常驻| L2[Letta]
    Q3 -->|要轻量快速集成| M2[Mem0]
```

## 四、信息差总结

| 你以为的 | 实际情况 |
|---|---|
| Agent 记忆 = 把历史对话塞进上下文 | token 成本失控+注意力稀释，海外已普遍改为独立记忆层 |
| 记忆要自己写“总结+存库"胶水代码 | Mem0/Letta 自动抽取、自动合并冲突、自动更新过时事实 |
| 记忆就是向量检索 | Graphiti 加了时间轴，能回答“这条事实什么时候失效的" |
| 这类功能只能等大厂平台施舍 | 三个项目全部开源可自部署，模型可换成任意国产模型 |

## 五、行动指南

1. **今晚就能做**：`pip install mem0ai`，配一个模型 API key，跑通上面 8 行 demo，直观感受“自动抽取记忆”和“手动存 dict”的差别。
2. **本周内**：挑一个你已有的客服/助手项目，把“用户偏好”功能接上 Mem0，观察用户留存对话轮次的变化。
3. **选型时**：按第三节决策图走——轻量上 Mem0，常驻服务上 Letta，事实演化场景上 Graphiti，不要一上来就堆最重的方案。
4. **团队层面**：让运维评估向量库/图数据库的自部署成本；三个项目都开源，数据不出内网，这点对国内企业很重要。
5. **注意**：记忆抽取本身要消耗 LLM 调用（这是隐藏成本），上线前先小流量算一笔账；成稿时未能联网复核，价格、版本与最新特性请以三个官网为准。

> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

## 参考来源

1. Mem0 开源仓库：https://github.com/mem0ai/mem0
2. Mem0 官网：https://mem0.ai
3. Letta 开源仓库：https://github.com/letta-ai/letta
4. Graphiti（Zep）开源仓库：https://github.com/getzep/graphiti
5. MemGPT 原始论文（arXiv:2310.08560）：https://arxiv.org/abs/2310.08560

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
