ARTICLE / ai

Agent 记忆架构 2026:从认知科学到生产级实现的技术全景

2024 年,“AI Agent 记忆"意味着把对话历史塞进 context window,然后祈祷模型能记住关键信息。无状态 Agent、重复指令、跨会话零个性化——这些被认为是使用 LLM 的固有代价。这个认知框架已经过时了。

2026 年,记忆已成为 Agent 架构中的一等公民:它拥有独立的评测基准套件、独立的研究文献、可量化的性能差异,以及专门为它构建的工具生态。Mem0 在 2025 年 ECAI 会议上发表了首个大规模记忆系统对比论文,Zep 的 Graphiti 引擎在时序推理基准上领先 15 个百分点,Letta(前 MemGPT)让 Agent 像操作系统一样自主管理内存分配。这些不是概念验证——它们是已经在生产环境运行的系统。

本文不重复"短期/长期/工作记忆"的基础分类(参见 Agent 记忆系统:短期/长期/工作记忆的技术方案对比),而是聚焦于 2025-2026 年间 Agent 记忆领域发生的范式性变化:从认知科学的三层记忆模型到混合存储架构的工程实现,从标准化评测基准到生产环境中的安全与隐私挑战。


1. 认知科学的三层记忆模型:从理论到 AI Agent 的映射

1.1 三层记忆分类体系

认知科学文献将记忆按存储介质和检索模式分为不同类型。2025-2026 年,AI Agent 框架领域收敛到一个惊人一致的三层分类体系:

记忆类型认知科学定义Agent 系统映射核心特征
Episodic Memory(情景记忆)记录特定事件:发生了什么、何时发生、在什么上下文中对话日志、工具调用轨迹、交互序列时序锚定——事实与时间点绑定
Semantic Memory(语义记忆)存储声明性事实和关系:用户偏好、实体属性、领域知识用户画像、领域规则、实体关系图无时间性——表示当前认为"为真"的事实
Procedural Memory(程序记忆)存储"如何做"的技能和流程学到的工作流、编码模式、工具使用习惯行为指导——指导 Agent 如何执行任务

这个分类体系直接借鉴了认知科学中 Tulving 的记忆分类理论,但在 Agent 系统中获得了更精确的工程含义。

1.2 情景记忆:时序锚定的事实记录

情景记忆记录特定的过去事件。在 Agent 系统中,这对应对话日志、工具调用轨迹和交互序列。关键属性是时序排序——情景记忆不仅仅是事实,而是锚定在特定时间点的事实。

不同框架的实现差异很大:

  • Letta 的 recall memory 是可搜索的 SQLite/PostgreSQL 消息日志,按需分页加载到 context window 中
  • Zep/Graphiti 在事件子图上存储显式的双时序标注:事件时间(事实何时为真)和摄入时间(Agent 首次观察到事实)
  • Mem0 将对话历史作为提取语义记忆的源数据,而非直接作为情景记忆存储

Graphiti 的双时序设计(bitemporal design)尤其值得注意——它能够精确推理"追溯性修正”:当用户更新地址时,系统可以区分新事实和旧事实,而不丢失任何一个。

1.3 语义记忆:Agent 积累的结构化知识

语义记忆存储声明性事实和关系。与情景记忆不同,语义记忆在很大程度上是无时间性的——它表示 Agent 当前认为"为真"的内容。

这是大多数 Agent 记忆系统的核心关注点。Mem0 是目前部署最广泛的语义记忆层,拥有约 48,000 GitHub Stars 和 2025 年 10 月完成的 $24M Series A 融资。其语义层通过 LLM 管道从对话中提取命名实体和关系,存储为图数据库中的节点和边,并与向量嵌入交叉链接以支持模糊搜索。

语义记忆面临的核心挑战是事实冲突检测——当新事实与已有图谱条目矛盾时,系统需要决定更新、合并还是保留两者。这是纯向量存储无法优雅处理的问题。

1.4 程序记忆:被忽视的第三种记忆

