news 2026/6/13 1:07:04

Agent 记忆怎么设计才靠谱?这篇论文把 10 种方案拆开测了一遍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent 记忆怎么设计才靠谱?这篇论文把 10 种方案拆开测了一遍

Agent 记忆系统不能只靠“把历史对话塞进向量库”解决。

长期运行的 Agent 需要处理的是一套数据系统问题:哪些信息值得留下,旧事实怎么更新,冲突版本怎么处理,查询时如何找回正确证据。

arXiv 论文《Memory in the LLM Era: Modular Architectures and Strategies in a Unified Framework》做了一件很有用的事:它没有只介绍某个新方法,而是把 10 种代表性 Agent Memory 方案放到同一个框架里拆开比较。

作者把记忆系统拆成四个模块:

  1. 信息提取:从对话里抽什么
  2. 记忆管理:新旧记忆怎么合并、更新和过滤
  3. 记忆存储:记忆用什么结构保存
  4. 信息检索:查询时怎么找回相关内容

这套拆法的价值在于,它让我们能看清一个记忆方案的能力到底来自哪里。分数高,不一定是因为检索强;也可能是因为存储结构更好,或者更新策略更稳。

论文给出的工程判断也比较明确:层次结构通常更稳,原始证据不能丢,关系连接很重要,复杂的 LLM 自主管理不一定比清晰的规则式架构更划算。


为什么 Agent 记忆不是普通聊天记录?

LLM 默认没有长期状态。

每次调用模型时,模型只能看到当前 prompt 里的内容。用户感觉模型“记得之前说过什么”,通常是系统把历史上下文重新塞回输入窗口。

短对话可以这么做,长期 Agent 不行。

个人助手需要记住用户偏好、项目背景和最近变更;代码 Agent 需要记住仓库结构、失败测试和用户长期约定;科研 Agent 需要在多轮探索里积累证据,而不是每轮从零开始。

这些信息不是聊天记录的附属品,而是下一步行动的依据。只把历史拼进上下文,会遇到三个瓶颈:

  • 历史越来越长,token 成本持续上涨
  • 旧事实和新事实会冲突,需要版本判断
  • 相关证据可能分散在多个 session,不能只靠相似度检索

所以 Agent Memory 更接近一套长期运行的数据基础设施,而不是一个 prompt 技巧。

论文原图:长上下文提示把历史信息直接塞进 prompt,记忆增强提示会先经过记忆模块选择和组织相关内容。


四模块框架:把记忆系统拆成可比较的零件

论文提出的统一框架很适合工程读者理解。

模块要解决的问题常见做法
信息提取从当前消息里抽什么原文归档、摘要提取、图谱三元组抽取
记忆管理新旧记忆怎么合并和更新连接、整合、层级迁移、更新、过滤
记忆存储记忆以什么结构保存扁平存储、层次存储、向量存储、图存储
信息检索查询时怎么找回记忆关键词检索、向量检索、结构检索、LLM 辅助检索

不同方案看起来名字很多,底层差异基本都落在这四个模块里。

例如,Mem0 更强调从对话里提取和更新记忆;Mem0^g 加入图谱式表达;MemoryOS 把短期、中期、长期记忆分层;MemTree 和 MemOS 用树结构组织多粒度信息;Zep 更依赖图结构和社区组织。

拆成模块后,比较就更清楚了:一个系统可以检索很强,但信息提取阶段丢了细节;也可以存储结构很好,但更新策略过于依赖 LLM 工具调用,规模变大后稳定性下降。

论文原图:作者把 Agent Memory 拆成信息提取、记忆管理、记忆存储和信息检索四个模块。


信息提取:结构化之前,先保住原始证据

论文把信息提取分成三类。

第一类是直接归档。系统保存原始消息和时间戳,不做额外加工。它不聪明,但不容易丢细节。

第二类是摘要式提取。系统用 LLM 从一段对话里提炼关键词、主题、标签或简短摘要。摘要能减少冗余,但压缩过程也可能抹掉上下文。

