实测33个AI记忆引擎后,我总结出Agent记忆的黄金三层架构

半年前,我问我的AI助手“上周我们在忙什么”,它完全没印象。不是因为它记不住——ChatGPT有记忆,Claude也有记忆——而是我看不到它存了什么,没法查,也没法告诉它该忘什么。就像一个写着“记忆:开”的黑箱子。

于是我把自己能找到的所有记忆框架都试了一遍——一共33个引擎,跑在 OpenClaw 上(GitHub 365K+星)。大多数引擎只解决一个问题,其他方面一塌糊涂。

折腾了6个月后,我终于发现一套真正管用的架构。关键不是找一个神奇的引擎,而是分层。

你的AI助手真正需要的记忆堆栈

先总结我的核心发现:Agent的记忆不是单一的,而是一个堆栈,就像人的大脑有短期记忆、长期记忆和查找能力。

一个能用的Agent记忆堆栈包含三层:

第一层:对话压缩——记住刚才说了什么

每个对话迟早会撑爆上下文窗口。没有这一层,你的助手会忘记当前对话的开头。对话压缩器(比如 Lossless-Claw)会用一种DAG(有向无环图)来存摘要——把较早的对话压缩成紧凑的摘要,同时保留最近的对话原文。这样你的助手永远不会丢失同一对话中的上下文。

第二层:原生文件 + 语义搜索——持久化记录

纯Markdown文件,你的助手读也写:每日日志(2026-05-28.md)、一个精心维护的 MEMORY.md、偏好文件、项目笔记。文件格式简单、支持版本控制、人类可读。不需要数据库,不需要API,不需要额外依赖——这一层记忆永远不会丢失。

再跑一个本地嵌入模型,给这些文件建立索引,让助手能通过语义来搜索,而不只是关键词。“上次认证迁移是怎么处理的?” 就算原文里没出现“认证”这个词,也能找到对应记录。QMD 本地跑一个333MB的GGUF模型——搜索不到一秒,没有API费用,数据不离开你的电脑。文件是真相来源,嵌入向量让它们瞬间可搜。

第三层:长期智能引擎——这里才是你的选择

前两层是基本功,每个认真做的Agent都需要它们。第三层就是我测试那33个引擎的地方——真正的差异也在这里。

我测试的33个引擎

以下是我在实际日常工作中测试过的所有记忆框架——不是跑分,不是演示,是真的让AI助手干活。它们自然分成6类,每类解决一种不同的“记住”需求。

向量相似度——基础层

这些引擎存储嵌入向量,通过语义相似度来检索。大多数其他记忆系统都建在它们之上。

  • ChromaDB:基于嵌入的语义搜索,轻量、对开发者友好。
  • Qdrant:高性能向量相似度搜索,支持过滤。
  • Weaviate:混合向量+关键词搜索,带可插拔模块。
  • Milvus:分布式向量数据库,为扩展而生。
  • Pinecone:无服务器托管的向量搜索。
  • pgvector:作为PostgreSQL扩展的向量相似度搜索。
  • FAISS:Meta的相似度搜索库——原始速度,无多余功能。
  • Redis Vector:Redis Stack上的向量相似度。
  • Supabase Vector:基于pgvector的托管Postgres,带认证和API。
  • Marqo:端到端张量搜索引擎。
  • Deep Lake:针对AI数据集版本优化的向量存储。
  • Vespa:混合搜索+机器学习服务,可扩展。

这些引擎非常擅长“找到和X相似的东西”,但它们不理解自己存的是什么。向量存储把你的偏好、项目架构和上周二的站会笔记都当成浮点数数组来对待。对于RAG和文档检索,它们是必不可少的;但对于Agent记忆,它们只是必要的一层,还不够。

会话与对话记忆——记住当前线程

这些引擎跟踪同一对话内和跨对话的内容。

  • Zep:长期对话记忆,能自动提取事实。
  • Motorhead:基于Redis的对话记忆服务器。
  • OpenAI Memory:ChatGPT的原生对话记忆。
  • Claude Memory:Anthropic的原生对话记忆。

