FluxMem:当智能体的记忆不再是"死档案",而是一张活着的网
🎯 核心摘要
你有没有碰到过这种情况——给 Agent 接了一套记忆系统,结果它要么检索不到关键信息(欠连接),要么被一堆无关记忆淹没产生幻觉(过连接)?更烦的是,同样的错误它反复犯,完全没有"吃一堑长一智"的能力。
浙江大学 NLP 实验室联合阿里巴巴、MemTensor、同济大学提出了 FluxMem——一个把记忆建模为异构图并让其拓扑结构持续演化的框架。核心思路是把"记忆"从静态存储库变成一张活着的连接网络,通过三阶段演化(初始连接→反馈精炼→长期巩固)自适应地修复缺失链接、剪枝噪声、调整粒度,并把反复成功的经验蒸馏为可复用的"程序性电路"。在 LoCoMo(长对话推理)、Mind2Web(网页导航)、GAIA(通用助手)三个差异极大的基准上均达到 SOTA,其中 LoCoMo 上 95.06 分超越 Full Context 的 81.23 分近 14 个点。
我的判断:这篇论文的真正价值不在于某个单点技巧,而在于把认知科学中"记忆是连接性的动态演化"这个洞察系统性地工程化了。三阶段设计逻辑自洽,PEMS 指标的引入让记忆演化有了可量化的收敛判据。值得细读。
📖 论文信息
| 字段 | 内容 |
|---|---|
| 标题 | Rethinking Memory as Continuously Evolving Connectivity |
| arXiv | 2605.28773 |
| 作者 | Jizhan Fang, Buqiang Xu, Zhixian Wang, Haoliang Cao, Xinle Deng, Baohua Dong, Hangcheng Zhu, Ruohui Huang, Gang Yu, Ying Wei, Guozhou Zheng, Feiyu Xiong, Haofen Wang, Huajun Chen, Ningyu Zhang(通讯) |
| 机构 | 浙江大学、阿里巴巴集团、MemTensor、同济大学 |
| 日期 | 2026年5月27日 |
| 代码 | https://github.com/zjunlp/LightMem |
🧠 问题动机:静态记忆为什么不 work
先聊一个直觉。现在市面上的 Agent 记忆系统——Mem0、Zep、A-Mem、MemoryOS——它们的共同假设是什么?
记忆是一个仓库,你往里面存东西,需要的时候检索出来就行。
这个假设在简单场景下没问题。但一旦 Agent 需要长时间跨度地执行复杂任务,问题就来了:

图1:现有静态记忆系统的两大致命缺陷:连接不准确(关键链接缺失 or 噪声链接泛滥)+ 内容不灵活(粒度固定,无法自适应调整)
作者把问题归纳为两类失败:
失败一:连接不准确。 具体表现为两种极端—— - 欠连接:检索不精确导致关键信息被遗漏,Agent 缺乏必要上下文做出正确决策 - 过连接:不加区分地检索一堆相关记忆,引入噪声甚至诱发幻觉
失败二:内容粒度僵化。 现有系统用单一预定义的抽象级别来表示记忆单元。问题在于——有时候你需要的是一个高层概括("这类任务用 groupby 聚合"),有时候你需要的是具体的执行细节("对 CSV 文件先 pandas.read_csv,再 groupby('country').mean()")。固定粒度无法两全。
说实话,这两个问题我在做 RAG 增强的 Agent 时都碰到过。检索 top-k 太大就噪声爆炸,太小就漏掉关键信息。而且同一条经验,在不同任务场景下需要的抽象层次确实不一样。
🏗️ FluxMem 方法:让记忆像大脑一样"长"出来
FluxMem 的核心思想来自认知科学:记忆不是存储,是连接性的持续演化。
大脑的记忆系统做了两件事: 1. 为新信息生成新的神经元(单元层面) 2. 在共同激活的神经元之间建立突触连接,剪枝不相关的连接(连接层面)
FluxMem 把这个认知模型工程化为一个三层异构图 + 三阶段演化的框架。