第三类是图谱式提取。系统从文本里抽出实体和关系,转成“主体-关系-客体”的三元组。图谱方便做关系推理,但抽取错误会沿着后续存储和检索继续放大。

论文里的一个观察很实用:结构化表示不一定带来更完整的记忆。

Mem0 的图谱版本 Mem0^g 在一些任务上并不总是优于普通 Mem0。一个合理解释是,三元组保留了关系,却可能压掉语气、上下文和细粒度事实。长期记忆需要结构,但结构不能替代证据。

更稳的设计是双轨保存:结构化信息负责组织和检索,原始对话片段负责校验和补细节。

论文原图:信息提取可以直接归档,也可以做摘要提取或图谱式实体关系抽取。


记忆管理:难点是更新,不是写入

记忆管理决定系统如何维护一份“会变化的长期状态”。

论文总结了五类管理操作:

  • 连接相关经历:把语义相近、时间相近或上下文相关的记忆连起来
  • 整合碎片信息:把重复或零散内容压缩成摘要、主题或用户画像
  • 跨层级迁移:把短期记忆逐步转成中期、长期记忆
  • 更新已有记忆:处理新旧事实冲突,保持记忆一致
  • 过滤过时内容:删除、降权或标记不再有效的信息

LLM 参与记忆管理很有吸引力。系统可以让模型自己决定什么时候合并、什么时候更新、什么时候调用工具,看起来更灵活。

问题是,记忆规模变大后,LLM 要处理的不只是语义判断,还包括工具调用、索引位置、冲突版本和状态维护。任何一步不稳定,都会影响后续检索。

论文在上下文扩展实验里观察到类似现象:MemOS、MemGPT 这类更接近 “LLM-as-OS” 的方案,在上下文规模扩到 200% 时,更容易受到候选空间变大、工具调用复杂和索引冲突的影响。MemoryOS 使用更明确的规则式分层管理,扩展稳定性反而更好。

工程上可以把结论说得更直接:底层、高频、影响一致性的记忆操作,需要确定性机制托底;LLM 更适合参与需要语义判断的环节。

论文原图:记忆管理包含关联、整合、跨层级迁移、更新和过滤等操作。


存储结构:单层向量库不够用

论文从两个维度讨论存储。

第一个维度是组织方式:扁平存储还是层次存储。

扁平存储把所有记忆放在同一层,比如 JSON 文件、FIFO 队列或统一向量库。实现简单,但历史变多以后,检索空间会变脏,相关内容更容易被噪声淹没。

层次存储会给记忆分生命周期。短期记忆保存最近上下文,中期记忆保存主题片段,长期记忆保存稳定偏好或高价值事实。

第二个维度是表示方式:向量还是图。

向量适合语义相似度检索,图适合关系、层级和多跳推理。两者不是竞争关系,而是解决不同问题。

实验结果支持这个判断:

  • LONGMEMEVAL 的 7B 设置下,MemTree 拿到最高 Overall F1:36.92
  • LOCOMO 上,MemOS 在 7B 和 72B 下分别拿到最高 Overall F1:37.05 和 42.79
  • LONGMEMEVAL 的 72B 设置下,MemoryOS 拿到最高 Overall F1:46.04

这些高分方法的共同点是,它们都没有把记忆压成单层向量空间。

树结构和分层结构能同时保留上层概括和下层细节。检索时先定位范围,再下钻到证据,比在一个巨大扁平空间里直接找 top-k 更可靠。


检索机制:相似度不等于推理

长期记忆系统不能只依赖向量相似度。

论文把检索机制分成四种:

  • 关键词检索:适合名字、术语和精确短语
  • 向量检索:适合同义表达和语义接近内容
  • 结构检索:适合沿图或树做扩展
  • LLM 辅助检索:适合改写查询、识别实体、判断隐含依赖

向量检索能找到“语义接近”的片段,但不会天然建立事实之间的关系。

比如用户问:“我上次提到的那个项目后来换负责人了吗?”

