首页 › ai-agents › AI智能体记忆架构六大方案实测对比

AI智能体记忆架构六大方案实测对比

概述

2026年AI Agent领域最被低估的基础设施不是推理引擎,而是记忆系统。无论模型多强大,一个"健忘"的智能体在实际任务中几乎不可用。本文基于Letta官方LoCoMo基准测试数据、CoALA认知架构框架、以及Mem0/LangMem/Zep/Letta/OpenClaw/Manus六大方案的生产环境实测,深入拆解不同记忆架构的设计哲学与性能边界。核心发现:Letta用纯文件系统在LoCoMo上跑出74.0%准确率(GPT-4o-mini),超过Mem0图变体的68.5%——这颠覆了"专用记忆工具优于通用方案"的常见认知。

一、六维对比总览

维度 Letta (MemGPT) Mem0 LangMem Zep OpenClaw Manus
架构理念 OS式分页三级存储 被动提取+图/向量混合 LangGraph内置KV存储 会话结构化知识图谱 激进有损压缩+RAG 文件系统即记忆
记忆层级 Core/Recall/Archival 短期/长期/语义 单层命名空间 情景/语义/摘要 压缩历史+RAG索引 文件系统+多进程
Star数 ~21K ~25K ~1.3K ~3K ~8K ~40K+
LoCoMo得分 74.0% (文件系统) 68.5% (图变体) 未公布 未公布 N/A N/A
自编辑记忆 Agent主动读写 被动提取 后台管理器 结构化提取 自动压缩 Agent主动读写
向量检索 search_files工具 内置 向量相似度 混合搜索 RAG索引 语义搜索
知识图谱 无 有 无 有 无 无
时间检索 无 无 无 有 无 无
托管服务 有($20-200/月) 有(免费层+Pro) 无(需LangGraph) 有(免费层+Pro) 无 无
框架依赖 高(运行在其内部) 低(独立SDK) 高(需LangGraph) 低(独立SDK) 中 低
上手难度 中高 低 中 低 中高 中
生产就绪 是 是 是 是 是 是

二、Letta:操作系统式的三级记忆

架构原理

Letta源自MemGPT研究项目(UC Berkeley, 2023),核心设计灵感来自操作系统的虚拟内存管理。整个记忆系统分为三层:

# Letta Agent 创建示例
from letta import create_client

client = create_client()
agent = client.create_agent(
    name="memory_agent",
    memory_blocks=[
        {"label": "persona", "value": "I am a helpful assistant."},
        {"label": "human", "value": "User preferences will be stored here."}
    ],
    tools=["send_message", "search_files", "grep"]
)

# Agent自主管理记忆——当判断某信息重要时主动写入
response = client.send_message(
    agent_id=agent.id,
    message="我叫张三,我对花生过敏,请记住"
)
# Agent会自动调用core_memory_append将过敏信息写入核心记忆

关键发现:文件系统吊打专用工具

Letta团队2025年8月发表的基准测试揭示了一个反直觉的结论。他们用最简单的文件系统方案——将LoCoMo对话历史放入文件,Agent仅使用search_files、grep和answer_question三个工具——在GPT-4o-mini上达到74.0%准确率,显著高于Mem0图变体的68.5%。

原因在于:现代LLM经过大量代码训练后,对文件操作工具的使用已经高度熟练。Agent能自主将"Calvin如何面对挫折保持动力?"转换为搜索查询"Calvin motivation setbacks",并迭代搜索直到找到正确数据。而专用记忆工具往往设计为单跳检索,灵活性反而受限。

优缺点

三、Mem0:被动提取的记忆中间件

架构原理

Mem0走了一条完全不同的路线——不要求Agent在运行时内主动管理记忆,而是通过一个独立的记忆层,从对话流中被动提取、存储和检索信息。其核心是MemoryClient,作为LLM调用和用户交互之间的中间件。

# Mem0 记忆集成示例
from mem0 import Memory

m = Memory()

# 添加记忆(被动提取)
result = m.add("我叫张三,在字节跳动做后端开发,最近在学Rust", user_id="zhangsan")

# 检索相关记忆
memories = m.search("张三的技术栈是什么?", user_id="zhangsan")
# 返回: [{"memory": "在字节跳动做后端开发", "score": 0.89},
#        {"memory": "最近在学Rust", "score": 0.85}]

Mem0在2025年发布了LoCoMo基准测试结果,其图记忆变体达到68.5%,向量变体约65.2%。然而,Letta团队指出Mem0声称测试了MemGPT的数据无法被独立复现——Letta团队无法找到一种方法能将LoCoMo数据回填到MemGPT/Letta中而不对代码做大幅重构。