大多数 AI 记忆系统关注前两种类型。但生产级 Agent 还需要第三种:程序记忆

程序记忆存储"事情应该怎么做"。对于 Agent,这意味着学到的工作流、编码模式、工具使用习惯、审查规范和部署步骤。一个编码助手可能学会团队如何组织 Pull Request、合并前运行哪些测试命令、以及如何处理 Release Notes。

这是目前工具化程度最低的记忆类型。Mem0 的架构在概念上支持程序记忆,但专门管理程序记忆的工具仍然处于早期阶段。Letta 的 sleeptime agent 机制(后台循环在对话间隙重写和整合记忆块)是目前最接近实用化程序记忆管理的实现。


2. 混合存储架构:向量数据库不再独挑大梁

2.1 纯向量存储的根本局限

2024 年之前,Agent 记忆的默认实现是"向量数据库 + 相似度检索"。这种方案在简单场景中工作良好,但存在三个结构性缺陷:

缺陷表现根因
关系盲区无法回答"Alice 和 Bob 的关系是什么"这类结构化查询向量嵌入不编码实体间的关系
时序失忆检索到的最相似嵌入可能是过时的事实相似度无法区分新旧事实
冲突无感新旧矛盾事实共存,检索结果互相矛盾没有事实一致性检查机制

2.2 混合向量-图存储:2026 年的事实标准

生产级 Agent 越来越多地依赖混合架构——同时使用向量数据库和知识图谱,由 LLM 管理的接口决定存储什么、何时检索、何时遗忘。

┌──────────────────────────────────────────────────────────┐
│              混合记忆存储架构(2026 标准模式)               │
│                                                          │
│  ┌──────────────────┐        ┌──────────────────┐        │
│  │   向量数据库      │        │   知识图谱        │        │
│  │  Vector Store    │        │  Knowledge Graph  │        │
│  │                  │        │                  │        │
│  │  · 语义相似度     │◄──融合──►│  · 实体关系       │        │
│  │  · BM25 关键词   │        │  · 时序标注       │        │
│  │  · 模糊匹配      │        │  · 冲突检测       │        │
│  └────────┬─────────┘        └────────┬─────────┘        │
│           │                           │                  │
│           └──────────┬────────────────┘                  │
│                      ▼                                   │
│            ┌─────────────────┐                           │
│            │  多信号检索融合   │                           │
│            │ Multi-Signal    │                           │
│            │ Retrieval       │                           │
│            └─────────────────┘                           │
└──────────────────────────────────────────────────────────┘

多信号检索是关键技术突破。以 Mem0 的 v3 算法为例,检索栈并行运行三个评分通道:

  1. 语义相似度(Vector Similarity)——捕获概念层面的相关性
  2. 关键词匹配(BM25)——捕获精确术语匹配
  3. 实体匹配(Entity Matching)——捕获命名实体级别的关联

三个通道的分数经过归一化后融合为统一的结果得分。实验证明,融合后的得分优于任何单一信号。Mem0 在 LoCoMo 基准上的时间推理提升了 +29.6 分,多跳推理提升了 +23.1 分——这两个维度正是多信号融合贡献最大的领域。

2.3 图记忆:从实验到生产的路径

2024 年,图记忆在 Agent 系统中基本是实验性的。到 2026 年,生产模式已经发生了根本转变。

关键洞察:重要的转变不是"每个 Agent 都需要图数据库",而是记忆系统正在超越纯向量相似度。

Zep 的 Graphiti 引擎是目前最具代表性的生产级时序知识图谱实现。它在 LongMemEval 基准上取得了 63.8% 的得分(使用 GPT-4o),而 Mem0 的得分为 49.0%——在时序检索任务上存在 15 个百分点的差距。这个差距恰好出现在生产级 Agent 最需要的能力上:记住随时间变化的事实。

Graphiti 使用 Neo4j 作为底层存储,实现了双时序标注(事件时间 + 摄入时间),使得系统能够精确处理"追溯性修正"——当用户更新信息时,系统知道哪个版本是当前的,同时保留历史版本。

