浅谈 Agent Memory

浅谈 Agent Memory一句话判断 如果你的 只做到了 存聊天记录 向量检索 那它拥有的不是记忆 只是一个带搜索功能的垃圾箱 最近写了不少 深度 文章 那这次就 浅谈 一下它们都会涉及的核心 Memory 尤其是最近很火的 1 开源项目 更是将自主学习作为核心卖点 以取代 OpenClaw 2 没有 Memory 的 Agent 就像一个永远从第一天开始上班的实习生 再聪明

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



一句话判断:如果你的 只做到了“存聊天记录 + 向量检索”,那它拥有的不是记忆,只是一个带搜索功能的垃圾箱。

图片

最近写了不少“深度”文章,那这次就“浅谈”一下它们都会涉及的核心:Memory。尤其是最近很火的 [1] 开源项目,更是将自主学习作为核心卖点,以取代 OpenClaw[2]

没有 Memory 的 Agent,就像一个永远从第一天开始上班的实习生:再聪明,也积累不了经验。它可以完成一次任务,却无法在时间里形成稳定的协作关系。它有能力,但没有历史;没有历史,也就没有真正意义上的成长。

而一旦 Agent 拥有了 Memory,事情的性质就变了。它不再只是按次响应的工具,而开始在连续互动中沉淀偏好、修正错误、适应个体,甚至把反复验证过的方法固化成可复用的技能。所以 Memory 不是锦上添花的增强项,而是 Agent 从“一次性工具”转向“长期协作者”的分水岭。

过去一年多里,这个方向明显加速升温。相关论文、系统和产品化探索快速涌现,越来越多实践开始把 Memory 当作 Agent 的核心系统层,而不再只是一个附属模块。

但也正因为如此,Memory 的难度被严重低估了。它从来不是存储问题,也不只是检索问题。它真正处理的,是一个系统如何在时间中维持连续性、更新自我理解、并且不被自己的过去拖死

换句话说,Memory 的核心不是“把过去留下来”,而是治理过去如何进入现在

图片

Agent Memory 的很多分类,并不是工程世界凭空发明出来的。CoALA(Cognitive Architectures for Language Agents[3])借用了经典认知架构里关于记忆的划分方式,把 Agent 的记忆系统放回到一个更稳的认知框架里来理解:

这套分法之所以重要,不是因为名字齐整,而是因为它让我们第一次比较清楚地回答:Agent 到底“记住了什么”,以及这些东西分别如何影响行为。

工作记忆:对应 Agent 当下可直接参与推理的上下文。无论外部记忆系统多复杂,最后真正影响这一次回答和行动的,仍然只有被成功送入工作记忆的那一小块内容。它是所有记忆最终必须通过的瓶颈,也是 Agent 当下意识真正能够触碰到的部分。

情景记忆:是带时间属性的经历记录——一次对话、一系列工具调用、一场失败的尝试。它保留的是“事情是怎么发生的”,而不只是“发生了什么”。Generative Agents[4] 是这一方向极具标志性的工作:系统通过“记忆流”存储感知事件(也就是 AI 虚拟小镇事件),并用近因性 × 重要性 × 相关性来加权检索;当累积的重要性达到阈值时,再触发反思,把离散经历提炼成更高阶的理解。它的意义不只是做出了一个会“记事”的系统,而是让人们第一次直观看到:情景记忆一旦能被回溯、筛选和反思,就可能催生涌现行为。

图片

语义记忆:是从大量经历中蒸馏出的稳定知识:用户偏好、实体关系、长期约束。它比情景记忆更紧凑、更结构化,但代价是失去原始语境——你知道了“用户喜欢简洁回答”,却未必保留“这个偏好是在什么情境下形成的”。像 HippoRAG[5] 这样的工作,试图用知识图谱索引和图传播机制去模拟这种从经历到结构化知识的迁移过程,在多跳与关联检索任务上展示了很强的效果。

图片

程序性记忆:是最容易被低估的一层。人类骑车、打字、做菜,都不是每次现想一遍规则,而是把规则内化为行动模式。Agent 里的 Skills、SOP、可复用操作套路,本质上都属于这一类。