图2:FluxMem 的三阶段架构。左:初始连接形成(语义/情景/程序性三层检索);中:反馈驱动的精炼循环(链接扩展、链接剪枝、节点重塑三种策略);右:离线长期巩固(聚类相似情景→归纳技能→PEMS 引导迭代演化)
三层记忆图:语义、情景、程序性
FluxMem 把记忆建模为异构图 \(\mathcal{G}=(\mathcal{V}, \mathcal{E})\),节点分三层:
| 层级 | 存什么 | 类比 |
|---|---|---|
| 语义知识层 \(\mathcal{V}_{sem}\) | 静态事实、文档 chunk、API 文档 | 教科书上的知识 |
| 情景经验层 \(\mathcal{V}_{epi}\) | 具体的状态-动作轨迹(调试日志、工具调用序列) | 你做过的每一次实验记录 |
| 程序性技能层 \(\mathcal{V}_{proc}\) | 蒸馏后的推理模板、多步规划启发式 | 你总结出的"套路" |
情景层是枢纽——它连接着静态知识(通过 \(\mathcal{E}_{ground}\) 边)和蒸馏技能(通过 \(\mathcal{E}_{distill}\) 边)。
这个设计的精巧之处在于:上下文构建 = 动态诱导子图。 每个时间步,系统根据当前观察从大图中"切"出一个局部子图 \(\mathcal{G}_t(q)\),序列化后就是 Agent 的工作上下文。优化上下文的问题就变成了对这个子图做拓扑编辑。
Stage I:初始连接形成
给定当前观察 \(o_t\),系统通过三路检索建立初始连接:
语义检索用了混合打分:
稠密向量 + 稀疏词汇 + LLM 验证,三路融合。这个组合在 RAG 领域已经是比较成熟的做法了,FluxMem 没有在检索本身上做太多创新,但把它嵌入到了更大的演化框架里。
情景检索用余弦相似度找最相关的历史轨迹,程序性继承则沿着已有的蒸馏边收集适用技能。
Stage II:反馈驱动的连接性精炼
这是我觉得这篇论文最有意思的部分。
Agent 执行完一步后,收到反馈 \(f_t\)(环境信号或自验证)。系统不是简单地"记住这次失败",而是诊断失败的根因属于连接级还是单元级,然后做针对性编辑:
连接级精炼: - Link Expand(治欠连接):缺关键信息?找到语义接近但未激活的节点,建立新边 - Link Prune(治过连接):上下文拥塞导致幻觉?识别干扰边并切断
单元级精炼: - Node Reshape(治粒度不匹配):检索到了正确的记忆节点,但抽象层次不对?自适应修改节点内容——要么展开更细粒度的执行细节,要么抽象冗余组件提升语义级别
这个精炼循环会一直跑,直到执行成功或达到预设轮次 \(T\)。
坦率讲,这个设计让我想到了人类做复杂任务时的思维过程——"这步失败了,是因为我缺了什么信息,还是信息太多干扰了判断,还是我理解的粒度不对?"FluxMem 把这种元认知能力形式化了。
Stage III:长期巩固——从经验到技能
任务完成后,轨迹作为情景节点存入 \(\mathcal{V}_{epi}\)。离线阶段做两件事:
- 聚类 + 技能归纳:基于语义相似度把情景聚成 \(M\) 个簇,对每个簇用 LLM 归纳出跨情景共享的推理模式,抽象为程序性技能节点
- PEMS 引导的迭代精炼:用一个统一指标评估技能质量
三个因子分别衡量: - \(\eta\):技能的实际成功率(有用性) - \(\log \ell\):技能文本长度的对数(简洁性,越短越好) - \(1-\delta\):与上一版本的嵌入差异(稳定性,变化越小说明越成熟)
PEMS 收敛时(\(\Delta\text{PEMS} \lt \epsilon\)),技能被认为达到成熟状态,停止演化。这个设计很实用——它给了你一个明确的停止信号,不会无限迭代浪费算力。
🧪 实验结果:三个完全不同的战场,全部拿下
LoCoMo:长对话记忆推理
这个基准测试的是 Agent 在超长对话(平均 588 轮、16618 tokens)中的记忆检索和推理能力。
| 方法 | Single Hop | Multi Hop | Temporal | Open Domain | AVG |
|---|---|---|---|---|---|
| Full Context | 87.99 | 80.50 | 71.03 | 58.33 | 81.23 |
| Zep | 66.90 | 53.70 | 60.20 | 43.80 | 61.60 |
| Mem0 | 71.40 | 68.20 | 56.90 | 47.90 | 66.30 |
| A-Mem | 77.41 | 61.35 | 71.03 | 50.00 | 71.43 |
| MemoryOS | 78.95 | 66.67 | 55.45 | 60.42 | 70.65 |
| EverMemOS | 96.67 | 91.84 | 89.72 | 76.04 | 93.05 |
| FluxMem | 95.95 | 93.26 | 95.64 | 90.62 | 95.06 |
几个值得注意的点:
-
FluxMem 的 95.06 分比 Full Context(把整个对话塞进去)高了近 14 个点。这说明"全量上下文"反而不如精准的记忆连接有效——信息太多也是一种噪声。
-
在 Open Domain 这个最难的子任务上,FluxMem 拿到 90.62,比第二名 EverMemOS 的 76.04 高了 14.58 个点。这个差距相当大了。
-
在 Qwen3-30B-A3B 这个小模型上,FluxMem 同样达到 93.44 分,远超 Full Context 的 74.87 和 LightMem 的 71.36。说明框架对底座模型的要求不高。
Mind2Web:真实网页导航
这是一个更接近实际应用的基准——Agent 需要在真实网站上完成多步操作任务。
| 方法 | Cross-Task SR | Cross-Website SR | Cross-Domain SR | AVG SR |
|---|---|---|---|---|
| No Memory | 2.8 | 1.1 | 0.7 | 1.1 |
| AWM | 3.6 | 1.1 | 1.0 | 1.5 |
| FluxMem (GPT-4.1-mini) | 8.1 | 7.9 | 4.3 | 5.5 |
| FluxMem (Gemini-2.5-flash) | 9.6 | 7.5 | 5.0 | 6.2 |
说实话,这些绝对数字看起来不高(最好也就 9.6%),但考虑到 Mind2Web 的难度(平均 1135 个 DOM 元素,需要 7.3 个动作),而且是在无手动元素过滤的现实设置下,FluxMem 相对 AWM 的提升是翻倍级别的。
GAIA:通用助手任务
GAIA 是一个综合性的 Agent 能力评测。FluxMem 作为记忆增强模块,搭载在 Flash-Searcher 框架上:
| 框架 | 模型 | Avg. | 提升 |
|---|---|---|---|
| Flash-Searcher | GPT-5-mini | 69.09 | - |
| MemEvolve | GPT-5-mini | 73.33 | +4.24 |
| FluxMem | GPT-5-mini | 76.36 | +7.27 |
| Flash-Searcher | Kimi K2 | 52.12 | - |
| MemEvolve | Kimi K2 | 61.21 | +9.09 |
| FluxMem | Kimi K2 | 64.85 | +12.73 |
在 Kimi K2 上 +12.73 个点的绝对提升,这个数字相当能打了。而且 FluxMem 在所有模型上都稳定优于 MemEvolve,说明框架的泛化性不错。
📊 消融实验:每个阶段到底贡献了什么

