首页 > 人工智能 > 人工智能 > 用最纯粹的白话,解析 AI Memory
想象一下:每次和朋友聊天,对方都会清空记忆,每段对话都从零开始,没有记忆、没有上下文、没有进展。

而遗憾的是,这正是当下大多数 AI 系统的现状。它们足够聪明,却缺失了关键要素:记忆能力。
当下阶段 AI 应用正在从 Generative AI 向 Agentic AI 阶段迈进,2025 年被视为 Agent 市场元年,Agent 架构相关的技术讨论非常火热,技术演进也非常的快速。从目前的技术发展趋势看,各类开发框架逐渐从底层专注于与 LLM 的集成演进到上层关注于对 Agent 内部各类组件的抽象和集成,也有了像 MCP 和 A2A 这类定义了 Agent 如何调用工具以及如何与其他 Agent 交互的标准协议的建立,Agent 架构的各个部件逐渐被定义清晰并且形成标准。

上图(来自《The Rise and Potential of Large Language Model Based Agents: A Survey》)定义了 Agent 架构,其中包含几个重要部分:
本文要探讨的就是对 Agent 至关重要的记忆能力:
大语言模型本质是对人脑神经网络的模拟,智能体记忆也可以通过模拟人脑记忆来实现更强的性能。
记忆是人类编码、存储和提取信息的过程,使人类能够随着时间的推移保留经验、知识、技能和事实,是成长和有效与世界互动的基础。要弄清楚记忆的结构,需要搞明白记忆如何分类以及提供哪些操作。
记忆有不同维度的分类方法,常见的几个分类方法包括:
人类很早就开始对人脑记忆的研究,按照存储时间的记忆分类法最早是在 1968 年发布的 Atkinson-Shiffrin Memory Model 中提出,将记忆分为感知记忆(Sensory Memory)、短期记忆(Short-term Memory)和长期记忆(Long-term Memory)。感知记忆存储了人脑从环境中捕获的信息,例如声音、视觉等信息,在感知记忆区这类信息只能保留很短的时间。短期记忆存储人脑在思考过程中所需要处理的信息,也被称为工作记忆(在 1974 年 Baddeley & Hitch 模型中提出),通常也只能保留很短的时间。长期记忆用于长期保留人类记忆,如知识与技能。
这几类记忆实际代表着不同的记忆工作区,感知记忆是人脑的信息输入区,短期记忆(或工作记忆区)是人脑工作时的信息暂存区(或信息加工区),而长期记忆就是人脑的长期信息储存区。短期记忆的内容来自感知记忆区的输入以及从长期记忆区的记忆提取,人脑产生的新的信息也会暂存在工作记忆区。人脑对信息的处理通常会贯穿这几个记忆区,信息的输入、加工和变成长期记忆进行储存,这个过程贯穿这几个记忆区。
按照内容性质可以把记忆分为可声明式记忆(Declarative Memory)和不可声明式记忆(Non-Declarative Memory),也有另外一种称法为显式记忆(Explicit Memory)和隐式记忆(Implicit Memory)。
这两类记忆的主要区别在于:
人类可以从记忆中提取不同类型的内容,我们可以回忆过去,这部分内容称为『经历』,也可以通过记忆掌握『知识』,同时也是通过记忆保存『技能』。所以可以抽象地把记忆内容分类为『经历』、『知识』和『技能』,更科学的命名是:
以上是常见的几种记忆分类方法,这几个分类方法并不矛盾,而是代表不同的维度,并且互相有一定的关系。比如通常情境记忆是显式记忆,因为需要主动回忆并且可以用语言来描述。技能通常是隐式记忆,例如骑车这个技能属于肌肉记忆,无需主动回忆也不可被语言描述。
我们可以把这几个维度结合在一起来定义记忆,描述为『存储在哪个记忆区』的『以什么形式存在』的『什么类型的』记忆。例如骑车这个技能就是存储在『长期记忆』区的以『隐式』形式存在的『流程』记忆,再比如在写这篇文章时脑子里的内容就是存储在『短期记忆』区的以『显式』形式存在的『语义』记忆。
记忆就是人脑对信息进行编码、存储和检索的过程,所以核心操作就是:
记忆还包含其他的一些操作:
上面我们提到过,可以把几个维度结合在一起来定义记忆,描述为『存储在哪个记忆区』的『以什么形式存在』的『什么类型的』记忆。智能体记忆可以按照相同的方式对记忆进行分类,但是由于记忆存储区和存储形式的差异,与人脑记忆分类略有差别。
智能体内的记忆存储区主要包括:
与人脑记忆区对比的话,感知记忆和短期记忆对应智能体的上下文,长期记忆对应智能体的 LLM 和外挂记忆存储。
智能体内的记忆主要以两种形式存在,可以简单归类为参数形式(Parametric)和非参数形式(Non-parametric)。在智能体的短期记忆区和长期记忆区都会存在两种不同形式的记忆,比如 KV-Cache 可以认为是短期记忆区参数形式的记忆,LLM 是长期记忆区参数形式的记忆,外挂记忆存储是长期记忆区非参数形式存在的记忆。
通过上面的内容我们了解到智能体的记忆存储区和存储形式与人脑有一定的差别,但是还是可以对应上来,如下图所示。

我们按照相同的维度但是不同的内容对智能体记忆做个分类,然后看下不同的记忆分类下目前有哪些技术实现(这里不通过记忆类型来分类,因为不影响技术实现分类)。
以下是截取自 MemOS 论文中对现有记忆实现的分类:

从上面的分类可以看到,智能体记忆的技术实现还是非常细分、多样的。挑几个我们熟悉的技术来说,提示词工程(Prompt Engineer)属于对短期记忆区的显示记忆的优化,知识库(RAG 技术)属于对长期记忆区的显示记忆的优化,模型微调(Fine-Tunning)属于对长期记忆区的隐式记忆的优化。
智能体提供的记忆操作与人脑记忆是比较类似的,也包括编码、存储和提取。记忆编码包含了对记忆的获取和处理,通过对工作记忆区内容的处理发现新的记忆,编码成可存储的结构。记忆存储为参数或非参数的形式,非参数的形式通常以 Plaintext、Graph 或 Structure-Table 的结构存储。记忆提取通常通过检索来实现,具体技术实现包括全文检索、向量检索、图检索或者是混合检索,具体检索方式取决于存储的内容和结构。
Agent Memory 的技术演进非常快,目前市面上已经有很多开源或商业的 Memory 产品。特别是在 2025 年,以更快的速度涌现出来一批新的产品。最近上海的一家初创公司『记忆张量』更是获得了亿元的天使轮融资,同时也开源了自家的 Memory 产品 MemOS。可见 Agent Memory 市场正在快速发展,商业前景也得到了认可。
接下来会逐个分析下目前的 Memory 产品的实现,主要的信息来自各自分享的论文,论文内容可能已经与最新版本的实现有所差异,感兴趣的可以去追踪最新的开源进展。通过分析,我们希望能总结一些技术演进趋势,了解下在 Memory 场景对底层存储会有怎么样的结构定义和存储的需求。
LETTA 的技术源自 MemGPT 的研究,目前是独立的一个商业化产品。LETTA 提出的方法借鉴了操作系统虚拟内存分页的思想,这种技术最初是为了让应用程序能够处理远超可用内存大小的数据集而开发的,它通过在主内存和磁盘之间进行数据分页来实现这一目标。LETTA 模拟虚拟内存的实现,将 Context 分为 Main Context 和 External Context 两部分,当 Main Context 空间不够的时候可以与 External Context 进行数据交换。
要理解它的原理我们看这个图即可:

整体被分为 Main Context 和 External Context,类似内存和磁盘。Main Context 就是 Prompt Tokens 部分,又被分为三个小部分:
对记忆内容会做如下操作:
ZEP 号称更满足企业内的需求,传统的 RAG 是基于静态的文档数据,ZEP 能够根据对话和 Bussiness Data 来获取更实时的信息。它的主要创新在于记忆的存储结构,底层自研了一个图引擎 Graphiti,能够提供时间感知的知识图谱。由于在它之前也就 MemGPT(上面的 LETTA)表现比较优异,所以论文中主要与其做对比。DMR Benchmark 比 MemGPT 表现更优,94.8% vs 93.4%。同时在 LongMemEval benchmark,这是一个更符合企业用例的测试,包含一些复杂的时间推理任务,通过 ZEP 准确度提升了 18.5%。

上面是官网截取的一个架构图,包含的信息比较少。它的核心部分都在其所构建的知识图谱内,整个知识图谱分三个层次:
论文中解释了它的心理学原理,采用了原始情节数据与衍生的语义实体信息的双重存储方式,反映了心理学中的人类记忆模型。这个模型将记忆区分为情境记忆,即对特定事件的记忆,以及语义记忆,即对概念及其含义之间关联的记忆。这种双重结构使得使用 Zep 的智能体能够构建更加复杂和细致的记忆结构,更贴近对人类记忆系统的模拟。
ZEP 关于记忆的更新和提取的实现还有一些比较有意思的地方:
记忆更新
记忆的提取
抽象来讲通过一个 input string 作为检索条件,返回一个 output string,输出的 string 中包含了格式化后的 nodes 和 edges。详细的检索步骤分为三步:

ZEP 实现了三种搜索功能:语义相似度搜索、BM25 全文搜索和广度优先搜索。这三种搜索方法分别针对不同层面的相似性:全文搜索识别词语层面的相似性,余弦相似性捕捉语义层面的相似性,而广度优先搜索揭示上下文层面的相似性 - 即图中距离较近的节点和边往往出现在更相似的对话上下文中。这种多角度的候选结果识别方法,最大化了发现最优上下文的可能性。
MEM0 是目前开源 Memory 框架中 Star 数最多的,提供了两种实现,一种是没有利用图的 Mem0,另一种是基于 Graph 实现的 Mem0-G。下面分别介绍下两种实现方式:

上图是 Mem0 的实现,几个主要步骤包括:

上图是 Mem0-G 的实现,主要总结下与 Mem0 实现的差异:
来看下 Mem-0 在 LOCOMO 数据集上的表现,相比上面的 Memory 框架综合表现更好,可能这也是为啥 STAR 数最多的原因(这里还有一个有意思的发现,Open Domain 和 Temporal 问题 Graph 的效果会更高,ZEP 这种专门做 Graph 的在 Open Domain 中取得最优的分数,但是在 Temporal 中 Mem0-G 分数更高)。

Memory 正在覆盖越来越多的场景,同时也在覆盖越来越多的记忆类型。早期 Memory 主要聚焦在对话记忆,现在已扩展到任务执行、决策支持、个性化服务等多个场景,覆盖的记忆类型也更加全面。
在技术实现方案上,有一些被验证的手段能够有效提升记忆的性能表现:
以 Mem0、Zep、Letta 代表的 AI 记忆系统在解决 LLM 无状态问题上做出了重要贡献。它们通过向量数据库和知识图谱技术,实现了对话历史的持久化存储和语义检索。
同时,也为 AI 系统未来的发展,指出了一个方向 —— AI 系统应该能够像人类一样随着时间积累知识和经验:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047136/viewspace-3102493/ ,如需转载,请注明出处,否则将追究法律责任。