这四类记忆不是四种简单的数据标签,而是四种不同的时间残留物。工作记忆决定当下能想什么,情景记忆决定过去能否被回溯,语义记忆决定经验能否被压缩成稳定知识,程序性记忆则决定这些知识最终能否变成能力。

也正因为如此,Memory 从一开始就不是一个单层容器,而是一个分层系统。真正的问题,从来都不是“有没有存下来”,而是:经历是否能被转化,转化是否还能回溯,回溯之后又能否重新进入行动。

在进入技术架构之前,必须先澄清一个常见的混淆。

RAG(Retrieval-Augmented Generation)的本质,是把外部知识源中相关的内容检索出来,再注入当前上下文。它解决的是“模型不知道,但资料库里有”的问题。它擅长的是访问静态知识,而不是积累持续经验。

Memory 处理的则是另一件事:系统如何把互动中形成的偏好、事实变化、错误教训、长期约束,组织为能持续影响未来行为的状态。

Letta[6](原名 )一直强调一个关键判断:RAG is not Agent Memory。这个判断的重点,不是说二者毫无关系,而是说它们处理的问题层级不同。RAG 在 Agent 的运行时视角里,主要体现为“读”;而 Memory 必须覆盖写入、更新、替代、失效、删除的完整生命周期。

当用户说“今天是我的生日”,RAG 只会去搜索“生日”这个语义;Memory 则可能已经组织好了用户的重要信息,知道你之前提到过的偏好、禁忌、习惯和上下文变化,并把它们带进当前回应。

RAG 更像图书馆,Memory 更像对你的理解。前者处理知识覆盖范围,后者处理个体关系和行为演进。真正成熟的生产系统两者都需要,但它们不是一回事。

这个区分之所以重要,是因为一旦把 Memory 误解成“更聪明的检索”,后面的架构几乎都会做偏。你会以为问题在召回率,实际上问题在连续性;你会以为只要把历史搜回来就够了,实际上系统还必须知道哪些该保留、哪些该更新、哪些已经失效、哪些不该再浮上来。

所以 RAG 和 Memory 的差别,不是一种实现技巧的差别,而是一个系统有没有开始拥有历史的差别。

图片

一旦承认 Memory 不是检索的别名,就必须继续往下问:它到底是怎么运作的?

答案不是一个存储动作,而是一条生命周期管线。它至少包含三个阶段——写入、整理、读取——而且每一个阶段都会造成信息损失、语义偏移和选择性偏见。

也就是说,Memory 从一开始就不是“存下来”,而是“不断做有损重建”。

Memory 的第一个困难不是“能不能存”,而是“该不该记”。因为过去发生的事情很多,但未来有用的事情很少——而系统在当下往往根本不知道哪一条会在未来变得关键。

写入至少要完成三个动作:

很多系统最终失败,不是因为不会检索,而是因为在写入时就已经把噪声、猜测、过时状态和真正有价值的信息混在了一起。

Memory 的第一道败局,通常不是读错,而是写脏。

整理是最接近“真正记忆工作”的阶段。一个只会累积而不会整理的系统,早晚会被自己的过去压垮。

整理的核心操作包括:合并去重、冲突调解、版本替换、衰减归档、标记失效。关键不在某个具体阈值,而在于系统是否把记忆看成有生命周期的状态对象,而不是一堆永远平铺、永不失效的文本条目。

真正成熟的系统不只问“记住了吗”,而会继续追问:这条记忆现在还成立吗?它和后来的信息是否冲突?它应该被更新、替代,还是保留为历史证据?

Memory 真正难的地方,从来不是“留下来”,而是让旧版本以正确的方式退场。不会整理的系统,不是在积累智慧,而是在积累误解。

检索出来的东西,不是“系统记住的事实”,而只是系统这一次判断“可能有用”的过去片段。

成熟的读取不是一次向量搜索,而更像一条管线:混合召回、重排序、过滤、预算裁剪、上下文组装。系统不是在“还原过去”,而是在“为当前任务重构一个可行动的过去版本”。

这也是为什么 Memory 不是事实仓库,而更像一个不断重建过去意义的机制。它不是机械回放,而是一次有条件、有预算、有偏向的再组织。