图3:(a)(b) LoCoMo 上的阶段消融——移除 Stage II 影响最大;(c) Mind2Web 消融——移除 Stage III 影响最大;(d) 精炼轮次 T 的边际效益递减;(e) PEMS 指标的收敛趋势
消融结果揭示了一个有趣的现象:不同类型的任务,瓶颈在不同的阶段。
- LoCoMo(记忆检索为主):移除 Stage II(反馈精炼)掉了约 10 个点,影响最大。因为这类任务的核心是"找到正确的记忆",精炼循环帮助修复检索错误。
- Mind2Web(复杂推理为主):移除 Stage III(长期巩固)让 Cross-Task SR 从 8.1% 暴跌到 3.2%。因为网页导航需要的是"套路"——蒸馏出的程序性技能比临时精炼更关键。
这个分化很合理。如果你的场景偏检索(客服、问答),Stage II 是核心;如果偏推理和规划(代码生成、多步操作),Stage III 更重要。
精炼轮次 \(T\) 的分析也值得关注:从 T=0 到 T=5,性能从 85.32% 提升到 95.06%,但 T=4 到 T=5 只涨了 0.54%。边际效益递减很明显,实际部署时 T=3 或 T=4 可能就够了。
🔬 案例研究:看看 FluxMem 到底怎么"活"起来的