优缺点

四、LangMem:LangGraph生态的记忆组件

架构原理

LangMem是LangChain生态系统中专门为LangGraph Agent设计的记忆库。它将记忆存储为LangGraph内置结构化存储中的扁平JSON键值对,每个记忆项有命名空间和键。检索仅依赖向量相似度搜索。

# LangMem 集成示例
from langgraph.store.memory import InMemoryStore
from langmem import create_memory_manager

store = InMemoryStore()

# 创建记忆管理器
memory_manager = create_memory_manager(
    "anthropic:claude-sonnet-4-20250514",
    store=store,
    instructions="Extract user preferences and key facts"
)

# 后台自动提取用户偏好
# 无需Agent主动调用——后台管理器处理一切

LangMem有一个独到的功能——Prompt优化。它能分析Agent的长期表现,根据积累的交互数据自动建议系统提示词的改进方向。这在持续迭代提示工程的场景中非常有价值。

优缺点

五、Zep:结构化知识图谱记忆

架构原理

Zep的独特之处在于将会话数据结构化为知识图谱。每条记忆不仅存储语义向量,还提取实体、关系和时序信息。这使Zep成为唯一支持时间检索("上周二我们讨论了什么?")的主流记忆方案。

# Zep 记忆使用示例
from zep_cloud.client import Zep

client = Zep(api_key="your_key")

# 自动从对话中提取结构化知识
client.memory.add(session_id="session_1", 
    messages=[{"role": "user", "content": "我下周要去东京出差,住在新宿"},
              {"role": "assistant", "content": "好的,我帮您查新宿附近的酒店"}])

# 时间范围检索
results = client.memory.search(session_id="session_1",
    text="旅行计划",
    search_type="temporal",
    metadata={"from": "2026-05-01", "to": "2026-05-18"})

优缺点

六、OpenClaw:为永续运行而生的激进压缩

架构原理

OpenClaw的设计目标极其极端——让智能体能连续自主运行数小时甚至数天。为此它采用了最激进的有损压缩策略,依靠两个核心机制:

Compaction(压缩):对历史对话做逐级有损摘要。随着任务推进,早期对话被压缩成越来越简短的概要。上下文不会溢出,但原始信息的保真度持续下降。

Pruning(修剪):对工具输出做实时裁剪。一个工具返回500行日志,可能只保留关键20行,其余直接丢弃。被压缩的信息通过RAG混合搜索索引,需要时可尝试检索找回。

# OpenClaw 压缩策略示意
原始对话(第1-5轮):
  User: 分析这份100页的财报...
  Tool: [500行财报数据输出]
  Agent: 根据数据,营收增长23%...

压缩后(第20轮时):
  [摘要] 第1-5轮:分析了某公司财报,营收增长23%,利润率8%

修剪后(工具输出):
  [500行 → 保留关键20行]

优缺点

七、Manus:文件系统即无限记忆

架构原理

Manus的思路在所有方案中最具颠覆性——完全跳出上下文窗口的框架,把文件系统当成Agent的"外挂大脑"。模型执行任务时主动把重要信息写入文件,需要时再读取回来。

# Manus 记忆策略示意(伪代码)
# 处理复杂任务时主动"卸载"信息
def process_web_content(url):
    content = fetch(url)
    # 将完整内容写入文件,从上下文中移除
    file_path = write_to_file(f"/tmp/web_{hash(url)}.txt", content)
    # 上下文中只保留文件路径
    context.add(f"[已缓存: {file_path}]")
    context.remove(content)  # 释放上下文空间

# 多进程任务分解
task = decompose(complex_goal)
for subtask in task.subtasks:
    # 每个子任务独立进程,上下文干净
    subprocess.run(subtask, share_via_files=True)

更值得关注的是任务分解机制。复杂目标被拆为多个独立子任务,每个子任务跑一个新进程,进程间通过文件读写协作而非共享上下文。这像微服务架构——每个进程的上下文都很小很干净,不会出现巨大上下文把模型搞晕的问题。

优缺点

八、架构选型决策图

图表1

图表 1

九、性能实测:LoCoMo基准深度解析

Letta团队使用LoCoMo基准(长对话问答,包含两个虚构说话人的时间戳对话序列)进行的测试揭示了关键数据:

方案 模型 LoCoMo准确率 记忆操作token消耗 平均延迟
Letta文件系统 GPT-4o-mini 74.0% 中 ~2.1s
Mem0 Graph GPT-4o-mini 68.5% 低 ~1.5s
Mem0 Vector GPT-4o-mini ~65.2% 低 ~1.2s
纯RAG基线 GPT-4o-mini ~58% 低 ~1.0s
无记忆基线 GPT-4o-mini ~35% 无 ~0.8s