系统可能需要跨多个会话串起项目名称、负责人、更新时间和最新状态。单纯 top-k 相似度可能召回几个相关片段,但不保证能把版本关系和多跳关系组织起来。

论文也观察到,缺少关联操作的方法,例如 MemoryBank、MemGPT、MemoChat,在 LONGMEMEVAL 的 Multi-Session 任务和 LOCOMO 的 Multi-Hop 任务上表现偏弱。

长期记忆不是更长的搜索框,而是一个能保存关系、版本和证据链的系统。


实验设置:两个长期记忆 benchmark

作者评测了 10 个代表性 Agent Memory 方法:

A-MEM、MemoryBank、MemGPT、Mem0、Mem0^g、MemoChat、Zep、MemTree、MemoryOS、MemOS。

评测数据集主要有两个。

LOCOMO是长期人类对话问答任务。每段对话平均包含 27.2 个 session、约 588.2 轮对话,问题类型包括单跳检索、多跳检索、时间推理和开放域知识。

LONGMEMEVAL是长期用户-AI 交互记忆评测。它包含 500 个高质量问题,每个问题对应平均 50.2 个 session、约 115,000 tokens 的历史上下文,评估信息提取、多会话推理、知识更新和时间推理。

实验指标使用 F1 和 BLEU-1。默认主干模型是 Qwen2.5-7B-Instruct,同时比较 Qwen2.5-72B-Instruct、LLaMA3.1-8B 和 GPT-4o-mini。

作者还把方法放到统一框架下重实现,并统一使用 all-MiniLM-L6-v2 作为 embedding 模型。这个设置减少了“每个方法各测各的”带来的比较偏差。


强模型仍然重要,但系统不能只靠模型硬推

记忆系统能找回历史信息,但找回证据不等于完成推理。

论文里一个明显现象是,时间推理任务很依赖主干模型规模。比如在 LOCOMO 上,MemoryOS 和 MemoChat 从 Qwen2.5-7B 换到 Qwen2.5-72B 后,时间推理表现出现超过 2 倍的提升。

原因很简单:时间问题要求模型理解“先后关系”“更新关系”“当前有效事实”。如果系统只在最后一步把证据塞给模型,再让模型临场判断,弱模型更容易出错。

更稳的方向是把时间能力变成系统结构的一部分,例如显式时间戳、版本记录、失效标记和时间检索算子。模型负责解释和生成,系统负责提供可靠的时间线。


高分通常更贵,架构决定性价比

论文专门分析了 token 成本。

整体趋势不意外:性能更高的方法,通常消耗更多 token。复杂摘要、记忆更新、多步检索和 LLM 管理都会带来额外调用。

更有用的结论是,成本不只取决于“用了多少 LLM”,还取决于记忆架构。

MemTree 和 MemOS 准确率高,但 token 开销也高。MemoryOS 不一定每项第一,却在效果和 token 成本之间更均衡。MemoChat、MemoryBank 这类简单方法 token 成本低,但准确率也上不去。

论文还指出一个容易被忽略的优化方向:调整信息处理粒度。

如果每一轮对话都单独抽取、更新和插入,记忆系统的成本会随着会话增长快速上升。更合理的方式是把多个 dialogue turns 作为一个片段处理。MemoryOS 会把对话组织成 segment 再进入中期记忆,MemoryBank 也有按天汇总的思路。

记忆粒度不是越细越好。太细会让索引膨胀、更新昂贵、检索噪声变大;适当粗粒度反而能提高成本效率。

论文原图:不同记忆方法在 LOCOMO 上的总体性能和平均 token 成本权衡。

论文原图:对话 session 增加后,不同记忆方法的平均 token 成本变化。


上下文越大,检索噪声越难压住

作者用 LONGMEMEVAL 构造了 50%、100%、150%、200% 四种上下文规模。

结果很直接:上下文规模从 50% 扩到 200% 后,几乎所有记忆架构的 F1 都会下降。

