Agent 记忆真正难的,不是存起来

Agent 记忆像账房
小白先读
先别管那些论文名词。
把 Agent 当成一个替你办事的人。
今天,你叫它帮你改代码。它看了文件,跑了测试,记下哪里错了。
明天,你又叫它接着干。麻烦来了。
它若什么都不记,就像新来的伙计,昨日的账一笔不认。
它若什么都往脑子里塞,又像桌上堆满旧纸,真要用那张,反倒翻不出来。
Agent 记忆要办的事,就夹在这两头中间:
该记的记下,旧账理清,临场只递有用那几张。
所以记忆系统不是仓库。它更像账房、库吏、军师合在一处。它要收账,要理账,还要临阵递账。
换成论文话,才是下面这几句。
Agent 记忆的头一桩,不是向量库,也不是知识图谱。
头一桩是:历史在外头越长越杂,模型眼前只容一小撮。
总矛盾就一句:
过去不断生长,当下只能择要。
往下拆,有六个关口:
1.来源:什么该进来,什么该丢在门外。
2.抽取:原文、摘要、结构化事实,哪样更经用。
3.管理:新记忆怎么进,旧证据怎么留。
4.形态:文本、向量、图、参数,哪种担哪份差。
5.检索:相似不等于有用,找得近还要找得准。
6.注入:给少了不够,给多了添乱。
再横着看,场景也分主次。个性化要记人,编程要记工程现场,网页 Agent 要记状态变化,多 Agent 要记谁说了什么、谁该担责。
最后还得落到实践。换模型,换 prompt,换任务,主次都会动。跑得住,才算真有记忆。
目录
1.小白先读:先把账本这个比方看懂。
2.术语小抄:先把黑话翻成人话。
3.先抓总矛盾:历史在外头长,推理在眼前收。
4.六个关口:来源、抽取、管理、形态、检索、注入。
5.三种功能:事实、经验、工作。
6.方法地图:各篇论文到底抓住哪一头。
7.设计办法:先问场景,再定架构。
8.最后一句:分类帮人看路,实践替人验货。
读法也简单。
赶时间,读"小白先读",再看"论文为什么各有做法"。
做系统,读"来源"到"注入"那几节。
写方案,读"怎么按主次设计"和"场景是总裁判"。
术语小抄
| 论文话 | 先这么理解 |
|---|---|
| Agent | 会调用工具办事的小助理 |
| prompt / context | 临上场前塞到它手里的纸 |
| token | 纸上能写下的字数 |
| 向量库 | 按相似味道找旧纸的抽屉 |
| 知识图谱 | 把人、事、物、关系画成一张网 |
| 检索 | 从旧账里翻几条出来 |
| 注入 | 把翻出来的旧账递给模型 |
| 长期记忆 | 下次还要认的旧账 |
| 工作记忆 | 眼下这件事的桌面 |
看完这张小抄,再往下读,就不必怕名词。凡是遇见新词,都往这张桌上放。
正文
近来读 Agent 记忆论文,越读越觉得,许多争论一开头就跑偏了。
有人问:该用向量库,还是知识图谱?
有人问:记忆该放 prompt 里,还是放外部库里?
有人问:该做短期记忆,还是长期记忆?
这些都要问。
只是不能先问。
先问这些,像一进门就争锅碗瓢盆,倒忘了今日要做什么饭。
Agent 记忆系统的头一桩,不是"存在哪里"。也不是"取回几条"。
头一桩是:过去不断长出来,眼下只能用一小撮。
Agent 一路行动,一路留下东西:用户说过的话,工具回来的结果,网页当前状态,代码改动,测试失败,计划草稿,自我反省,成功经验,失败路数。越干越多,越多越杂,越杂越旧。
可模型临场推理时,只能吃下一段上下文。哪怕上下文窗口变长,也不是万事大吉。长了,噪声也长。旧账、新账、闲话、证据一齐涌来,模型反倒眼花。
这就是总矛盾:
历史在外头生长,推理在当下收束。

Agent 记忆系统的总矛盾
一头要全,一头要省。
一头要保真,一头要好用。
一头要随时更新,一头又不能把旧证据抹掉。
抓住这根绳,后面才好说。
《Memory in the LLM Era》把记忆系统拆成四环:抽取、管理、存储、检索。又把十种代表方法放到 LOCOMO 和 LONGMEMEVAL 上同场比较。结论很有意思:没有一种方法通吃。高分方法常常更费 token,省 token 方法又常丢准头。上下文从 50% 拉到 200%,多数方法一路掉分。问题不再只是"找不找得到",而是"能不能在一堆旧账闲话里压住噪声"。
《Memory in the Age of AI Agents》换了个角度,把记忆分成三轴:形式、功能、动态。
形式问:记忆靠什么承载?是明文 token,是参数,是隐状态?
功能问:记忆拿来干什么?是记事实,是学经验,还是维持眼下工作区?
动态问:记忆怎么生、怎么变、怎么取?
两篇放在一起看,就清楚了。
前一篇像流水线。后一篇像地图。
流水线告诉你一条记忆从哪里进来,怎样加工,怎样取出去。地图告诉你这条记忆究竟是什么东西,为谁服务,能活多久。
真正写系统,要把两张图叠起来看。
一、总矛盾下面,还有一串小矛盾
总矛盾不是一句空话。
它往下落,就落成六个关口:

Agent 记忆系统的六个关口
从哪里来 ↓抽成什么样 ↓怎么演化和管理 ↓放成什么形态 ↓怎么检索 ↓怎么注入
每个关口里头,都有自己的主要矛盾。
这也是为什么论文会分出许多路数。
不是大家乱写。
是每个人抓住了不同关口里的不同领头矛盾。
看长对话的人,盯的是用户事实、偏好、承诺、改口。
看软件工程的人,盯的是补丁原因、测试失败、工具轨迹、仓库约束。
看网页和 GUI Agent 的人,盯的是页面状态、观察摘要、动作后果。
看多模态的人,盯的是图像、视频、传感器和时间片。
看自我进化的人,盯的是失败经验怎样化成策略,策略怎样化成技能。
问题不同,主矛盾就不同。
主矛盾不同,方法自然不同。
先把几条路摆在桌上。
| 方法 | 抓住哪一处 | 具体做法 |
|---|---|---|
| MemoryBank | 用户事实怎样积累、衰减 | 留历史,炼用户画像,用遗忘曲线调权重 |
| MemoChat | 长对话怎样少花 token | 训练模型写 memo,再取 memo 回答 |
| MemGPT | 上下文满了怎么办 | 把主上下文当内存,把外部库当磁盘,让模型自己调页 |
| Mem0 / Mem0g | 对话事实怎样变成可取条目 | Mem0 抽摘要和事实;Mem0g 抽实体、关系、时间 |
| A-MEM | 零散记忆怎样连起来 | 写成卡片,带关键词、标签、向量,再反向更新旧卡 |
| Zep | 新旧事实怎样带时间 | Graphiti 建时间知识图谱,边上带版本和有效期 |
| MemTree | 平铺记忆怎样分层 | 新记忆按语义插进树里,叶子存细节,父节点存摘要 |
| MemoryOS | 短中长期怎样迁移 | 短期 FIFO,中期分页,长期靠热度晋升 |
| MemOS | 明文、激活、参数怎样统一 | 用 MemCube 包住内容、来源、版本,再调度、迁移、融合 |
| Memory-R1 | 写入规则能不能学出来 | 训练 ADD、UPDATE、DELETE、NOOP 四个动作 |
| MemAgent | 长流怎样压进小窗口 | 一段段读文档,每步重写固定长度记忆 |
| ReasoningBank | 经验怎样长成本事 | 从成败轨迹里炼策略和避坑条目,再取回来用 |
这么看,论文不是散的。
它们各自抓住一处绳结。
有的抓来源,有的抓形态,有的抓更新,有的抓检索,有的抓注入。
二、记忆从哪里来:主矛盾是"未来效用"
第一关,记忆从哪里来。
来源太多。
用户聊天是一处。系统消息是一处。工具结果是一处。网页 DOM、GUI 截图、代码 diff、测试日志、终端输出、文件目录、PR 评论,也都是一处。多 Agent 系统里,别的 Agent 说过什么、做过什么,也能进来。视频、语音、传感器流,又是一路。
这一关的主要矛盾,不是"能不能全收"。
全收最容易。
难的是:哪一类东西真会改变往后行动?
不会改行动的,收了只是添乱。
会改行动的,漏了就要出错。
个人助手里,用户事实管全局。姓名、偏好、禁忌、日程、地点、长期目标,少一条,答话就变味。
企业助手里,环境事实管全局。文档版本、权限边界、客户状态、业务规则,少一条,动作就越界。
代码 Agent 里,经验轨迹管全局。为什么改这个文件,哪条测试红了,哪次修法失败,哪条约束不能碰,少一条,就会绕回旧坑。
长任务里,工作记忆管全局。当前计划、未完成子任务、已验证证据、待查假设,少一条,任务就断线。
多模态场景里,观察事实管全局。视频里某个物体何时出现,GUI 上按钮现在在哪儿,导航中哪条路走过,少一条,Agent 就像闭眼摸路。
所以来源这一关,要先问:
哪类信息不进记忆,后面的行动就办不成?
答出来,来源主次就分出来了。
这也解释了论文版图。MemoryBank、Mem0 这一路多从对话里抽用户事实。AMA-Bench 这类盯 agentic trajectory,因为 Agent 真干活时,轨迹里藏着因果。软件工程 memory 关心 repo、测试、diff、issue,因为这些才会改变下一次修复。多模态记忆关心帧、对象、空间状态,因为文字摘要常不够。
MemoryCode 这类编码评测说得更直白。模型单看一条指令能做,塞进一百轮办公闲聊和改口里,准头就大跌。这里要记的不是"聊天内容",而是未来要执行的 pivot instruction。谁改了需求,谁废了旧约束,谁埋下一条日后才用的编码要求,这些才是主。
MEMTRACK 又换一副场面。Slack、Linear、Git 事件交叉来,时间线里有噪声,也有冲突。它发现 Zep、Mem0 这类后端并不自动救场。为什么?来源主次没分好,取回一堆相似片段,还不等于知道哪个事件管现在这件事。
AMA-Bench 再往 agentic trajectory 上推一步。Agent 自己观察、调用工具、失败、回滚、再试。这里的主矛盾不是"用户说了什么",而是"哪一步造成了后果"。所以 AMA-Agent 用因果图和工具辅助检索,不只靠相似句子。
同叫记忆,入口不一样。
入口一错,后面全是错账。
三、抽成什么样:主矛盾是"保真"和"可操作"
第二关,记忆获取成什么样。
同一段历史,可以化成许多样子。
可以原封不动留一段 raw log。
可以压成摘要。
可以抽成关键词、标签、用户画像。
可以拆成实体、关系、三元组。
可以写成一条事件链。
可以存成一个 case:当时目标是什么,走了哪几步,哪里成了,哪里败了。
可以炼成一条策略:遇到这种问题,先查哪儿,再试哪儿。
可以进一步化成技能:代码片段、函数、脚本、API 调用、MCP 工具。
还可以不显出来,压进 latent token、embedding、KV cache、LoRA 片段、参数模块。
这一关的主要矛盾,是保真和可操作。
原文最真,却难用。
摘要好用,却会漏。
三元组清楚,却容易把语气、条件、时序削平。
事件链能保因果,却抽取麻烦。
策略轻巧,能迁移;抽错了,便成错方子。
技能最好用,能直接执行;可一旦封装过度,就看不见来龙去脉。
latent 记忆密度高,成本低,还不露明文;坏处也明白:人看不懂,错了难查。
所以不能笼统说"抽取"。
要先问:这段东西往后拿来干什么?
若为了个性化,抽用户画像、偏好、长期约束。
若为了事实问答,抽可核验事实,保留原文证据。
若为了多跳推理,抽实体关系,最好带时间。
若为了代码修复,抽失败原因、触发条件、验证命令、修改位置。
若为了自我进化,抽成 case、principle、workflow、skill。
若为了当前任务不掉线,抽成工作区状态、待办、已证实、未证实。
《Memory in the LLM Era》说抽取大体有三路:直接归档、摘要式抽取、图式抽取。直接归档保真,摘要节省,图式保关系。三者没有谁天然高一等。看的是场面。
直接归档这一路,MemGPT、MemoryBank、MemTree 都用。先把原始消息留下,往后再调页、合并、建树。它的准头在保真。坏处也在这里:原文多了,取错、塞多、位置偏,全会拖累模型。
摘要式抽取这一路,MemoChat、Mem0、A-MEM 都有影子。MemoChat 训练模型按"记下备忘、取回备忘、据此回答"走。Mem0 把对话里的事实和摘要写成可检索条目。A-MEM 更像记卡片:一张卡带上下文描述、关键词、标签、向量,再同旧卡片牵线。
图式抽取这一路,Mem0g、Zep 走得更远。它们要实体、关系、时间。用户搬家,不只是两句自然语言;要变成"用户-居住于-杭州",并标明新旧状态。业务里客户、合同、权限、工单互相牵扯,图就有用。
经验抽取又是另一套。ExpeL 存成功轨迹和 insight。ReasoningBank 从成功和失败里炼出 strategy item 和 trap warning。Memory-R1 不先写死规则,而是让模型学会 ADD、UPDATE、DELETE、NOOP。它们都在抓一个事:过去的行动怎样变成将来能用的手艺。
闲谈偏好,用摘要和用户事实就够。
代码因果,只靠摘要就薄。
长期人物关系,图式会占便宜。
当前任务状态,结构化 scratchpad 更合手。
这就是抽取这一环里的主次。
四、记忆怎么演化:主矛盾是"更新"和"不毁证据"
第三关,记忆怎么变。
记忆不是写进去就完。
它会重复,会冲突,会过期,会升格,也会腐烂。
《Memory in the LLM Era》把管理拆成五件事:连接、整合、层级迁移、更新、过滤。
连接,是把相关经历牵上线。
整合,是把碎片揉成段、揉成主题、揉成画像。
迁移,是把短期推到中期,再把常用、重要、反复出现的推到长期。
更新,是处理新旧冲突。
过滤,是把没用、重复、过期的压下去。
这一关的主要矛盾,是更新和不毁证据。
用户昨天说"我住上海",今天说"我搬杭州了"。若直接覆盖,上海这条旧事实没了。若两条一并放出,模型答话就乱。
正确做法不是乱删。
要标时间,标状态,标适用范围。杭州是现址,上海是旧址。旧址不能拿来推荐本地餐馆,却能解释过去订单。
代码里也一样。
某次 patch 失败,不该删。它眼下没用,往后也许能提醒 Agent 别再走那条路。某个测试曾经红,后来绿了。红的证据不该盖掉,应该标成"已解决"。某条架构约束,若后来变了,也要留版本。
记忆系统最怕两种极端。
一种是死账本。什么都留,什么都不改。越用越乱。
一种是活橡皮。新话一来就抹旧话。越用越薄。
好系统要像账房。
旧账归档,新账生效;凭证还在,状态分明。
这也是不同方法分路的地方。
规则更新稳。MemoryOS 这一路靠分层、FIFO、热度、规则迁移,模型肩上的活少些。
LLM 更新灵。MemTree、Zep 这类让模型合并、总结、消解冲突,表达能力强些,也多一分不稳。
Agent 自主管理更自由。MemGPT、MemOS 这类让 Agent 调工具管理记忆,能应付复杂场面,候选一多,也容易工具调用失败、索引打架。
再细看,管理也有五种手法。
连接,是 A-MEM 的要害。新卡片来了,不孤零零放着,要同旧卡片按语义相似连边。往后取一张,可以牵出一串。
整合,是 MemoryBank、MemoChat 的要害。日常闲谈不必条条原封不动进库,合成事件摘要、主题备忘、用户画像,才省地方。
迁移,是 MemGPT、MemoryOS 的要害。MemGPT 把主上下文和外部存储分开,让模型自己调页。MemoryOS 写得更死:短期队列满了,整段对话按 FIFO 推到中期;中期里访问多、近来常用的,再升到长期。
更新,是 Zep、Memory-R1 的要害。Zep 不只覆盖事实,而是给关系加时间版本。Memory-R1 把更新拆成四个动作:加、改、删、不动。它的野心,是把记忆管理从人工规则改成可训练策略。
过滤,是 Mem0、MemoryBank、MemoryOS 的要害。重复的、过期的、不常用的,都要压下去。只是过滤也有刀口。该删的是噪声,不该删的是证据。
所以管理这一环,不是越智能越好。
该写死的,写成制度。
该交给模型判断的,再交给模型。
五、记忆放成什么形态:主矛盾是"看得见"和"跑得动"
第四关,记忆用什么承载。
《Memory in the Age of AI Agents》把形式分成三大类:token-level、parametric、latent。
这三类不是名词游戏。它们各有脾气。
Token-level 记忆,就是明文、条目、文档、图谱、表、树、文件、代码这些看得见的东西。
好处是可查、可改、可审计。出了错,能翻出来看。要删除,能删。要加权限,能加。高风险场景、企业场景、个人偏好、代码仓库,多半离不开它。
坏处是占上下文,费检索,容易噪声堆积。
Token-level 里面还分三种。
平铺的一维记忆,像一串日志、一袋 chunks、一堆经验卡片。简单,便宜,久了会乱。
平面二维记忆,像图、树、表。关系立起来了,能做多跳和因果,维护成本也上来。
层级三维记忆,像短期、中期、长期,多层图,多层摘要。能管粒度,也容易在层层汇总里丢细节。
Parametric 记忆,藏在参数里。
它适合长期规则、风格、领域知识、通用技能。用起来不必每次检索,推理时顺手就带出来。
坏处是难改,难审计。今天用户改了偏好,你不能为他重训一遍模型。某条知识错了,改参数还可能牵动旁的知识。
所以参数记忆适合"常年不变、处处可用"的东西,不适合"某用户刚说、明天可能变"的东西。
Latent 记忆,藏在隐状态、embedding、KV cache、soft token 里。
它密,快,省,有时还更护隐私。长视频、长文档、多模态流、在线推理,都喜欢它。
坏处是看不清。压缩错了,人难查。反复读写,还可能漂。
所以形态这一关的主矛盾,是看得见和跑得动。
要审计、要回滚、要解释,token-level 主。
要泛化、要风格、要稳定行为,parametric 主。
要高密度、低延迟、多模态,latent 主。
真正系统多半混用。
明文记事实,参数记本事,隐状态记眼前。
MemOS 就是把这三样摆到一张桌上。它把明文记忆、激活记忆、参数记忆都包成 MemCube。每个 MemCube 带内容,也带来源、版本、访问记录。能组合,能迁移,能融合。说白了,它不想再让"向量库、KV cache、微调权重"各唱各的,而是想用一套调度制度管起来。
MemAgent 走另一边。它不建外部库,也不求可审计。长文档一段一段进来,模型每看一段,就把固定长度记忆重写一遍。内存不涨,成本按线性走。这个法子适合长流阅读,主矛盾是压缩和吞吐;不适合要查证据、要回滚的企业记忆。
Memanto 又是一条反路。它不追图谱复杂度,而是用十几类 typed semantic memory 先把写入卡住,再用低延迟语义检索取回。它抓住的是生产系统里的主矛盾:不一定要图最漂亮,要快、稳、可控。
各司其职,别拿一把刀切所有菜。
六、记忆怎么检索:主矛盾是"相似"和"有用"
第五关,怎么检索。
这是最容易误会的一关。
许多系统把检索当成向量 top-k。
可相似不等于有用。
用户问:"我上次订的是哪家酒店?"相似检索多半够。
用户问:"为什么上次修这个 bug 没修成?"只找相似句子就不够。要看时间,要看动作前后,要看工具返回,要看测试怎么红,要看哪一步把事情带歪。
检索这一环的主要矛盾,是相似和有用。
《Memory in the LLM Era》把检索分四路。
字面检索,靠 BM25、关键词、Jaccard。找名字、路径、错误码、函数名,很好用。
向量检索,靠语义相似。找近义表达、偏好、主题、摘要,方便。
结构检索,靠图遍历、树搜索、层级展开。找因果、关系、多跳、时间线,更合适。
LLM 辅助检索,让模型改写查询、抽实体、拆问题、选检索路。复杂问题里有用,但也更费。
固定一路检索,迟早会脆。
名字要字面。
偏好要语义。
因果要结构。
多步任务要路由。
过期事实要看状态。
多模态要看视觉对象、时间段、空间位置。
所以未来更要紧的,不是再争 BM25 和 embedding 谁赢。
而是检索路由:这一次问题,到底该走哪一路?
论文里新三层方案也是这个意思。短期记忆整体取,保证眼前不断;中期记忆用向量找高层语义,又用树搜索摸到底层原文;长期记忆再走向量。不同层级,不同取法。
RMM 把这事往后又推一步。它先建多粒度记忆,按 utterance、turn、session 分层;再用 retrospective reflection 做在线检索修正。取错了,就看引用归因,反过来调检索。它抓的主矛盾不是"写得够不够",而是"取出来的证据准不准"。
ACON 抓的是注入前那一步压缩。它不满足于手写摘要规则,而是拿"全上下文能成、压缩后失败"的轨迹来复盘,让强模型改压缩指南,再蒸馏给小模型。这里的主矛盾是:删什么不坏事,留什么才救命。
Memanto 把检索做得更像生产工程。它用 typed schema 限制写入,再用 information-theoretic search 做一次低延迟取回。它不追多轮图遍历,追的是一次查询能不能把要紧事实捞上来。
《Memory in the LLM Era》的教训也在这里。Zep 在 LONGMEMEVAL 上跑不完两天,被排除出部分实验。图结构强,不代表工程上一定合算。检索的主矛盾,常常是准头、延迟、成本三者一起算。
这才像系统。
不是一只筷子夹遍全席。
七、记忆怎么注入:主矛盾是"给够"和"别扰乱"
检索出来,还没完。
还要注入。
这一步常被轻看。其实很要命。
取回十条记忆,怎么放进 prompt?放在系统消息,还是用户消息前?按时间排,按轻重排,还是按冲突状态排?摘要在前,原文在后,还是原文只作证据?旧事实和新事实并存时,要不要标谁生效?
这一环的主要矛盾,是给够和别扰乱。
给少了,模型断线。
给多了,模型眼花。
给错顺序,近事压旧事。
给错格式,模型不知哪条该信。
给错粒度,模型还要自己拼图。
注入也有许多变体。
最粗的是直接拼接:把相关片段塞进上下文。快,简单,也最容易噪声大。
稳一点的是结构化注入:用户事实一栏,任务约束一栏,相关证据一栏,过期事实一栏,待验证假设一栏。模型一眼看出层次。
再细一点,是分层注入:短期上下文给全,中期摘要给主题,长期偏好给稳定约束,原始证据只在需要时展开。
再往里走,是隐式注入:soft prompt、memory token、KV cache、adapter、LoRA 片段。它不占明文上下文,效率好,可解释性差。
工具型 Agent 还有一种注入:不是把记忆写成话,而是把记忆变成可调用技能。比如把一次成功流程沉淀成脚本,把工具经验沉淀成 API 说明,把领域套路沉淀成 MCP 工具。此时注入的不是"一段文字",而是"一项能力"。
ReasoningBank 就偏这一面。它不把旧轨迹整段塞回来,而是炼成可迁移的推理策略和避坑提醒。新任务来,先取几条策略,再让 Agent 动手。对 web 和 SWE 这类任务,"上次哪里绕弯了"比"上次完整聊天记录"更有用。
ExpeL 是早一辈做法。它存成功轨迹,也抽 insight。新任务来,把相近轨迹当 few-shot,再把 insight 放进上下文。好处是简单,坏处是失败教训用得不够,经验池大了也会乱。
Memory-R1 的注入更像一套小账簿。它先让 Memory Manager 整理外部库,再让 Answer Agent 选 top-k 记忆回答。它把"写"和"用"拆开训练,说明注入不是最后一铲土,而是前面写库时就该想到的事。
注入还有时间节奏。
有的任务只在开头取一次,像带一张地图出门。
有的任务中途按需取,像走到岔路再问路。
有的任务每一步都更新工作区,像行军时不断报号。
没有哪种永远最好。
任务短,开头注入够了。
任务长,得间歇检索。
环境变化快,得连续刷新。
一旦注入失手,前面做得再好也白费。
金子取出来,塞进模型眼前时弄成一团泥,照样没用。
八、三种功能,三套主矛盾
到这里,还要再横着看一遍。
记忆不是为"记住"而记住。
《Memory in the Age of AI Agents》把功能分成三类:事实记忆、经验记忆、工作记忆。
这三类各有主矛盾。
事实记忆问:Agent 知道什么?
它管用户偏好、环境状态、历史承诺、文档事实。主矛盾是稳定和变化。稳定了,才有一致性;能变,才不说旧话。用户事实要能更新,环境事实要能对齐,旧事实要能退场。
经验记忆问:Agent 怎样变强?
它管成功案例、失败轨迹、反省、策略、技能。主矛盾是具体和抽象。具体案例有证据,迁移差;抽象原则能迁移,容易空。好的经验记忆,要从 case 到 strategy,再到 skill。先有原始轨迹,再有反省,再有可复用套路,最后才有可执行工具。
工作记忆问:Agent 眼下想着什么?
它管当前目标、计划、约束、中间结果、未完成项。主矛盾是聚焦和连续。太聚焦,丢历史;太连续,噪声淹没当前。长任务里,工作记忆要不断折叠:把旧观察压成状态,把中间结论写成报告,把计划改成清单,把无关分支剪掉。
这三类不能混。
把事实记忆当经验记忆,Agent 只会背资料,不会长本事。
把经验记忆当事实记忆,Agent 会把一次偶然成功当铁律。
把工作记忆当长期记忆,库里全是临时草稿。
把长期事实塞满工作区,模型眼前全是老黄历。
所以做系统时,先分功能,再选形式,再定流水线。
问清楚:“这条记忆是事实、经验,还是工作状态?”
这比问"用不用图"更靠前。
九、论文为什么各有做法