Mem0 在 v3 版本中做了一个大胆的架构决策:移除外部图存储支持,改为内置实体链接(Entity Linking)。在 add() 时,Mem0 从每条记忆中提取实体并存储在并行的实体集合中。检索时,查询中的实体与该集合匹配,匹配结果用于提升相关记忆的排名。权衡:这不再是一个可遍历的图接口,relations 字段被移除,实体关系现在只影响检索排名,不能被直接遍历。


3. 生产级框架深度对比

3.1 四大框架概览

2026 年,四个开源候选框架在 Agent 记忆领域形成了差异化竞争:

框架GitHub Stars架构范式核心差异化适用场景
Mem0~48K向量 + 实体链接自动提取、零配置集成、21 个框架适配个性化 Agent、快速落地
Zep/Graphiti~24K时序知识图谱双时序标注、时序推理领先 15 分需要时序推理的生产系统
Letta~21KOS 风格运行时Agent 自管理内存、分级存储长时间运行的有状态 Agent
Cognee~12KECL 管道 + 类型化图谱结构化知识提取管道知识密集型 Agent

3.2 Mem0:最广泛部署的记忆层

Mem0 的核心设计理念是零配置、自动提取。开发者调用 add()search() 即可获得跨会话记忆,无需手动设计提取逻辑。

架构演进

Mem0 经历了从 v2 到 v3 的重大架构变更。v2 版本支持可选的图存储层,v3 版本移除了外部图存储支持,改为内置实体链接。这个决策背后的考量是:图存储的部署和维护成本(Neo4j 实例)对于大多数团队来说过高,而内置实体链接可以提供大部分图记忆的收益,同时保持向量存储的简洁性。

四层作用域模型

Mem0 的 API 设计采用了四层作用域(scope),这是该领域中最清晰的设计之一:

作用域标识符含义生命周期
Useruser_id属于特定用户,跨所有会话持久化永久
Agentagent_id属于特定 Agent 实例跟随 Agent
Sessionrun_id绑定到单次对话或工作流会话级
Organizationapp_id共享的组织上下文组织级

作用域可以组合——查询可以限定到特定用户在特定会话中的记忆,也可以检索用户跨所有会话的全部记忆。检索管道自动处理合并,用户记忆的排名高于会话上下文,会话上下文高于原始历史。

代码示例

from mem0 import MemoryClient

client = MemoryClient(api_key="your-key")

# 添加记忆(自动提取实体和事实)
client.add(
    "用户偏好 Python 而非 JavaScript 用于后端脚本",
    user_id="developer-alice",
    metadata={"context": "coding-preferences"}
)

# 检索相关记忆
results = client.search(
    "编程语言偏好",
    user_id="developer-alice",
    limit=5
)

# 结果自动融合语义匹配和实体匹配
for memory in results:
    print(f"[{memory['score']:.2f}] {memory['text']}")

3.3 Zep/Graphiti:时序推理的领先者

Zep 的差异化在于它将整个记忆架构围绕时序知识图谱构建。Graphiti 是其核心引擎,每个事实都带有明确的时间有效性窗口。

双时序模型

┌───────────────────────────────────────────────┐
│            Graphiti 双时序模型                  │
│                                               │
│  事实:"Alice 住在 Boston"                      │
│                                               │
│  Event Time:    2024-01-01 ~ 2025-06-15       │
│  Ingestion:     2024-01-02                    │
│                                               │
│  事实:"Alice 住在 San Francisco"               │
│                                               │
│  Event Time:    2025-06-15 ~ present           │
│  Ingestion:     2025-06-16                    │
│                                               │
│  → 系统知道两个事实都存在,但当前有效的是后者     │
└───────────────────────────────────────────────┘

检索机制