它们解决了“这个我刚刚才告诉过你”的问题。Zep在这里很突出——它不只是简单的缓冲区存储,还能从对话中提取结构化事实。但会话记忆本身不能让你的助手对你的世界有持久理解。

框架内记忆模块——记忆作为一项功能

这些是嵌入在更大Agent/RAG框架中的记忆组件。

  • LlamaIndex Memory:聊天记忆+知识索引集成。
  • LangChain Memory:缓冲区、摘要和实体记忆模块。
  • LangMem:为LangChain/LangGraph提供的记忆管理原语。
  • Haystack Memory:RAG流水线中的文档存储记忆。
  • txtai:全能嵌入数据库,带工作流。
  • CrewAI Memory:为多Agent团队提供的短/长/实体记忆。

如果你已经在用这些框架,那它们很好用。它们提供记忆抽象(缓冲区、摘要、实体跟踪),但与框架紧密耦合。记忆只是这些工具的一个功能,不是它们的核心使命。

自主式记忆——让Agent自己管记忆

这些引擎让Agent自己决定记住什么、忘掉什么。

  • Letta (MemGPT):自我编辑的记忆,带内/外独白。
  • AutoGPT Memory:为自主Agent提供的文件+向量记忆。
  • Memary:为自主Agent提供的知识图谱记忆。
  • AGiXT:自适应记忆,带链式Agent上下文。
  • BabyAGI:任务驱动的记忆,带优先级队列。

一个很迷人的研究方向。Letta/MemGPT率先提出让模型自己管理记忆层级。但在生产中有一个问题:你要信任LLM来判定什么值得保留,而这个判定质量随模型和上下文而变化。

个人AI与书签——为人类设计的记忆,非Agent

  • Khoj:自部署个人AI,基于文件记忆。
  • SuperMemory:AI驱动的记忆,用于保存内容和书签。
  • Vanna:基于RAG的记忆,用于数据库查询。

这些更多是个人知识工具,而不是Agent记忆层。它们在自己场景下很好,但解决的是不同的问题——帮助你记住东西,而不是让你的Agent获得持续理解。

结构化记忆引擎——专为Agent智力打造

这些引擎是专门为给Agent提供结构化、可查询、持久化记忆而设计的。

  • Mem0:智能事实提取、去重、矛盾解决。
  • Cognee:实体关系知识图谱,提供14种检索模式。
  • Graphiti:时间感知知识图谱,带有效性窗口。

这才是真正有意思的地方——我6个月里大部分时间都在研究它们。

长期记忆的三个层级

测试完所有33个引擎后,结构化记忆引擎脱颖而出。但我花了几个月才意识到一个关键洞察:这三个引擎不是让你一起跑的,它们是进化阶梯。 每个层级都超越前一个,在覆盖较低层级功能的同时增加新能力。

第一层:Mem0——事实与偏好

Mem0(GitHub 48K+星,2400万美元A轮)是智能事实层。告诉你的Agent“我偏好TypeScript”,周四又说“数据脚本用Python”——Mem0不会存两条矛盾的记录。它会更新:TypeScript用于一般开发,Python用于数据脚本。每个事实都有分类、时间戳和置信度评分。

Zep的事实提取只是对话记忆的一个附加功能,而Mem0整个架构都围绕让事实更可靠来构建。你的Agent每次开始对话时就已经知道你的偏好、项目习惯和约定。不需要重新解释。

最适合:开发者和技术场景。 如果你的Agent主要需要记住偏好、约定和跨会话的项目细节,选Mem0。它设置最简单、最专注。

第二层:Cognee——关系与推理(超越Mem0)

Cognee750万美元种子轮GitHub安全开源项目毕业生,已在70多家公司运行)构建了一个知识图谱——不是孤立的事实,而是一个由实体、关系和语义连接构成的网络。