性能下降的主要原因不是模型突然变弱,而是检索空间变大以后,无关信息密度上升,信噪比下降。

知识更新任务尤其敏感。

这类问题要判断“当前有效事实是什么”。历史里可能同时存在多个互相冲突的旧版本。用户过去说自己住在上海,后来搬到深圳,再后来改到杭州,系统必须回答杭州,而不是从历史里随机召回一个城市。

时间推理相对稳定一些,因为时间关系有明确顺序线索。“之前”“之后”“最近一次”这类关系不完全依赖语义相似度。

工程评测不能只看小上下文。一个记忆系统在 10 条历史上表现稳定,不代表它在 1000 条历史上还能可靠。

论文原图:LONGMEMEVAL 上下文规模从 50% 扩展到 200% 后,多数方法出现性能衰减。

论文原图:知识更新、时间推理等任务类别对上下文扩展压力的敏感度不同。


早期证据更容易被遗忘

论文还做了位置敏感性实验。

作者把关键证据分别放到上下文早期、中期和后期,观察系统能否稳定找回。

多数方法都有近因偏差:后期证据更容易被召回,早期证据更容易被后续对话冲淡。

论文给了几组数字:

  • MemTree 的 Overall F1 从 Early 的 34.13 提升到 Late 的 37.37
  • MemOS 的 Overall F1 从 Early 的 29.10 提升到 Late 的 34.40
  • MemoryOS 的 Late-Early 差距较小,只有 +1.29 F1

近因偏差不一定总是坏事。用户刚刚修改地址时,系统应该优先使用最新信息。

问题在于,系统不能把“最新”误当成“永远正确”。有些任务需要回忆旧事实,例如“我第一次提到这个项目时的目标是什么”。如果记忆系统没有版本管理和证据保留机制,更新任务和历史回忆任务会互相干扰。

论文还发现,会话局部信息更容易受位置影响,长期偏好相对稳定。原因是偏好通常会被多次提炼,而一次性细节更容易在后续摘要和更新中被稀释。

论文原图:关键证据放在 Early、Middle、Late 不同位置时,记忆方法的整体表现不同。


新方法:树结构加三层记忆

基于实验分析,作者设计了一个新的记忆方法。

它不是从零发明概念,而是组合已有方案里的有效模块:

  • 借鉴 MemTree、MemOS 的树状组织
  • 借鉴 MemoryOS 的短期、中期、长期分层
  • 用更粗粒度的 segment 降低 token 成本
  • 从多个层级独立检索,再合并上下文

工作流可以简化成这样:

新消息进入短期记忆 ↓短期记忆满了以后,最旧的一部分按语义切成片段 ↓片段进入中期记忆树,叶子节点保留片段摘要,父节点保存聚合摘要 ↓经常被访问、最近仍然重要的片段,通过 heat score 晋升到长期记忆 ↓查询时同时检索短期、中期、长期记忆,再交给 LLM 生成答案

这个设计承认不同记忆有不同生命周期。

短期记忆保证当前上下文连续,中期记忆用树结构承接主题和片段,长期记忆保存高价值内容。检索时,短期记忆可以全量带上,中期记忆同时做向量检索和树上的 beam search,长期记忆再做向量检索。

相比把所有历史塞进一个库,这种分层检索更容易控制噪声和成本。

论文原图:新方法组合树结构和短期、中期、长期三层记忆,从多个层级独立检索再合并上下文。


新方法的优势是综合性价比

在 LONGMEMEVAL 上,作者的新方法 Overall F1 是 38.79。相比最强现有 baseline MemTree 的 36.92,整体相对提升 5.17%。

在 LOCOMO 上,新方法也拿到最好 Overall:

  • Qwen2.5-7B:38.03
  • Qwen2.5-72B:43.87

它的平均 token 开销低于每段对话 450 tokens。这个数字值得关注,因为很多记忆方法不是不能提高分数,而是分数上去以后成本也跟着上去。

新方法并不是每个子任务都第一。