核心洞察:Agent使用记忆工具的能力比记忆工具本身的检索质量更重要。Letta文件系统之所以胜出,不是因为它有更好的检索算法,而是因为LLM对文件操作工具的掌握程度远超对专用记忆API的掌握——这些通用工具更可能出现在模型的训练数据中。

这带来了一个重要推论:在设计Agent记忆系统时,应优先选择模型已经"熟悉"的简单工具接口,而非理论上更强大的复杂API。

十、混合记忆架构:生产环境的最佳实践

基于CoALA认知架构框架(Princeton, 2023, arXiv:2309.02427)和上述实测数据,生产级Agent应采用混合记忆架构:

图表2

图表 2

混合架构的实现要点:

  1. 双写策略:每条新信息同时写入情景记忆(时间线日志)和语义记忆(向量/图谱)
  2. 双路检索:短期用情景记忆获取最近N步,长期用语义记忆做概念关联搜索
  3. 合并重排序:两路结果合并后用重排序模型按相关性排序,裁剪到token预算内
  4. 程序记忆独立管理:系统提示词、工具定义、行为规则不应混入对话记忆,单独维护
# 混合记忆检索伪代码
def get_hybrid_context(task_id, user_question):
    # 1. 情景检索(最近5步,快速且确定性的)
    episodic = episodic_store.fetch_events(task_id, last_n=5)

    # 2. 语义检索(概念相关,慢但覆盖面广)
    query_emb = embedding_model.embed(user_question)
    semantic = vector_db.search(query_emb, top_k=5)

    # 3. 合并 + 重排序
    combined = episodic + semantic
    ranked = reranker.rank(combined, query=user_question)

    # 4. 裁剪到token预算
    final = trim_to_budget(ranked, max_tokens=4000)
    return final

十一、成本与延迟实测

基于AgentMarketCap 2026年4月的横向评测数据,在生产规模(100+并发会话)下的成本表现:

方案 100并发会话/月成本 P95检索延迟 记忆写入延迟 Token额外消耗
Letta自托管 $50-80 2.1s 1.8s 15-25%/请求
Letta Cloud $200-400 1.5s 1.2s 15-25%/请求
Mem0 Cloud $80-150 0.8s 0.5s 5-10%/请求
Zep Cloud $100-200 1.2s 0.9s 8-15%/请求
LangMem自托管 $30-60 1.0s 0.7s 3-8%/请求
纯文件系统 $20-40 2.5s 0.3s 20-30%/请求

关键结论:Mem0在延迟和token效率上表现最优,但Letta文件系统在准确率上领先。成本和准确率之间没有免费午餐——更便宜的方案(LangMem、纯文件系统)要么牺牲了检索质量,要么增加了推理负担。

十二、推荐方案

场景 推荐方案 理由
独立开发者快速原型 Mem0免费层 零配置集成,3行代码接入
LangGraph深度用户 LangMem 生态一致,部署简单
代码助手/开发Agent Letta文件系统模式 准确率最高,适合高精度需求
客服/医疗/法律 Zep 时间追溯+知识图谱满足审计需求
超长自治任务 OpenClaw + RAG 续航能力最强
大规模调研/报告 Manus文件系统 无限记忆容量,多进程协作
生产级混合方案 Letta核心+Mem0语义+Zep时间 各取所长但运维复杂

最重要的选型原则:不要追求"最好的"记忆工具,而要追求"模型最能有效使用的"记忆接口。Letta团队的基准测试已经证明,一个模型熟悉的简单文件系统API,比一个理论上更强大的专用记忆工具在实际表现上更好。记忆系统的核心竞争力不在于存储和检索算法的复杂度,而在于Agent调用记忆工具时的成功率和效率。

参考来源

  1. Benchmarking AI Agent Memory: Is a Filesystem All You Need? — Letta Research Blog — Letta官方LoCoMo基准测试,文件系统vs专用记忆工具对比数据
  2. Letta vs LangChain Memory: Agent Memory Compared (2026) — Vectorize — Letta与LangMem架构深度对比
  3. 四大AI智能体记忆架构拆解 — 语幕 — Manus/OpenAI/OpenClaw/Claude Code四种记忆架构的中文解析
  4. Types of AI Agent Memory — Atlan — 基于CoALA框架的五类Agent记忆分类学
  5. Memory in Agents: Episodic vs Semantic — Principia Agentica — 情景记忆与语义记忆的混合架构设计模式
  6. AI 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 等场景全覆盖。

51学通信知识星球海报-扫码加入