所以写入、整理、读取三步连起来,真正揭示的是一件事:Memory 从来不是对过去的保存,而是对过去的持续再解释。

一旦 Memory 开始“持续再解释过去”,下一个根本问题就出现了:系统到底应该更信任,还是更信任

几乎所有 Memory 系统最后都会撞上这个问题。

原始材料(Raw) 忠实于事实——完整会话记录、工具调用轨迹、环境观察。优点是保真,缺点是太散、太碎、太贵,缺乏可操作的意义。“那把上下文窗口做到很大,全塞进去不就行了?” 不行。更多上下文不等于更好的理解。窗口一长,成本暴涨,注意力分散,模型对中间内容的感知也会显著下降。大上下文只是把 Raw 路线推到了极致,它不是终点。

派生材料(Derived) 紧凑可用——摘要、画像、偏好标签、关系图谱。优点是可索引、可注入、可决策。缺点在于:它们已经经过解释和压缩,不再是“发生了什么”,而是“系统认为发生了什么”。

问题就在这里:原始材料太重,派生材料会漂。前者保存了事实,却难以直接形成意义;后者形成了意义,却会一步步远离事实。

更危险的是,派生材料会继续喂养新的派生材料。关于这一点,近年的研究已经反复说明:一段内容只要被反复改写、反复总结、反复拿来生成新的总结,信息就会开始系统性漂移。最开始丢掉的是语气,然后是语境,再然后是边界条件、例外项和时间限定。最后,系统留下来的可能不再是真相,而是一个越来越顺口、却越来越不可靠的版本。

对 Memory 系统来说,这比单纯“记不住”更致命。记不住最多是缺失;记错了还以为自己记得很清楚,才是真正的污染。

所以一个严肃的 Memory 系统,必须同时持有原始材料和派生材料,并在两者之间建立一条可回溯、可校验、可重构的路径。每次压缩都应尽可能回到证据层校验。否则,派生层就会慢慢脱离原始来源,开始独立繁殖,最后形成一套越来越像“自我理解”、却越来越偏离事实的内部叙事。

如果没有证据层,系统会漂。如果没有派生层,系统会钝。真正高质量的架构,不是二选一,而是让两者彼此牵制。

当系统同时持有 Raw 和 Derived 之后,问题还没有结束。因为就算检索得再好、压缩得再漂亮,只要旧信息无法退出,Memory 还是会慢慢坏掉。

这就是为什么真正难的不是“怎么记”,而是“怎么忘”。

删除从来不是一键清空。你删掉原始消息,不等于删掉摘要;删掉摘要,不等于删掉由它提取的偏好;删掉偏好,不等于删掉早已被它影响过的行为提示和策略选择。所以 Forget 不是 Delete,它更像一场谱系清算——追溯这条信息去过哪里、变成过什么、影响过哪些派生物。

一个不会记的系统,最多只是笨。一个不会忘的系统,则会越来越被旧版本困住——用失效的理解解释现在,用过期的偏好指导未来,用不成立的关系结构组织检索和行动。表面上“记得很多”,实际上在不断积累错误的自我理解。

所以好的 Memory 从来不是“永不遗忘”。恰恰相反,它必须拥有一种高质量遗忘能力:让重要的东西留下,让失效的东西退场,让历史可以被审计,但不再统治现在。

真正成熟的遗忘,不是粗暴擦除,而是带有版本意识、时间意识和依赖传播意识的退场机制。它删的不是一条文本,而是一条影响链。它管理的也不是消失,而是失效之后仍然可追溯、但不再继续支配当前行为

图片

到这里,一个更关键的问题就浮出来了:如果 Memory 不只是保存过去,而是在持续重组过去,那它最终会走向哪里?

答案之一,就是 Skills(不排除未来会有更好的概念出现)。

Skills 和 Memory 到底什么关系?经验算不算一种固化的记忆?答案很明确:Skills 是程序性记忆的外化形式,代表了记忆从“保存过去”走向“塑造未来行为”的成熟产物。