LOCOMO 里,MemOS 在多跳检索和时间推理等复杂任务上仍然很强。GPT-4o-mini 设置下,MemOS 的 Overall F1 也略高于作者方法。

作者方法的优势更接近工程上的综合性价比:整体分数高,token 成本低,换模型后表现也比较稳定。

论文原图:作者新方法在保持较好效果的同时,把平均 token 成本控制在较低水平。

真实系统通常不需要一个只在单项任务上极限刷分的方案,而需要一个不贵、不脆、历史规模变大后还能工作的记忆架构。


做 Agent 记忆系统,可以先记住四条原则

第一,先搭层次结构,再引入复杂智能管理。

很多团队一开始就想让 LLM 自动决定记忆怎么写、怎么合并、怎么删。这个方向有空间,但也容易把系统变成黑箱。更稳的起点是短期、中期、长期分层,再给每层定义明确的迁移规则。

第二,保留原始证据。

摘要、标签、三元组、embedding 都是索引,不是事实本身。只保留加工后的记忆,在需要细节时很容易出问题。结构化信息负责提速,原始片段负责校验。

第三,给记忆加版本意识。

长期 Agent 一定会遇到知识更新。用户偏好会变,项目状态会变,组织关系会变。直接覆盖旧记忆,会丢掉解释链路;只追加新记忆,又会让旧版本污染检索。

更合理的做法是保留历史,同时标注有效期、更新时间、置信度或失效状态。

第四,评测要同时看准确率、成本、规模和位置。

只测准确率不够。记忆系统还要测 token 成本、上下文扩大后的衰减、早期证据能不能找回、换主干模型后是否稳定。Demo 里的好表现,不能自动推导到生产环境。


结尾:记忆系统要有工程边界

这篇论文给 Agent Memory 做了一次系统性的拆解评测。

它把记忆从“模型好像记住了”拉回到工程问题:信息提取、记忆管理、存储结构、检索机制,每一层都会影响最终回答。

如果把论文结论转成实践建议,可以这样落地:

用层次结构管理记忆生命周期,用结构化索引提高检索效率,用原始证据保证可追溯,再让 LLM 参与需要语义判断的环节。

不要一开始就追求全自动记忆管理。先明确四个问题:

  1. 哪些信息应该进入记忆?
  2. 新旧事实冲突时怎么更新?
  3. 查询时先检索哪一层?
  4. 旧证据什么时候失效,什么时候只降权?

把这些边界设计清楚,Agent 记忆才会从“看起来聪明”变成“长期可靠”。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 1:04:53

[深度学习]Kaggle:Random Forest optimization full process Python code

以下是一个针对随机森林模型优化的完整 Kaggle 竞赛代码模板,涵盖了数据预处理、特征工程、超参数调优、模型训练与评估、以及提交文件生成的全流程。 # 导入必要的库 import pandas as pd import numpy as np from sklearn.model_selection import train_test_spl…

作者头像 李华
网站建设 2026/6/13 1:02:53

从TiDB到Flink:聊聊RocksDB这个‘幕后功臣’在实际项目里怎么用

从TiDB到Flink:RocksDB在分布式系统中的实战精要第一次在TiKV的监控面板里看到RocksDB的compact操作导致写入延迟飙升时,我盯着那根突然拔高的曲线愣了两分钟。作为刚从MySQL转型过来的工程师,这种由LSM树特性引发的性能波动完全超出了我的认…

作者头像 李华
网站建设 2026/6/13 1:02:51

OpenCore Configurator:黑苹果引导配置的终极可视化工具

OpenCore Configurator:黑苹果引导配置的终极可视化工具 【免费下载链接】OpenCore-Configurator A configurator for the OpenCore Bootloader 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Configurator OpenCore Configurator 是一款专为黑苹果…

作者头像 李华
网站建设 2026/6/13 0:57:07

终极指南:如何在macOS上轻松解密QQ音乐QMC格式文件

终极指南:如何在macOS上轻松解密QQ音乐QMC格式文件 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换…

作者头像 李华