Graphiti 在检索时不调用 LLM——这与很多其他方案不同。它的检索栈由 BM25 + 向量嵌入 + 图遍历 组成,全部是确定性算法。这带来了两个重要优势:

  1. 低延迟:没有 LLM 调用的额外延迟
  2. 可预测性:检索结果不随 LLM 版本变化而波动

在 LongMemEval 基准上,Graphiti 的 63.8% 得分(GPT-4o)显著领先于 Mem0 的 49.0%。这个 15 分的差距集中在时序检索知识更新两个维度——这恰恰是生产级 Agent 最常失败的场景。

什么时候选择 Zep 而不是 Mem0:如果你的 Agent 需要处理"事实随时间变化"的场景(例如,用户的地址从 A 变到 B,职位从 X 变到 Y),Zep 的时序图谱提供了更可靠的解决方案。如果主要是个性化偏好(用户的语言偏好、交互风格),Mem0 的自动提取和零配置体验更优。

3.4 Letta:Agent 自管理内存的 OS 风格运行时

Letta(前身是 MemGPT)代表了一种根本不同的设计哲学:让 Agent 自己管理记忆,就像操作系统管理虚拟内存一样。

分级存储模型

层级类比实现特征
Core MemoryRAM永驻 context window 的文本块Agent 每轮读取和编辑
Archival Memory硬盘向量数据库存储的长期知识Agent 按需检索
Recall Memory系统日志SQLite/PostgreSQL 消息历史可搜索的对话记录
Filesystem文件系统上传的文档和文件支持 grep 和 open 操作

Agent 通过工具调用管理自己的记忆——core_memory_replace 替换核心记忆块中的文本,archival_memory_search 检索长期记忆,memory_insert 插入新记忆。核心设计决策:记忆的提取、更新和遗忘都由 LLM 自主决定,而非由外部管道自动处理。

Letta 在 2025 年 8 月发布的一篇博文"Is a Filesystem All You Need?“中展示了一个有趣的发现:将 LoCoMo 基准的对话记录转储为文件,附加到一个普通 Agent 上,得分达到 74.0%——超过了 Mem0 图变体的 68.5%。Letta 的论点是:Agent 在训练中已经学会了高效的文件搜索,专门的记忆系统可能增加了不必要的复杂性。

Letta 的 sleeptime agent 机制值得特别关注:它在对话间隙运行后台循环,主动重写和整合记忆块。这使得记忆更新可以发生在实时交互之外,避免了对话延迟。这是目前最接近实用化程序记忆管理的实现。

3.5 框架选型决策矩阵

维度Mem0Zep/GraphitiLettaCognee
记忆提取自动(LLM 管道)自动(图谱管道)Agent 自管理自动(ECL 管道)
时序推理中等领先中等中等
部署复杂度低(云/自托管)中(需 Neo4j)中(需 PostgreSQL)
框架耦合无(21 个集成)独立运行时
合规就绪SOC 2SOC 2基础
多 Agent 支持Actor 感知图谱级别内置基础
LoCoMo 得分92.5(v3 算法)68.5(图变体)74.0(文件系统)~60
长时运行 Agent一般一般最佳一般

4. 评测基准:从各自为战到标准化对比

4.1 三大基准定义评测格局

Agent 记忆研究最重要的进展是标准化评测基准的出现。三个基准现在定义了整个领域的测量标准:

基准规模测试维度核心价值
LoCoMo1,540 个问题,4 类单跳、多跳、时序、开放域多会话对话记忆的黄金标准
LongMemEval500 个问题,6 类用户/助手/偏好回忆、知识更新、时序推理、多会话时序推理的终极压力测试
BEAM1M/10M token 规模10 类(偏好、指令、提取、更新等)生产规模部署的相关性最高

LoCoMo(Snap Research)是目前最广泛使用的基准。每次对话最多跨越 35 个会话、300 轮交互、9,000 个 token,问题按难度分为单跳、多跳、时序和开放域四类。

BEAM 基准尤其值得关注——它在 1M 和 10M token 规模上测试记忆系统。关键发现:仅靠扩展 context window 无法解决 BEAM 中的挑战,这使得它与生产规模部署最相关。