人类学会骑车,不是因为每次上车前回忆一遍物理公式。熟练写某种代码,也不是因为每行都重新推理风格指南。真正的技能,是被实践反复验证后内化为稳定行动模式的东西。Agent 里的 Skills 也是如此——不是“更长的 prompt”,也不是一堆脚本/工具组合,而是系统把过去有效的经验压缩成可复用的行为结构。

这条路径已经有清晰的学术脉络。像 Reflexion[7]ExpeL[8]ReMe[9] 这一类工作,实际上都在回答同一个问题:经历如何不只是被保存,而是被提炼成下一次行动时可直接调用的能力。 其中一个非常关键的发现是:高质量的程序性记忆,不只是提升成功率,它甚至在某些场景下可以部分替代模型规模本身的不足。

工业实践里,也已经出现了把 Skills 当作核心机制的系统(如 Hermes Agent):执行任务,评估结果,提取模式,沉淀成 Skill,下次相似任务直接加载,再在使用中不断修正。这里真正重要的不是某个框架名,而是一个越来越清晰的方向:Memory 的终点不是档案,而是能力。

这也意味着,经验当然是记忆——只是它不是最终形态。

Memory 走到这里,才完成了最重要的一次跃迁:从“记得”变成“会了”。

如果说有一种思想真正改变了行业理解 Memory 的方式,那“操作系统隐喻”一定是最关键的线索。

MemGPT[10] 的核心直觉是:把 LLM 的上下文窗口视为 RAM,把外部存储视为磁盘。Memory 的问题就不再只是“怎么检索”,而变成“如何在有限工作区和外部长时存储之间建立有效调度”。

这个隐喻的价值,不在于它多像计算机操作系统,而在于它一下子把很多混乱的问题重新组织起来了:为什么窗口再大也不等于长期记忆?为什么 Memory 必须分层?为什么系统要主动决定什么进入主上下文?为什么上下文窗口只是前台,而真正的 Memory 是后台的调度系统?

一旦从这个角度看,你就会发现:Memory 不是简单地“把过去塞回来”,而是在有限注意力预算下,持续进行换入、换出、保留、压缩、回溯和重组。

上下文窗口只是展示面。真正的 Memory,是后台的调度能力。

这个比喻真正改变人的地方在于,它把“记忆”从一个内容问题,重新改写成了一个资源问题。不是过去在不在,而是过去何时被调入、以什么形态被调入、又在什么时候被换出。这才是它像操作系统的地方。

把产品名和框架名先放到一边,今天的 Agent Memory 大致可以归纳为五种更本质的架构哲学。

文件驱动:把记忆写成可见、可编辑、可审计的外部文本。这条路线强调透明性、可干预性和可迁移性。它的优势是你能清楚看到系统到底“记住了什么”;代价则是它更接近显式知识管理,不天然擅长自动演化。

图谱驱动:把记忆组织成随时间变化的关系网络。它的重点不在存文本,而在组织实体、关系、状态变化和时间有效性。它特别适合处理“同一个对象在不同时期状态不同”这类问题,但实现复杂度也更高。

混合存储驱动:用向量、图、KV 或其他结构联合承载不同性质的记忆。这条路线的直觉是:没有一种单一存储结构能同时兼顾召回、关系推理、时间变化和快速注入,所以必须分工。

策略学习驱动:让系统直接学习记忆管理策略。重点不再是“怎么存”,而是“何时记、记什么、何时忘、如何改写”。这意味着手工启发式规则,正在慢慢被可学习的管理策略替代。

技能蒸馏驱动:把记忆的终点设为可复用能力。这条路线最激进,也最有上限。它不满足于让系统“记得过去”,而是希望系统从过去里长出技能。但它也最危险,因为一旦蒸馏出错,系统固化下来的就不是能力,而是高效率地重复错误。补充一句,这个已经被社区玩烂了,比如最近出现的各种名人、同事蒸馏…

实现不同对应的信念也就不同,比如:

所谓架构哲学,本质上不是技术选型,而是你认为什么东西才配被叫做记忆

图片

如果只看存储、检索、摘要和技能化,会以为 Memory 的核心问题是技术实现。再往下一层,它真正难的地方是治理

