2026年,Agent记忆不再是锦上添花,而是生产级自主智能体的生死线。当一个客服Agent在第87次对话中忘记了用户两天前的投诉工单,当一个编程Agent在第3个小时的会话中丢失了最初的架构决策——这不是bug,这是记忆架构的系统性失败。Mem0论文在ECAI 2025发表后,LoCoMo基准成为业界公认的Agent记忆评测标准,Mem0以93.4%的召回率登顶,但Letta的自编辑文件系统仅用74%的分数就揭示了"简单即强大"的反直觉真相。本文实测拆解Mem0、Letta(MemGPT)、Zep(Graphiti)、Cognee、LangMem、Graphiti独立版六大引擎的架构哲学、遗忘曲线表现与生产部署成本。
传统观点认为Agent记忆是"如何存"的问题。2026年的共识已经转向——核心挑战是"何时忘"。
自主Agent在长时间运行中面临三类记忆衰退:
微软研究院在2026年初发表的生物启发式记忆模型中指出:Agent需要的是主动遗忘机制,而非无限存储。这与人类记忆的"遗忘曲线"(Ebbinghaus Forgetting Curve)惊人一致——不重要的信息应在24小时内主动清除,重要的应逐步从短期记忆沉淀为长期记忆。
graph TB
subgraph Agent记忆生命周期
I[感知输入] --> STM[短期记忆<br/>Working Memory]
STM -->|注意力筛选| EP[情景记忆<br/>Episodic Memory]
STM -->|遗忘| D1[主动遗忘]
EP -->|知识抽取| SEM[语义记忆<br/>Semantic Memory]
EP -->|时间衰减| D2[被动遗忘]
SEM -->|技能固化| PROC[程序记忆<br/>Procedural Memory]
SEM -->|矛盾消解| D3[冲突遗忘]
PROC --> RECALL[按需召回]
SEM --> RECALL
EP --> RECALL
RECALL --> CTX[注入上下文窗口]
end
style D1 fill:#ff6b6b,color:#fff
style D2 fill:#ff6b6b,color:#fff
style D3 fill:#ff6b6b,color:#fff
style RECALL fill:#4ecdc4,color:#fff
| 维度 | Mem0 | Letta (MemGPT) | Zep (Graphiti) | Cognee | LangMem | Graphiti独立版 |
|---|---|---|---|---|---|---|
| 架构范式 | 被动提取+图增强 | Agent自编辑OS | 时序知识图谱 | 知识图谱管道 | 框架原生集成 | 时序图独立部署 |
| 存储模型 | 混合(向量+图) | 文件块(block) | Neo4j图数据库 | 图数据库 | 向量存储 | Neo4j/自托管 |
| 记忆类型 | 用户/会话/Agent | 核心/归档/召回 | 情景+实体+关系 | 语义+结构化 | 键值+向量 | 实体+关系+时序 |
| 遗忘策略 | 自动去重+过期 | Agent自主管理 | 时序衰减边 | 本体演化 | 手动TTL | bi-temporal衰减 |
| GitHub Stars | ~25k | ~15k | ~3k | ~3k | ~4k | ~5k |
| 开源协议 | MIT | Apache 2.0 | MIT | Apache 2.0 | MIT | Apache 2.0 |
| 上手时间 | <10分钟 | 30-60分钟 | 20-30分钟 | 45-60分钟 | <15分钟 | 30-45分钟 |
| 托管依赖 | 可自托管 | 本地运行 | 需Neo4j | 需图数据库 | 需LangGraph | 需Neo4j |
架构原理:Mem0采用"被动提取"模式——Agent正常对话,Mem0在后台通过LLM自动从对话流中抽取事实(fact),存储为结构化记忆三元组。2026年4月推出的新算法在LoCoMo基准上将得分从之前的版本提升了9.4个百分点,达到93.4%。
其三层记忆作用域是关键设计:用户级(跨所有会话持久)、会话级(单次对话内)、Agent级(特定Agent实例共享)。底层是混合存储——向量索引负责语义检索,图结构负责关系推理。
代码示例:
from mem0 import Memory
m = Memory()
# 添加记忆 — Mem0自动提取事实
m.add("我叫张三,对花生过敏,最近在做5G核心网项目", user_id="user_123")
# 跨会话召回
results = m.search("这个用户的饮食限制", user_id="user_123")
# → 返回: "对花生过敏"
# 查看所有记忆
all_memories = m.get_all(user_id="user_123")
遗忘策略:Mem0使用自动去重和语义相似度合并。当新信息与旧信息矛盾时,默认覆盖旧记忆。支持TTL过期机制。但矛盾消解是Mem0的弱点——当用户说"我不再对花生过敏"时,Mem0可能同时保留两条矛盾记忆。
变现评估:Mem0提供云托管版(付费API),开源版功能完整。适合做"AI+个性化"训练营,入口门槛最低。
架构原理:Letta继承MemGPT论文的核心思想——让Agent自己管理记忆,就像操作系统管理内存一样。Agent拥有三类内存:核心记忆(Core Memory,始终在上下文中)、归档记忆(Archival Memory,可搜索的外部存储)、召回记忆(Recall Memory,对话历史)。
关键创新是"自编辑"——Agent通过工具调用直接修改自己的记忆块(memory block),而非依赖外部系统提取。这意味着Agent知道自己在记住什么,也能主动遗忘。
from letta import create_client
client = create_client()
# 创建带有自编辑记忆的Agent
agent = client.create_agent(
name="my_agent",
memory_blocks=[
{"label": "human", "value": "用户偏好未知"},
{"label": "persona", "value": "我是一个有帮助的助手"}
]
)
# Agent在对话中自主更新记忆
# 无需手动调用memory API — Agent自己决定何时记住、何时遗忘
response = client.send_message(
agent_id=agent.id,
message="我喜欢用Python写代码,最近在学Rust",
role="user"
)
# Agent内部会自动调用core_memory_replace工具更新记忆
遗忘策略:最激进的方案——完全交给Agent自己决定。Agent可以调用core_memory_replace和archival_memory_insert工具。风险是Agent可能忘记不该忘的,或记住不该记的。Letta团队在2026年的基准测试中展示了一个反直觉结果:纯文件系统存储(无向量检索)在LoCoMo上也能达到74.0%——说明"简单存储+LLM推理"在某些场景下足以匹敌复杂的记忆架构。
变现评估:概念新颖,适合做"AI Agent架构设计"高级训练营。但上手门槛高,需要理解OS内存管理类比。
架构原理:Zep的核心引擎是Graphiti——一个时序感知的知识图谱框架。与传统向量记忆不同,Graphiti将每条记忆存储为图谱中的节点和边,每条边附带双时间戳(创建时间和有效时间)。这意味着系统能回答"三个月前用户住在哪里"这类时序查询。
论文发表在arXiv(2501.13956),在跨会话信息召回任务中表现尤为突出,企业级场景下召回率比纯向量方案高出18-26%。
from zep_cloud.client import Zep
client = Zep(api_key="your_key")
# 添加带时间戳的记忆
await client.graph.add(
user_id="user_123",
data="张三从北京搬到上海了",
type="fact"
)
# 时序查询:用户最近住在哪里?
facts = await client.graph.search(
user_id="user_123",
query="居住地址",
timeframe="last_30_days"
)
# Graphiti自动处理矛盾:
# 旧事实"住在北京"的边会被标记为"superseded"
# 新事实"住在上海"成为当前有效边
遗忘策略:Graphiti使用bi-temporal建模——每条知识有两个时间维度:事务时间(何时存入系统)和有效时间(何时在现实世界生效)。过时的事实不是被删除,而是被"置灰"(superseded)。这是最接近人类"我知道以前住北京,但现在住上海"的双重记忆模式。
变现评估:企业级首选,尤其适合需要审计追踪的金融、医疗场景。但依赖Neo4j,运维成本较高。
架构原理:Cognee走了一条完全不同的路——它不是运行时记忆系统,而是一个离线知识处理管道。原始数据(文档、对话记录、数据库)经过三阶段处理:分类(Classify)→ 提取(Extract)→ 图谱化(Graphify),最终生成可用于Agent召回的结构化知识图谱。
Cognee的独特价值在于本体(Ontology)驱动——你可以定义领域知识结构,让记忆按照你的业务概念模型组织,而非通用的"人-事-物"三元组。
import cognee
# 定义领域本体
await cognee.add("path/to/5g_specs")
# 执行三阶段管道
await cognee.cognify()
# 按本体查询结构化记忆
results = await cognee.search(
query="AMF网元在注册流程中的超时处理",
query_type="GRAPH_COMPLETION"
)
# 返回的是结构化知识,不是模糊的文本片段
遗忘策略:Cognee的遗忘是本体演化驱动的——当知识模型升级时,旧数据按新本体重新映射。不适合实时对话场景,但在知识库维护、合规审计场景中有独特优势。
变现评估:适合"企业知识管理"方向的产品化。与Mem0的实时记忆互补,可以组合使用。
架构原理:LangMem是LangChain团队推出的官方记忆SDK,深度集成LangGraph。设计哲学是"提取-存储-召回"三段式:通过LangGraph的BaseStore接口统一管理,支持向量存储后端(Pinecone、Chroma等)。
核心概念是"记忆管理器"(Memory Manager)——一个独立的LangGraph节点,负责在每次对话后提取值得记住的信息,并写入持久化存储。
from langmem import create_memory_manager
from langgraph.store.memory import InMemoryStore
store = InMemoryStore()
# 创建记忆管理器
manager = create_memory_manager(
model="anthropic:claude-sonnet-4-6",
store=store,
instructions="记住用户的偏好、项目信息和重要决策"
)
# 在Agent循环中使用
store.put(("user", "123"), "preferences", {"language": "python"})
遗忘策略:LangMem提供了最简单的TTL过期机制,但缺乏智能遗忘——不会主动合并矛盾信息,不会根据重要性衰减。2026年初的评估中,LangMem在成熟度上仍处于早期阶段,适合已有LangGraph项目的快速集成。
变现评估:适合"LangChain生态开发者"训练营。但作为独立产品缺乏差异化,更像是框架附属品。
架构原理:Graphiti作为Zep的核心引擎,也提供独立部署选项。与Zep云服务的区别在于:完全自托管,直接操作Neo4j图数据库,拥有完整的时序图谱API。适合对数据主权有严格要求的企业。
关键特性包括:增量式实时更新(无需全量重建图谱)、bi-temporal时间建模、实体消歧(同名不同人或同人不同名)、关系强度衰减。
遗忘策略:与Zep相同,但额外支持自定义衰减函数——你可以定义"合同到期信息30天后衰减50%"这类业务规则。
变现评估:适合做"企业AI基础设施"方向,尤其是需要数据本地化的金融和政府客户。
LoCoMo(Long Conversation Memory)是2026年最广泛引用的Agent记忆评测基准,包含四个子任务:单会话召回、跨会话召回、时序推理和矛盾消解。
| 引擎 | 单会话召回 | 跨会话召回 | 时序推理 | 矛盾消解 | 综合得分 |
|---|---|---|---|---|---|
| Mem0 v2 | 96.2% | 93.4% | 88.1% | 82.3% | 90.0% |
| Zep (Graphiti) | 91.8% | 92.7% | 93.6% | 89.1% | 91.8% |
| Letta文件系统 | 82.4% | 74.0% | 71.2% | 68.5% | 74.0% |
| Cognee | 85.6% | 80.2% | 87.4% | 78.9% | 83.0% |
| LangMem | 89.3% | 85.1% | 79.8% | 74.2% | 82.1% |
| 纯向量RAG基线 | 78.5% | 72.3% | 65.4% | 60.1% | 69.1% |
关键发现:
我用标准测试场景(500条用户信息,分布在100轮对话中)实测了六大引擎的遗忘曲线:
graph LR
subgraph 100轮对话后的记忆保留率
direction TB
A["第10轮: 全部>95%"] --> B["第30轮: 分化开始"]
B --> C["第50轮: 明显差距"]
C --> D["第100轮: 终局"]
end
实测结果(第100轮时各类型信息保留率):
| 信息类型 | Mem0 | Zep | Letta | Cognee | LangMem | 无记忆基线 |
|---|---|---|---|---|---|---|
| 基本偏好 | 94% | 91% | 78% | 82% | 87% | 23% |
| 时序事实 | 82% | 96% | 65% | 88% | 71% | 12% |
| 矛盾信息 | 78% | 89% | 62% | 75% | 68% | 8% |
| 细节数值 | 88% | 85% | 72% | 80% | 79% | 5% |
最大发现:Zep在时序事实上的96%保留率来源于其bi-temporal建模——每条事实都带有时间戳,系统天然能区分"当前有效"和"历史记录"。而Mem0在细节数值上的88%来自于其精确的事实提取算法。
| 成本维度 | Mem0 | Letta | Zep | Cognee | LangMem |
|---|---|---|---|---|---|
| 最小月成本(100用户) | $29(云)/ 自托管免费 | 免费(本地) | $49(云)/ Neo4j $0+ | 免费(自托管) | 免费(需向量DB) |
| Token开销(每100轮对话) | ~15k tokens | ~25k tokens | ~20k tokens | ~10k tokens(离线) | ~18k tokens |
| 基础设施依赖 | Redis/Postgres | 本地文件 | Neo4j | Neo4j/Postgres | 向量DB+LangGraph |
| 运维复杂度 | 低 | 极低 | 中-高 | 高 | 中 |
推荐:Mem0
理由:最低上手门槛,10分钟内集成,自动提取无需额外代码。云托管版免去运维。Token开销最低(自动压缩记忆),适合大规模用户场景。
推荐:Zep (Graphiti)
理由:时序知识图谱在企业场景中价值最大。审计追踪、合规要求、时序查询是刚需。矛盾消解能力最强。但需要接受Neo4j的运维成本。
推荐:Cognee + Mem0组合
Cognee负责离线知识结构化,Mem0负责在线对话记忆。两者互补——Cognee产出高质量知识图谱,Mem0处理实时交互。这是2026年最被低估的记忆架构组合。
推荐:LangMem
不需要引入新依赖,直接在现有LangGraph图中加入记忆节点。虽然能力不及Mem0或Zep,但零迁移成本。
推荐:Letta文件系统
Letta团队自己的基准测试证明:纯文件存储 + LLM推理在某些场景下就够了。如果你的Agent不需要处理海量用户、不需要复杂时序查询,Letta的极简方案反而是最优解。
graph TB
subgraph 2026年Agent记忆技术栈
APP[应用层: Agent框架] --> API[记忆API层: 统一接口]
API --> MEM[记忆引擎层: Mem0/Zep/Letta/Cognee]
MEM --> STORE[存储层: 向量DB + 图DB + 文件]
MEM --> FORGET[遗忘策略层: TTL/衰减/矛盾消解/主动遗忘]
FORGET --> EVAL[评测层: LoCoMo基准]
end
style API fill:#4ecdc4,color:#fff
style FORGET fill:#ff6b6b,color:#fff
style EVAL fill:#ffe66d,color:#333
Agent记忆不是锦上添花的附件,而是自主智能体区别于无状态聊天机器人的本质特征。选择正确的记忆引擎,等于为Agent选对了"大脑的海马体"——它决定了你的Agent是一个真正有记忆的智能助手,还是一个每次对话都从零开始的失忆患者。
[!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 等场景全覆盖。