4.2 统一评测框架

三个基准共享一个五维评测框架:

指标衡量内容为什么重要
BLEU Score生成内容与标准答案的 token 级相似度衡量生成质量
F1 Score回答 token 的精确率和召回率衡量信息完整性
LLM ScoreLLM 裁判的二元正确性判断衡量语义正确性
Token 消耗每次查询的总 token 数衡量成本效率
延迟检索和响应生成的时钟时间衡量用户体验

关键洞察:这种组合防止了在单一维度上过度优化。一个在准确率上表现优秀但每次查询需要 26,000 token 的系统在生产中不可行。一个延迟低但召回率差的系统没有用处。

4.3 当前最佳成绩

框架/算法LoCoMoLongMemEval平均 Token/查询
Mem0 v392.594.4~6,900
MAGMA70.0(Judge)--
Letta(文件系统)74.0--
Mem0 图变体(v2)68.5-~26,000

Mem0 的 v3 算法在 token 效率上取得了显著进步——从 v2 的约 26,000 token/对话降低到约 6,900 token/查询,同时在时间推理上提升了 +29.6 分。


5. 声明式记忆注入:编码 Agent 的新范式

5.1 CLAUDE.md / AGENTS.md 模式

2025-2026 年,一种出人意料的记忆模式在编码 Agent 中获得了广泛采用:声明式记忆文件

  • Claude Code 读取 CLAUDE.md
  • OpenAI Codex 读取 AGENTS.md
  • Cursor 读取 .cursorrules

这些文件在每次会话开始时注入到 LLM 的 context 中,本质上是最简单的记忆系统——人工维护的、声明式的、永不衰减的记忆。

5.2 为什么这种"笨办法"有效

声明式记忆之所以在编码场景中表现优异,有三个原因:

  1. Agent 擅长文件搜索:Letta 的实验表明,Agent 在训练中已经学会了高效的文件搜索,简单的文件系统加上 Agent 的搜索能力就足以匹敌专门的记忆系统
  2. 零提取开销:不需要 LLM 管道来提取和存储记忆,所有记忆都是人工策展的
  3. 可审计性:人类可以直接阅读和审查 Agent 的"记忆”,这在安全敏感场景中至关重要

声明式记忆的局限在于可扩展性——它要求人工维护,无法从交互中自动学习。但对于编码 Agent 这种"团队规范固定、知识边界清晰"的场景,它的简洁性恰恰是优势。


6. 多 Agent 系统中的记忆挑战

6.1 记忆归属问题

在多 Agent 对话中,一条记忆如"用户需要帮助部署"是模糊的——是用户直接说的,还是监控 Agent 推断的?还是规划 Agent 创建的中间步骤?

Actor 感知记忆(Actor-Aware Memory)是解决这个问题的关键模式。Mem0 的 Group Chat 实现使用消息的 name 字段进行归因:用户消息存储在 user_id 下,助手或 Agent 消息存储在 agent_id 下。检索时,Agent 可以按参与者和会话过滤,帮助区分用户陈述的事实和 Agent 生成的推断。

6.2 记忆的来源追踪

随着多 Agent 系统日益复杂,记忆层中的来源追踪(provenance)成为可靠性的组成部分,而不仅仅是调试工具。每条记忆需要记录:

  • 谁创建了它(用户、Agent A、Agent B)
  • 何时创建的(创建时间和最后验证时间)
  • 它的置信度(直接陈述 vs. 推断 vs. 不确定)
  • 它影响了哪些决策(下游依赖追踪)

7. 安全与隐私:记忆系统的暗面

7.1 记忆投毒攻击

记忆系统引入了一个全新的攻击面:记忆投毒(Memory Poisoning)。攻击者可以通过精心构造的交互,让 Agent 记住恶意信息,这些信息会在后续会话中被检索并影响 Agent 的行为。