Mem0只知道“客户偏好蓝色品牌”,而Cognee知道客户的品牌指南连接着上个月的活动表现,广告表现连接着互动最多的受众群体,受众群体又连接着内容日历。它自带14种检索模式和一个自改进的“memify”功能,你用得越多,连接就越强。

Cognee能处理Mem0的所有功能(事实就是图中的节点),还能映射它们之间的关系。这就是为什么它超越第一层——如果你用了Cognee,就不需要Mem0。

最适合:市场、内容和多项目管理。 如果你的Agent需要在品牌、活动、受众和项目之间推理——理解事物如何连接,而不只是事物是什么——选Cognee。

第三层:Graphiti——时间推理(超越Cognee)

Graphiti 由Zep开发,是时间感知知识图谱。它的核心洞察:光知道当前状态不够。你得知道什么时候变了、之前是什么。

每个事实都带有有效性区间。当新信息与旧信息冲突时,Graphiti不会覆盖——它会创建一个时间记录并使前一个记录失效,保留完整历史。“这个配置什么时候改的?”“三月部署前有什么不同?”Graphiti直接回答,不用翻日志。

它在深度记忆检索基准上 超越了MemGPT,结合了语义搜索、关键词匹配和图遍历。

Graphiti能处理事实(像Mem0)和关系(像Cognee),还能跟踪它们随时间的变化。它超越下面两个层级——但也是最重的(需要FalkorDB,更多计算,更多复杂度)。

最适合:运营、高管和业务场景。 如果你的Agent需要跨时间的因果推理——“什么变了”、“什么时候坏了”、“之前是什么”——选Graphiti。

只选一个,不要全选

  • 如果你做开发/运维:选 Mem0。你需要快速、可靠的事实回忆。偏好、约定、项目细节。
  • 如果你做市场/内容:选 Cognee。你需要关系推理。品牌、活动、受众,它们如何连接。
  • 如果你做运营/高管:选 Graphiti。你需要时间推理。什么变了、什么时候、什么坏了。

常见的错误是以为“引擎越多=记忆越好”。不是的。每个层级已经包含了下面层级的能力。Mem0和Graphiti一起跑是多余的——Graphiti已经存了事实。三个全跑浪费计算资源,还会造成一致性冲突。

选一个匹配你工作的层级。把它和基础堆栈(对话压缩 + 原生文件加语义搜索)搭配起来,你的Agent就会记住所有重要的事。

完整架构

一个完整的Agent记忆堆栈是这样的:

  • 第一层:对话压缩(始终开启)
  • 第二层:原生文件 + 语义搜索(始终开启)
  • 第三层:长期智能引擎(选一个,按需开启)

每一层都为模型提供上下文。下面两层一直开着。上面那层根据你的Agent需要哪种推理来选择。

如何跑起来

基础堆栈(第一、二层)已经内置在 OpenClaw 里——对话压缩、原生记忆文件和语义搜索开箱即用。长期引擎(第三层)需要额外设置:Mem0需要向量存储,Cognee需要图数据库,Graphiti跑在FalkorDB上。

OpenClaw是开源的,你可以自部署整个堆栈。如果你想跳过基础设施工作,我一直在搭建 ClawBase——托管版OpenClaw,会为你的场景预配置合适的记忆堆栈。不过说实话,就算你自部署,核心收获也是这个架构:一个三层记忆堆栈,选一个匹配你工作的长期引擎。

记忆会随时间累积——无论你怎么跑,用得越久,效果越好。

还有一点我经常想:一旦你的Agent有了真正的记忆堆栈,它就会为更大的东西打开大门——多个Agent之间共享统一记忆。想象一个Agent团队,它们不仅记住自己的上下文,还能共享对项目、偏好和决策的统一理解。那是另一种架构,我将来会单独写一篇文章深入探讨。

直达网址:https://github.com/anthropics/openclaw

类似文章