图4:一个具体案例——Agent 需要从 CSV 中找出"每位运动员平均奖牌数最高"的国家。FluxMem 经历了工具调用失败→剪枝无效 API→扩展正确 API→发现技能粒度不匹配→重塑节点为更细粒度的统计聚合程序,最终成功。
这个案例把三种精炼策略都展示了:
- Step 1 失败:Agent 调用了 Spreadsheet Viewer API 来处理 CSV,环境返回"文件太大,渲染超时"
- Link Prune + Expand:剪掉 Spreadsheet Viewer 的连接,扩展到 Python Data Analysis API
- Step 2 失败:Agent 用 pandas groupby 做了聚合,但输出了"奖牌总数最多"而不是"平均奖牌数最高"。自验证发现错误
- Node Reshape:诊断出问题在于继承的"Tabular QA Skill"太粗粒度——它只支持"排名现有统计",不支持"组合派生指标"。系统用更细粒度的"Statistical Aggregation Skill"(groupby→derive metric→normalize→compare)替换
- Step 3 成功:正确执行
argmax(avg_medal)得到答案
这个过程确实像人类解决问题的方式——试错、归因、调整策略。
💡 我的判断
亮点
-
问题定义精准。把记忆系统的核心问题归结为"连接性",这个抽象层次恰到好处——既不会太高("记忆很重要"这种废话),也不会太低(纠结于某个检索算法的细节)。
-
三阶段设计逻辑自洽。Stage I 建立初始连接(快速但粗糙),Stage II 在线精炼(准确但局部),Stage III 离线巩固(全局但延迟)。这三个时间尺度的分工很清晰。
-
PEMS 指标的引入。给记忆演化一个可量化的收敛判据,这在工程上非常实用——你知道什么时候该停。
-
跨场景泛化。LoCoMo(对话记忆)、Mind2Web(网页操作)、GAIA(通用助手)三个差异极大的基准上都 work,说明框架的通用性不是吹的。
我的顾虑
-
计算开销没交代清楚。Stage II 的精炼循环需要反复调用 LLM 做诊断和编辑,Stage III 需要重跑所有源情景来验证技能。论文自己也承认了这个局限,但没给出具体的延迟和成本数据。在实际部署中,这可能是个大问题。
-
静态基准的局限。三个基准都是预收集的固定数据集,没有真正的"分布偏移"。FluxMem 声称能处理动态环境,但实验没有验证这一点。
-
超参数敏感性。精炼轮次 \(T\)、收敛阈值 \(\epsilon\)、top-k 等控制参数,论文没有做跨模型和跨领域的敏感性分析。在新场景下这些参数怎么调?
-
与 EverMemOS 的差距其实不大。在 LoCoMo 上,FluxMem(95.06)vs EverMemOS(93.05)只差 2 个点。考虑到 FluxMem 的复杂度明显更高,性价比需要打个问号。
工程启发
如果你在做 Agent 记忆系统,这篇论文有几个可以直接借鉴的思路:
- 把"检索失败"分类为欠连接和过连接,然后分别用扩展和剪枝来处理,比笼统地"优化检索"更有针对性
- 记忆粒度不是一成不变的——同一条经验在不同场景下需要不同的抽象层次,Node Reshape 这个操作值得实现
- 技能蒸馏 + 收敛判据:从历史轨迹中归纳可复用的推理模板,并用 PEMS 这样的指标判断何时停止迭代,避免无限循环
🔗 相关资源
- 论文:https://arxiv.org/abs/2605.28773
- 代码:https://github.com/zjunlp/LightMem
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我