防御策略包括:

  • 输入验证:对写入记忆的内容进行异常检测
  • 来源分级:用户陈述的事实 vs. Agent 推断的事实,赋予不同的信任等级
  • 记忆审计:定期审查存储的记忆,检测异常模式
  • 沙箱隔离:敏感操作的记忆与普通记忆分离存储

7.2 GDPR 合规挑战

记忆系统存储的用户数据可能受到 GDPR 的"被遗忘权"约束。当用户要求删除其数据时,Agent 需要能从所有记忆存储中彻底清除相关信息——包括向量数据库中的嵌入、知识图谱中的节点和边、以及可能的缓存和备份。

当前状态:Mem0 和 Zep 都声称支持 GDPR 合规,但完全的"被遗忘权"实现仍然需要工程上的额外工作,特别是在涉及图记忆和缓存层时。

7.3 记忆过时与知识衰减

记忆系统面临的另一个安全和质量挑战是记忆过时(Memory Staleness)。存储的事实可能随时间变得不准确,但如果系统没有机制来检测和更新过时记忆,Agent 可能会基于陈旧信息做出错误决策。

目前的解决方案包括:

  • 时间衰减:记忆的检索权重随时间自然衰减
  • 显式过期:为每条记忆设置过期时间
  • 主动验证:定期使用 LLM 检查记忆的一致性
  • 用户反馈驱动:当用户纠正 Agent 时,自动更新相关记忆

8. 开放问题与未来方向

8.1 尚未解决的核心问题

问题现状影响
跨会话身份一致性Agent 难以在不同会话中识别"同一个用户"跨会话个性化失败
大规模时序抽象在百万级记忆上高效推理时间关系长期运行 Agent 的知识管理瓶颈
记忆过时自动检测缺乏通用的过时检测机制Agent 基于错误信息决策
程序记忆管理工具化程度最低的记忆类型Agent 无法从经验中学习"怎么做"
评测覆盖不足LoCoMo/LongMemEval 不覆盖程序记忆和抗投毒能力无法全面评估记忆系统质量

8.2 2026 年的关键趋势

  1. 混合存储成为默认:纯向量存储正在被混合向量-图谱架构取代
  2. 评测标准化:LoCoMo、LongMemEval、BEAM 正在成为行业标准
  3. 记忆即上下文工程:Anthropic 的 Context Engineering 工作将记忆从"存储层"重新定位为"上下文组装层"
  4. 声明式与自动提取融合:编码 Agent 的 CLAUDE.md 模式与自动提取管道正在融合
  5. 隐私优先设计:OpenMemory MCP 代表了本地优先、用户控制的记忆架构方向

总结与展望

  • 三层认知模型已成为行业共识:情景记忆、语义记忆、程序记忆的分类体系从认知科学迁移到了 Agent 架构中,Mem0、Zep、Letta 等框架都在这个框架下实现各自的差异化

  • 混合向量-图谱存储是 2026 年的事实标准:纯向量存储在关系推理和时序推理上的结构性缺陷已被充分证明,多信号检索融合(语义 + 关键词 + 实体)带来了显著的性能提升

  • Mem0 在规模和易用性上领先,Zep 在时序推理上领先,Letta 在长时间运行 Agent 上领先:没有单一框架在所有维度上最优,选型需要根据具体场景的需求优先级决策

  • 标准化评测基准的出现标志着领域成熟:LoCoMo、LongMemEval、BEAM 使不同记忆架构的对比第一次变得可量化、可复现

  • 记忆安全和隐私仍是未充分解决的挑战:记忆投毒、GDPR 合规、记忆过时检测等问题需要更多工程实践和标准制定

未来 18 个月,Agent 记忆领域最值得关注的进展方向是程序记忆的工具化(Agent 如何从经验中学习"怎么做"而不仅仅是"知道什么")和跨 Agent 记忆共享(多个 Agent 如何安全地共享和协调它们的知识)。这两个方向的突破将决定 Agent 能否从"有用的工具"进化为"真正的团队成员"。

参考资源