Agent 记忆论文的方法地图
现在再看各路方法,就不乱了。
MemoryBank 像一本用户账。它留历史,也炼用户画像,还用遗忘曲线调记忆强度。它抓的是事实记忆里的矛盾:用户画像要稳,又不能老。今天还爱吃辣,明天胃不好了,系统就得改口。
MemoChat 像按主题写备忘。它训练模型走三步:先写 memo,再取 memo,最后据 memo 回答。它抓的是长对话里的轻量问题:不求把所有细节重建出来,只求少花 token 还能保持一致。
Mem0 是生产长期记忆层。它把对话里有用事实抽出来,存成可检索条目,背后多用向量检索、摘要、更新和过滤。它抓的是"事实能不能被下一次快速捞出来"。Mem0g 往图上走,把实体关系也抽出来,试图补上多跳关系和时间更新。
A-MEM 把记忆写成卡片。新卡片带上下文、关键词、标签、向量,还同旧卡按相似度连线。新卡也能反过来改旧卡。它抓的是"孤立条目怎么长成网络"。这很像做笔记:一张纸不值钱,纸和纸之间的线才值钱。
Zep 用 Graphiti 做时间知识图谱。实体是点,关系是边,边上带时间和版本。它抓的是"什么在什么时候为真"。企业系统里,这个很要紧。合同状态、客户归属、权限边界,不带时间就会出错。
MemGPT 借操作系统的比方。主上下文是快内存,外部存储是慢磁盘;模型通过函数调用自己查、自己写、自己把东西挪进挪出。它抓的是"谁来管上下文"。让模型自己管,灵活;模型一犹豫,记忆函数就漏调。
MemoryOS 也借 OS,但更像写了制度。短期是 FIFO 队列,中期是对话链和分页,长期靠访问频率和近因热度晋升。它抓的是"迁移规则"。少让模型自由发挥,多用明规矩托底。
MemTree 把长记忆长成树。叶子细,父节点粗;新记忆按语义插进去,祖先摘要跟着更新。它抓的是"粒度"。只取叶子,太碎;只取根,太粗。树就是想在粗细之间搭梯子。
MemOS 走得更大。它把明文、KV cache、参数都纳入一套记忆 OS,用 MemCube 包住内容和元数据,再调度、迁移、融合。它抓的是"多种记忆形态怎么统一"。这个方向雄心大,工程代价也大。
Memory-R1 把记忆管理改成可训练动作。ADD、UPDATE、DELETE、NOOP 四个动词,看着朴素,正好打中更新矛盾。它不只问"该取什么",还问"该写什么、改什么、删什么、不动什么"。
MemAgent 不管外部库,管窗口。长文档一段一段来,每段之后重写固定长度记忆。它抓的是"无限长输入怎么压进有限上下文"。这一路适合长文档流,不适合要审计、要引用原证据的场景。
RMM 抓检索后悔。先建多粒度记忆,再用回看机制修正检索。它关心的不是记忆有没有存,而是答案到底引用了哪条证据,错了怎么改检索。
ACON 抓压缩规矩。它拿失败轨迹来教压缩器:哪些观察不能删,哪些历史可以压,哪些格式会误导模型。它说明一件事:压缩不是越短越好,是删了还不坏事。
ReasoningBank 抓经验升级。它不满足于存成功样例,还把失败也拿来炼"避坑条"。新任务来,取回的是策略,不是整段旧轨迹。它抓的是经验记忆里的主矛盾:具体案例要升成可迁移方法。
《Memory in the LLM Era》最后提出的新三层混合方案,正是这套主次逻辑的一个缩影。它借 MemoryOS 的三层:短期 FIFO 接住新消息,中期承接语义段,长期收纳高热记忆。又借 MemTree 的树:中期记忆既有摘要节点,也能摸回底层原文。检索时,短期全取,中期向量加树搜索,长期向量取。它在 LOCOMO 和 LONGMEMEVAL 上打到最好,平均每轮 token 成本还压到 450 以下。
这说明一件事:强方法往往不是押中某个单点,而是抓住了多个关口的主要矛盾。
来源上不乱收。
形态上不只平铺。
管理上有层次。
检索上分路。
注入上控粒度。
这才打得动长任务。
十、怎么按主次设计
真要做一个 Agent 记忆系统,别先开库。
先问任务。
第一问:这 Agent 靠什么活?
若靠个性化活,用户事实是主。
若靠解决任务活,经验记忆是主。
若靠长程执行活,工作记忆是主。
若靠环境交互活,环境事实是主。
若靠多 Agent 协作活,共享状态和权限边界是主。
第二问:这条记忆从哪里来?
来自用户,还是来自工具?来自环境,还是来自模型自评?来自一次任务,还是跨任务积累?来自文字,还是图像、视频、GUI?
第三问:它该成什么样?
要原文,要摘要,要事实,要图谱,要事件链,要案例,要策略,要技能,要隐状态,还是要参数?
第四问:它会不会变?
会变,就要时间、版本、状态。
会冲突,就要冲突消解。
会过期,就要衰减或归档。
会复用,就要升格。
第五问:它怎样取,怎样给模型?
字面取、向量取、结构取、LLM 取,还是路由后再取?
取回后,是明文塞进去,结构化塞进去,分层塞进去,还是隐式注入?
这几问答清楚,系统轮廓就出来了。
反过来,若一上来就说"我们用图数据库",多半还没想透。
图能解关系,不解所有问题。
向量能解相似,不解所有问题。
长上下文能多装,不会自动分轻重。
总结能省 token,也会偷走证据。
参数能记本事,不适合天天改用户偏好。
latent 能省,出了错难审。
每件工具都有用,也都有边界。
主次分不清,工具越多,系统越乱。
十一、场景是总裁判
说到底,记忆系统还是要服务场景。
离开场景谈记忆,越谈越玄。
个性化有个性化的记忆。
用户说不吃香菜,系统下回点菜要避开。用户喜欢短答,系统说话就别绕。用户换了城市,推荐、日程、提醒都要跟着换。这里的主矛盾,是偏好和事实怎样稳稳更新,怎样少打扰,怎样别把私事乱传。
MemoryBank、Mem0、Memory-R1 多在这块显身手。MemoryBank 靠用户画像和衰减,Mem0 靠事实条目和检索,Memory-R1 靠学习写、改、删。它们争的不是谁更像人脑,而是谁能把用户事实管得准。
编程有编程的记忆。
这回修 bug,Agent 要记住仓库结构、测试入口、失败日志、补丁思路、回滚原因。下回遇到相似问题,不是背一段聊天记录,而是拿出能用的经验:先跑哪条命令,别动哪个模块,哪个假设上次错了。这里的主矛盾,是经验怎样从轨迹里抽出来,怎样带证据,怎样能复用。
MemoryCode 把这个问题钉住了。单条编码指令,模型常能办;指令藏在多轮会话里,夹着闲话和改口,准头就掉。这里要记的是"将来要执行的约束",不是整段对话。
MEMTRACK 又把场景往企业里推。Slack、Linear、Git 交错成一条长时间线,里面有状态变更,也有互相打架的信号。它的结论刺人:单接 Zep、Mem0 这类记忆后端,并不必然提升。原因也明白。编程场景主矛盾常在跨平台状态跟踪和冲突消解,不在"多召回几条相似记忆"。
网页操作有网页操作的记忆。
页面会变,按钮会换,登录会过期。这里的主矛盾,是当前状态怎样保住,动作后果怎样接上。
ExpeL、ReasoningBank 这一支更贴近网页和软件任务。ExpeL 把成功轨迹和 insight 留下来。ReasoningBank 再进一步,连失败也炼成避坑策略。WebArena、Mind2Web、SWE-Bench 这类场景里,Agent 常输在同一个坑反复踩。此时记忆要像师傅在旁边提一句:“这路上回走过,不通。”
多模态有多模态的记忆。
视频、图像、语音、位置,不能全化成一句摘要。这里的主矛盾,是怎么压缩而不丢关键观察。
《Memory in the Age of AI Agents》把 Ego-LLaVA、MA-LMM、VideoAgent、Video-RAG、KARMA、Mem2Ego 这类放到多模态记忆里看。它们都在回答同一个问题:图像、视频、物体、地标、路线,哪些要变成文字,哪些要留成视觉或空间状态。若场景是导航,"我刚走过哪条路"比一句风景摘要要紧。若场景是长视频问答,人物何时出现、物体何时移动,比整段剧情概括要紧。
多 Agent 协作又不同。
谁知道什么,谁改过什么,谁有权限,哪条记忆能共享,哪条只能私有。这里的主矛盾,是共享和隔离。
共享记忆不是把所有人的笔记倒进一口锅。多 Agent 里,记忆还要带身份、权限、来源、责任。一个 Agent 的猜测,不能冒充团队共识;一个私有工具结果,也不能随手广播。这里的主矛盾,是协作效率和污染风险。
所以没有一套记忆架构能包打天下。
同样是用户偏好,陪伴助手要记得细,客服系统未必能记太久。
同样是代码轨迹,研究型 Agent 可以保留长日志,生产系统要有权限、脱敏和审计。
同样是摘要,有的模型吃得准,有的模型一见摘要就丢边界;有的模型能按结构化字段办事,有的模型偏爱自然语言;有的模型对长 prompt 还能稳住,有的模型后半截就像没看见。
模型对 prompt 的感知不一样。
这句话很要紧。
同一份记忆,换个模型,效果会变。
同一个模型,换个格式,效果也会变。
写成表格、写成 JSON、写成项目符号、写成叙述段、放在 system 里、放在用户消息前、放在工具结果后,都会变。
所以分类只能帮人看路,不能替人走路。
最后还得实践检验。
跑任务,看结果。改格式,看结果。换检索,看结果。调粒度,看结果。看它是否少犯旧错,是否省 token,是否答得稳,是否能解释,是否越用越贴场景。
能经得住任务,才算好记忆。
经不住,名词再漂亮,也只是纸上热闹。
十二、最后收一句
Agent 记忆系统的主要矛盾,是不断生长、不断变化的历史,和当下有限、脆弱的推理上下文之间的矛盾。
这矛盾往下分,就成了六个关口:
从哪里来,抽成什么样,怎么演化,放成什么形态,怎么检索,怎么注入。
每个关口里,都有主矛盾。
来源关口,看未来效用。
抽取关口,看保真和可操作。
管理关口,看更新和不毁证据。
形态关口,看看得见和跑得动。
检索关口,看相似和有用。
注入关口,看给够和别扰乱。
再横着看,事实记忆、经验记忆、工作记忆,又各有主矛盾。
这几层扣起来,才是 Agent 记忆系统的全貌。
记忆不是仓库。
也不是向量库。
也不是图谱。
也不是一段长 prompt。
真正的记忆,是把过去的事实、经验、状态,按当下任务重新拣出、改写、排好、送到模型手边。该留的留,该合的合,该升的升,该标旧的标旧。该给原文时给原文,该给摘要时给摘要,该给图时给图,该给技能时给技能。
做到了,Agent 才不只是"这次会答"。
它会接着上次往前走。
但这话还要加半句:往哪儿走,要看场景。
个性化走个性化的路。
编程走编程的路。
长对话、网页、多模态、多 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%免费】

更多推荐



所有评论(0)