治理层处理的不是“怎么把信息拿进来”,而是:这条记忆从哪来?是原话、摘要还是推断?新旧信息冲突时谁覆盖谁?用户要求删除时哪些派生物要连带失效?哪些敏感信息不能跨场景带出?哪些内容只是系统猜测,不能伪装成事实?

也就是说,治理层真正管理的是:来源、权限、生命周期、置信度、影响范围和可撤销性。

这也是为什么说 Memory 更像操作系统,而不是数据库。数据库关心的是数据在不在。操作系统关心的是资源如何被调度、隔离、继承、回收、审计和控制。而成熟的 Memory 系统,最终面对的恰恰就是后者。

没有治理层的 Memory,很容易从“连续性来源”变成“污染源”——混淆原话和推断、混淆历史事实和当前状态、混淆私人上下文和可跨任务带出的长期知识。

所以真正成熟的 Memory,不只是“能记住”,而是“知道自己记住的是什么、记错了什么、该删掉什么、什么不该越界”。

Memory 的高级形态,不是更会存,而是更会治理。

当多个 Agent 协作时,难度再上一个量级。问题不再只是“记住什么”,而是:谁能看到什么?谁能修改什么?谁知道谁知道什么?一个 Agent 的误记忆会不会污染整个协作网络?

这已经很像分布式系统的经典问题。多 Agent 时代的 Memory,不只是“大家共用一个库”,而更像一套社会性安排:谁拥有经验,谁拥有解释权,谁对哪部分过去负责。Memory 不再只是个体连续性的基础,也变成了组织协调能力的基础。

真正难的,不是共享,而是在共享中维持边界、追溯和一致性

所以多 Agent 记忆的难点,不是把东西放到同一个地方,而是让不同主体对同一段过去形成可以协商、可以隔离、可以追责的访问结构。

Memory 很容易让人产生错觉——系统偶尔表现出“记得我”,我们就误以为它具备了长期稳定性。真正严肃的评估远比这复杂。评估一个 Memory 系统,至少要问几件事:

所以 Memory 的评估,不应只测“能否想起”,还要测:能否记对,能否记稳,能否有边界地记,更重要的是,能否在该忘的时候忘掉。

这也是为什么很多系统在 demo 里看起来很聪明,在长期协作里却很快露怯。短时“记得你一句话”很容易;长期在变化、冲突、例外和失效中仍然保持一致,才是真正的难点。

过去几年,Agent Memory 大致经历了三种演进:从上下文压缩与历史保存,到外部存储与检索增强,再到对记忆策略本身的显式建模和学习。

但走到最后,真正重要的判断其实只有一个:长上下文不是记忆,检索增强不是记忆,聊天历史也不是记忆。

真正的 Memory,处理的不是“怎么保存过去”,而是过去如何进入现在,并且不毁掉未来。

所以它最难的,从来不是容量,而是判断:留下什么,删掉什么,相信什么,又允许什么继续影响现在。

记忆不是存档,是时间中的状态治理。它的终点,也不是“记得”,而是会了。

如果再进一步,可能就是会自我进化的系统了,大概长这样:

图片

最后,再推荐几个和记忆存储相关的项目,供大家学习参考:

[1]

Hermes Agent:https://github.com/NousResearch/hermes-agent

[2]

OpenClaw:https://github.com/openclaw/openclaw

[3]

Cognitive Architectures for Language Agents:https://arxiv.org/abs/2309.02427

[4]

Generative Agents:https://arxiv.org/abs/2304.03442

[5]

HippoRAG:https://arxiv.org/abs/2405.14831

[6]

Letta:https://github.com/letta-ai/letta

[7]

Reflexion:https://arxiv.org/abs/2303.11366

[8]

ExpeL:https://arxiv.org/abs/2308.10144

[9]

ReMe:https://github.com/agentscope-ai/ReMe

[10]

MemGPT:https://arxiv.org/abs/2310.08560

[11]

LLM-Wiki:https://gist.github.com/karpathy/442a6bfe9891c11519de94f

[12]

gstack:https://github.com/garrytan/gstack

[13]

GBrain:https://github.com/garrytan/gbrain

[14]

MemPalace:https://github.com/MemPalace/mempalace

小讯
上一篇 2026-04-14 22:43
下一篇 2026-04-14 22:41

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/258421.html