CMI-Mem: Toward Generalizable Long-Term Memory Management via CMI-Augmented Reinforcement Learning
论文阅读:CMI-Mem——用条件互信息增强强化学习,实现更具泛化性的长期记忆管理
论文标题:CMI-Mem: Toward Generalizable Long-Term Memory Management via CMI-Augmented Reinforcement Learning
作者:Yubo Wang, Qiuyu Zhao, Zenghui Sun, Shichao Dong, Jinsong Lan, Xiaoyong Zhu, Haoyang Li, Bo Zheng, Lei Chen
单位:Alibaba Group、HKUST、PolyU、HKUST(GZ)
发表位置:arXiv preprint
arXiv 编号:arXiv:2607.20553
阅读版本:v1,2026-07-15
原文链接:https://arxiv.org/abs/2607.20553
代码:https://github.com/Wyb0627/CMIMem
主题:LLM Agent、Long-Term Memory、Memory Manager、Reinforcement Learning、Conditional Mutual Information
核心问题:现有基于强化学习的 Memory Manager 往往依赖合成 QA 和 LLM-as-a-Judge 来评价一条记忆是否“有用”,CMI-Mem 尝试额外引入一个不依赖具体未来问题的内在信息价值信号,使 Memory Manager 学会保存“对未来可能有用且不冗余的信息”。
1. 论文要解决什么问题?
LLM 本身没有持续存在的长期历史状态。
在长期交互 Agent 中,一种常见做法是维护一个外部 Memory,并通过 Memory Manager 决定:
- 当前对话中的哪些内容值得保存;
- 应该存入哪一种 Memory;
- 新信息应该新增、更新、合并还是跳过;
- 已有 Memory 应该如何被修改;
- 回答未来问题时应该检索哪些 Memory。
近年来已经开始出现一类工作:不再仅仅依靠 Prompt 手工规定 Memory Manager 的行为,而是使用强化学习训练 Memory Manager。
但是强化学习首先需要解决一个问题:
怎样给一次 Memory 操作定义 Reward?
现有方法通常采用 QA 驱动的思路。
例如,系统根据历史对话生成一些问题:
Q: 用户最喜欢什么运动?
然后让当前 Memory 帮助 Answer Model 回答问题,再通过 LLM-as-a-Judge 判断答案是否正确。
如果回答正确,就说明之前的 Memory 操作是好的;如果回答错误,则给予较低 Reward。
论文认为,这种方法存在一个根本问题:
Memory 的价值被间接定义成了“它是否能够帮助回答目前采样出来的这些问题”。
也就是说,Reward 实际上同时受到三个因素影响:
Memory
+
被采样出来的问题
+
Answer Model / Judge
而不是单独评价:
这条 Memory 本身是否值得保存?
1.1 QA Reward 的第一个问题:Question Distribution
假设一段对话中包含:
用户喜欢喝燕麦拿铁。
用户下周要去东京。
用户最近开始在家工作。
如果训练时生成的问题一直是:
用户喜欢喝什么?
那么“燕麦拿铁”会不断收到 Reward。
但是:
用户下周要去东京
可能没有对应训练问题。
这并不意味着这条信息没有价值,只意味着当前生成的 QA 没有问到它。
而未来 Agent 可能会遇到:
用户下周准备去哪里?
或者需要进行:
- 个性化推荐;
- 总结;
- 时间推理;
- 行程规划;
- 跨 Session 推理。
因此,训练阶段有限的 QA 无法覆盖 Memory 未来所有可能的用途。
1.2 QA Reward 的第二个问题:依赖 Answer Model 与 Judge
QA Reward 还依赖具体的 Answer Model。
同一份 Memory:
Memory -> Answer Model A -> 正确
Memory -> Answer Model B -> 错误
可能产生不同 Reward。
于是 Memory Manager 学到的并不完全是:
什么信息应该被记忆。
而可能是:
什么信息最适合当前这套 Question + Answer Model + Judge 流程。
论文将这一问题称为 downstream-conditioned memory valuation(下游条件化的记忆价值评估)。
1.3 QA Reward 的第三个问题:Credit Assignment 较粗
一个长期 Memory trajectory 中可能发生很多次操作:
Session 1 -> Add
Session 2 -> Update
Session 3 -> Skip
Session 4 -> Merge
...
Session N -> QA
最终 QA 正确或者错误之后,再给前面的 Memory 操作 Reward。
这样很难回答:
到底是哪一次 Memory 操作做对了,或者做错了?
即使像 FineMem、MemBuilder 一样生成 session-level QA,使 Reward 更密集,也仍然没有摆脱“由生成的问题来定义 Memory 价值”这一前提。
2. CMI-Mem 的核心思路
CMI-Mem 并没有试图删除 QA Reward。
相反,作者明确认为:
QA Reward 仍然是必要的。
因为如果完全不看下游任务,Memory Manager 可能会保存大量“信息量很高但任务上没什么用”的内容。
因此论文最终采用的是一种混合 Reward:
Final Reward
=
Intrinsic CMI Reward
+
Extrinsic QA Reward
其中:
- QA Reward:保证 Memory 最终能够服务于任务;
- CMI Reward:评价当前 Memory 操作本身增加了多少新的有效信息。
这里的 CMI 是:
Conditional Mutual Information,条件互信息。
论文希望用它回答:
在已经知道现有 Memory 的情况下,新生成的 Memory fragment 还为当前对话带来了多少额外信息?
可以直观写成:
CMI
=
当前对话 C_t
和
新记忆 m_new
之间的关联
在排除“已有 Memory 已经解释的信息”之后
剩下多少?
于是:
- 与当前对话高度相关;
- 同时又不是旧 Memory 的重复;
这样的 Memory 会获得较高 CMI。
反过来:
- 重复旧信息;
- 与当前 Session 无关;
- 甚至与当前信息冲突;
都会得到较低的 CMI。
这使 Reward 从:
以后生成的问题有没有刚好问到它?
增加了一条新的评价路径:
这次 Memory 操作本身有没有为 Memory State 增加新的有效信息?
3. Related Work 与问题定义
论文将相关工作分成三类。
3.1 Training-free Memory Management
第一类是不训练专门的 Memory Manager,而是依靠:
- Prompt;
- Rule;
- Tool Calling;
- Retrieval;
- Knowledge Graph;
来管理 Memory。
论文列出的代表工作包括:
- MemOS;
- AriGraph;
- Zep;
- Mem0。
例如 Mem0 会通过 Prompt 和 Tool 来完成:
Memory Extraction
-> Deduplication
-> Update
-> Retrieval
这类方法主要依赖 LLM 本身的推理能力和系统工程设计。
3.2 直接 Fine-tune Answer Model
另一条路线不是维护外部 Memory Manager,而是把个性化信息直接学习进模型。
例如:
- PersonalLLM;
- PENSIEVE;
- Yo'LLaVA。
论文认为,这类方法在大规模用户场景下面临可扩展性问题,同时持续 Fine-tuning 还可能带来 catastrophic forgetting(灾难性遗忘)。
3.3 使用 RL 训练 Memory Manager
第三类与 CMI-Mem 最相关。
代表方法包括:
| 方法 | Reward / 训练思路 |
|---|---|
| Memory-R1 | 下游 QA + LLM-as-a-Judge |
| AgeMem | 手工 Memory 管理规则 + LLM-as-a-Judge |
| FineMem | Session-specific synthetic QA |
| MemBuilder | Session-level QA + contribution-aware gradient weighting |
| CMI-Mem | QA Reward + intrinsic CMI Reward |
CMI-Mem 与这些工作的主要区别并不是“使用了 RL”。
真正不同的是:
作者试图为 Memory 本身定义一个不依赖具体 QA Query 的 intrinsic reward(内在奖励)。
4. 将长期 Memory 管理看成信息压缩问题
论文首先把长期对话表示为 Session 序列:
D = (C_1, C_2, ..., C_T)
其中每个 C_t 是一次多轮用户—助手交互。
系统在每个时间点维护一个 Memory State:
M_t = (
M_core,
M_epi,
M_sem,
M_pro
)
也就是说,Memory 被划分为四类。
| Memory 类型 | 含义 | 保存内容 |
|---|---|---|
| Core Memory | 核心记忆 | 稳定的用户属性、身份、偏好、长期目标 |
| Episodic Memory | 情景记忆 | 带时间戳的事件与经历 |
| Semantic Memory | 语义记忆 | 事实、实体、知识 |
| Procedural Memory | 程序记忆 | Routine、Workflow、操作步骤 |
论文因此将 Memory Management 描述为一个 information compression(信息压缩)问题:
面对不断增长的对话历史,系统需要持续判断哪些信息值得保留、更新、合并或者舍弃,从而维护一个可以长期演化的 Memory State。
5. CMI-Mem 方法
论文的整体框架包含三个核心部分:
- Structured Multi-dimensional Memory Architecture;
- Action-conditioned CMI Reward;
- 基于 GRPO 的强化学习训练。

【Figure 3。该图是 CMI-Mem 的整体训练框架。阅读时重点观察左侧四类 Memory Bank、中间 Session-by-Session 的 Memory State rollout,以及下方每一步都能够产生的 CMI Reward 与右侧最终 QA Reward 两条奖励路径。】
Figure 3 最关键的地方,是两条 Reward 路径:
Session
|
Memory Manager
|
Memory Operation
|
+------> CMI Reward 每一步都可以计算
|
Memory State
|
...
|
Question
|
Answer Model
|
LLM-as-a-Judge
|
QA Reward 下游结果级反馈
CMI 并不是取代 QA,而是在原本的 QA Reward 上增加一个更加细粒度的 Memory 内在评价信号。
5.1 Structured Multi-dimensional Memory Architecture
每种 Memory 都有自己的管理 Agent:
pi_core
pi_epi
pi_sem
pi_pro
但这里并不是训练四套独立模型。
这四个 Agent 共享同一个 Policy 的参数,只是负责不同 Memory 类型,并拥有不同 Action Space。
Core Memory
支持:
APPEND
REPLACE
REWRITE
其中:
APPEND:增加新的稳定用户信息;REPLACE:修改 Core 中某个已有事实;REWRITE:重新组织整个 Core Profile。
Appendix 中进一步说明,Core Memory 是一个始终放入 Prompt 的 bounded profile,而不是普通 Vector DB Entry。
Core 最大长度设置为:
L_core = 5000 characters
使用超过 90% 时触发压缩。
Episodic Memory
支持:
ADD
UPDATE
MERGE
SKIP
Episodic Memory 类似用户的“日记”。
主要保存:
什么时候
发生了什么
在哪里
涉及谁
为什么
其中:
ADD:创建新的事件;UPDATE:在保留原记录的情况下补充后续事件;MERGE:把多个相关事件整理成时间线;SKIP:当前 Session 没有值得保存的事件。
Semantic Memory
支持:
ADD
UPDATE
SKIP
保存:
- 实体;
- 事实;
- 概念;
- 用户相关知识。
Procedural Memory
同样支持:
ADD
UPDATE
SKIP
保存:
- Routine;
- Workflow;
- step-by-step procedure。
5.2 每个 Session 中 Memory Manager 如何工作
对于新的 Session C_t,每个 Memory Agent 都会看到:
当前 Session C_t
+
对应 Memory Slot 中 Top-k 相关旧 Memory
然后产生:
Action
+
candidate memory fragment
例如:
Semantic Agent:
Action = UPDATE
New Memory =
"Starbucks Gold requires 120 stars."
所有 Memory 操作执行完后:
M_(t-1) -> M_t
得到新的 Memory State。
5.3 一个很重要的设计:Memory 同时也是原始对话的索引
CMI-Mem 中的 Memory Fragment 不只是压缩后的 Summary。
作者让部分 Memory Entry 同时承担 retrieval index(检索索引) 的作用。
也就是说:
Memory Fragment
|
+------> Source Dialogue Turn
回答问题时,首先根据 Memory Fragment 检索相关记忆,然后再找到它对应的原始对话。
于是 Answer Model 最终看到的并不只是:
压缩后的 Memory Summary
还能够看到:
原始 Dialogue Evidence
论文认为,这可以减少纯摘要式 Memory 带来的 information loss(信息损失)。
尤其当任务需要精确数字、标签或原始细节时,压缩后的 Memory 可能丢失关键内容。
6. 核心:Action-conditioned CMI Reward
这是整篇论文最关键的部分。
作者希望评价:
当前这个 Memory Action 到底给 Memory State 带来了多少以前没有的信息?
理论上作者首先写成:
R_t = I(M_t ; A_t | M_(t-1))
直观理解:
在已有 Memory
M_(t-1)已知的条件下,这次 ActionA_t对新的 Memory StateM_t提供了多少额外信息。
但实际 Memory Action 最终产生的信息主要体现在新生成的 Memory Fragment 上。
因此实际使用:
r_CMI
=
I(
C_t ;
m_new
|
M_local
)
其中:
C_t:当前对话 Session;m_new:Memory Manager 生成的新 Memory Fragment;M_local:从旧 Memory 中选择的一组相关 Memory。
6.1 为什么需要 Conditional,而不能只计算相似度?
假设:
当前 Session:
用户说自己喜欢燕麦拿铁。
旧 Memory:
用户喜欢燕麦拿铁。
新 Memory:
用户喜欢燕麦拿铁。
当前 Session 和新 Memory 的 Semantic Similarity 非常高。
但这条新 Memory 完全没有增加信息。
如果只计算:
similarity(C_t, m_new)
它反而会得到非常高的 Reward。
这显然不是作者想要的。
CMI 要做的是:
先问旧 Memory 已经解释了多少
|
v
把已有信息去掉
|
v
再评价 m_new 是否提供额外内容
因此:
Relevant + Novel
->
High CMI
而:
Relevant + Redundant
->
Low CMI
这也是 CMI 相比普通 Semantic Similarity 最重要的地方。
6.2 M_local:不用整个 Memory Bank 计算
理论公式中可以对整个 M_(t-1) 做条件化。
但现实中长期 Memory Bank 可能非常大。
因此作者只构建一个 local conditioning set。
Appendix 给出的实现方式是:
M_local
=
Top-k Similar Memories
+
Recent Memories
检索 Query 综合:
Session Context
Candidate Memory
Target Old Memory(如果是 Update / Replace)
具体权重为:
q =
0.5 * e_context
+
0.5 * e_new
+
0.3 * e_old
其中 e_old 仅在 Update / Replace 等存在目标旧 Memory 时使用。
论文 Appendix 中给出的 Local-CMI 设置为:
top-k = 8
并额外加入最近的 Memory,以同时考虑:
- semantic relevance;
- temporal recency。
如果 Memory 数量太少,则退化为普通的 unconditional cosine similarity。
7. CMI 实际怎么计算?
这里存在一个现实问题:
对自然语言直接计算严格意义上的 Conditional Mutual Information 非常困难。
因为自然语言 Embedding 并不存在一个已知的封闭形式联合概率分布。
因此论文并没有直接计算理论 CMI,而是使用 partial correlation(偏相关) 进行近似。
7.1 Residual Projection
首先得到三个 Embedding:
e_C = 当前 Session embedding
e_new = 新 Memory embedding
M = 旧 Memory embeddings
然后作者通过 Projection,把能够被旧 Memory 解释的部分去掉。
可以直观理解为:
Context Embedding
|
减掉
|
旧 Memory 能解释的方向
|
v
r_C
以及:
New Memory Embedding
|
减掉
|
旧 Memory 能解释的方向
|
v
r_new
这里的:
r_C
表示:
当前 Session 中还没有被现有 Memory 覆盖的信息。
而:
r_new
表示:
新 Memory 中相对于旧 Memory 真正新增的内容。
接下来计算:
CMI_hat
=
cosine(r_C, r_new)
如果二者高度一致,说明:
新 Memory 恰好捕获了当前 Session 中旧 Memory 尚未覆盖的信息。
因此得到较高 Reward。
论文在 Projection 中还加入:
lambda = 1e-4
的 Tikhonov regularization(吉洪诺夫正则化),以避免旧 Memory Embedding 高度相关时矩阵求逆变得不稳定。
7.2 为什么负值被截断?
如果 residual correlation 为负:
CMI_hat < 0
论文认为这表示新 Memory 在给定已有 Memory 后,与当前 Context 呈反相关关系,可能产生误导。
因此最终截断:
CMI_hat = max(0, CMI_hat)
将其限制到:
[0, 1]
8. 不同 Memory Action 的 CMI 计算方式并不一样
对于:
ADD
MERGE
直接评价新 Memory 的信息量:
Reward = CMI(new_memory)
但对于:
UPDATE
REPLACE
仅仅看新 Memory 好不好是不够的。
因为真正需要判断的是:
新版本相比旧版本有没有变得更好?
因此计算的是:
Delta_CMI
=
CMI(new_memory)
-
CMI(old_memory)
例如:
Old:
Starbucks Gold requires 125 stars.
New:
Starbucks Gold requires 120 stars.
如果新的 Memory 能更好解释当前 Context:
Delta_CMI > 0
那么 UPDATE 得到正 Reward。
因此这套 CMI 并不是简单地评价“写入了一段什么文本”,而是 action-conditioned(与具体 Memory 操作绑定) 的。
9. 为什么还需要 Gaussian Reward Shaping?
一个很容易产生的直觉是:
CMI 越高越好。
但作者并没有直接采用这个规则。
原因在于,极端高 CMI 也可能对应某些异常、过度具体或者不稳定的新信息。
论文因此使用 Gaussian shaping(高斯奖励塑形):
shaped_CMI
=
exp(
- (CMI_hat - mu)^2
/ (2 * sigma^2)
)
实验设置为:
mu = 0.35
sigma = 0.15
也就是说,Reward 并不是一直随着 CMI 单调增加,而是在一个作者经验上认为较合理的 CMI 区间达到峰值。
其目标是鼓励:
适度的新颖性
+
与当前 Session 相关
+
不过度偏离已有 Memory
而不是简单追求“越不同越好”。
10. 最终 Reward:CMI 只是补充,QA 仍然存在
最终每一步 Reward 是:
r_t
=
alpha * r_CMI
+
(1 - alpha) * r_QA
论文完整模型中:
alpha = 0.3
也就是说,CMI 只占部分权重。
这非常重要。
CMI-Mem 的论点并不是:
QA Reward 没用
而是:
只靠 QA Reward 不够
QA 负责:
Task Utility
CMI 负责:
Information Quality
+
Novelty
+
Non-redundancy
+
Fine-grained Credit Assignment
二者承担不同职责。
11. 其他 Reward Regularization
除了 CMI 和 QA,论文实际训练中还有一些辅助 Reward。
Format Validity
如果输出格式错误:
Reward -> 0
同时还会给予 per-turn format penalty。
Length Penalty
避免 Memory Manager 通过输出极长 Memory 来提高信息覆盖率。
Duplication Penalty
包括:
Intra-session duplication
Cross-session duplication
防止重复添加相同或者近似 Memory。
Core Specificity Penalty
如果生成类似:
"User is a lifelong learner."
这种过于模板化、缺乏区分度的 Core Memory,会受到惩罚。
作者希望 Core Memory 更具体。
Contribution-aware Attribution
系统统计回答问题时哪个 Memory Type 被检索最多。
贡献最高的 Memory Type 会得到更高 Reward 权重。
实验中 attribution amplification 设置为:
alpha_attr = 4.0
其目的在于把梯度更多分配给真正参与最终 QA 的 Memory 类型。
12. 使用 GRPO 训练 Memory Manager
CMI-Mem 使用:
GRPO(Group Relative Policy Optimization)
进行 RL Training。
论文明确说明:
GRPO 算法本身没有被修改。
创新主要来自:
- Reward 设计;
- Curriculum Learning;
- Memory Architecture。
12.1 Session-level Rollout
对于每个 Session,采样:
N = 8
条 rollout。
每个 rollout 会同时产生四类 Memory 的操作。
例如:
Core -> APPEND
Episodic -> ADD
Semantic -> UPDATE
Procedural -> SKIP
然后计算 composite reward。
组内 Reward 做归一化之后,按照标准 GRPO clipped objective 更新 Policy。
12.2 不使用 SFT Warm-start
论文还有一个值得注意的训练设计:
CMI-Mem 没有先进行 task-specific SFT,再做 RL。
而是直接从 instruction-tuned model 开始 RL。
作者认为这样可以避免:
Expert Demonstration Distribution
与:
Policy 自己探索出来的 trajectory distribution
之间的 mismatch。
但直接 RL 又会导致早期训练较困难,因此论文使用 Curriculum Learning。
13. Curriculum Learning
作者为每个 Session 定义 Difficulty Score:
difficulty
=
w_s * session_depth
+
w_c * candidate_memory_count
+
w_q * QA_count
其中考虑三个因素:
- 当前已经积累了多少 Session;
- 当前 Session 中包含多少候选 Memory;
- 有多少关联 QA。
然后把样本划分为三个难度等级。
训练时:
- Batch 中同时包含不同难度样本;
- 每个难度层内部由简单到困难;
- 随 Epoch 推进整体难度逐渐上升。
这样可以缓解完全没有 SFT Warm-start 时的训练不稳定问题。
14. 实验设置
论文在三个长期记忆 Benchmark 上实验。
| Dataset | 主要测试内容 |
|---|---|
| LongMemEval | 长期 Recall、跨 Session 聚合、Knowledge Update、Temporal Reasoning |
| LoCoMo | 更长的人类—人类长期对话 |
| MemoryAgentBench | Long-range Understanding、Selective Forgetting、Summarization、Recommendation、Open-ended QA 等 |
训练只使用:
LongMemEval RL split
LoCoMo 没有参与训练,因此属于严格的 OOD(Out-of-Distribution,分布外)测试。
MemoryAgentBench 中作者排除了 FC-MH 子集,因为作者发现其中存在可检测的 counterfactual construction,使评价结果无法有效反映 Memory Quality。
14.1 模型配置
主要配置为:
| Component | Setting |
|---|---|
| Memory Manager | Qwen3-4B-Instruct-2507 |
| Embedding Model | Qwen3-Embedding-0.6B |
| Answer Model | Qwen3.7-Max |
| LLM Judge | Qwen3.7-Max |
| RL | GRPO |
| Hardware | 8 × H20 96GB |
| Epoch | 5 |
| Learning Rate | 1e-6 |
| Batch Size | 32 |
| Rollouts / Session | 8 |
| Rollout Temperature | 0.8 |
| Top-p | 0.9 |
| CMI / QA Mixing Weight | 0.3 |
| Gaussian Center | 0.35 |
| Gaussian Width | 0.15 |
训练数据按照 MemBuilder 的协议使用 deepseek-v4-pro 合成。
15. Main Results
论文首先比较三类方法:
- RAG;
- Prompt-based Memory Manager;
- RL-based Memory Manager。
总体结果如下。
| Method | LoCoMo | LongMemEval | MemoryAgentBench |
|---|---|---|---|
| RAG top-5 | 50.5 | 50.0 | 24.5 |
| RAG top-10 | 49.3 | 50.5 | 30.7 |
| Mem0 | 51.6 | 47.0 | 37.2 |
| MemBuilder-P (Qwen3-4B) | 63.4 | 53.3 | 36.9 |
| Ours-P (Qwen3-4B) | 64.1 | 55.0 | 45.8 |
| Memory-R1-4B | 62.7 | 60.8 | 41.1 |
| MemBuilder-RL-4B | 68.1 | 56.5 | 35.1 |
| CMI-Mem-4B | 72.1 | 67.0 | 46.1 |
这里的 Ours-P 表示:
使用论文提出的 Memory Architecture,但是不进行 RL,只通过 Prompt 驱动。
因此它可以帮助区分:
Memory Architecture 本身的收益
和:
CMI + RL Training 的收益
15.1 Structured Memory 相比纯 RAG
作者发现总体上:
Structured Memory Management > Raw RAG
RAG 只是把相似的原始历史对话检索出来。
而 Memory Manager 会额外进行:
- 选择;
- 分类;
- 更新;
- 合并;
- 压缩;
- 时间组织。
因此在长期对话场景中,单纯 Top-k Retrieval 通常无法替代显式 Memory Management。
不过论文也指出,在 MemoryAgentBench 的某些依赖大范围上下文覆盖的任务中,RAG 仍具有竞争力。
也就是说,论文并没有声称 RAG 在所有 Memory Task 上都一定更差。
16. Retrieval-indexed Memory 的作用
在相同 Backbone 下:
Ours-P
总体优于或接近:
MemBuilder-P
两者都使用:
Core
Episodic
Semantic
Procedural
四类 Memory。
论文认为区别主要来自:
CMI-Mem 的 Memory Entry 可以继续作为 Source Dialogue 的索引。
因此:
Abstract Memory
|
v
Source Dialogue
可以重新获取原始 Evidence。
这对要求精确数字或者原始样本信息的任务尤其重要,因为纯 Summary 很容易在压缩时丢掉这些细节。
17. CMI Reward 是否真的提高了泛化?
论文重点关注 MemoryAgentBench。
原因在于 CMI-Mem 是在 LongMemEval 上训练的,而 MemoryAgentBench 包含:
- Summarization;
- Recommendation;
- Open-ended Question;
- Selective Forgetting;
- Long-range Understanding;
这些任务结构与训练阶段 Fact-seeking QA 有较明显差异。
在 4B RL 模型中:
MemBuilder-RL-4B : 35.1
CMI-Mem-4B : 46.1
提高:
+11.0
8B 模型进一步比较:
MemBuilder-RL-8B : 51.7
CMI-Mem-8B : 56.7
论文据此认为:
在 QA Reward 之外加入与具体 Query 无关的 Memory intrinsic signal,有助于减少 Memory Manager 对训练 QA Distribution 的过度依赖。
18. Training Dynamics
论文还比较了:
QA Reward Only
和:
CMI + QA Reward
的训练动态。
作者观察到:
- QA-only 的 Policy Gradient Loss 随训练逐渐向负方向漂移;
- CMI+QA 的 Loss 更接近零附近;
- CMI 每一步都可以产生 Memory Operation-level Reward;
- 因此 Difficulty Curriculum 变化时 Reward Transition 更平滑。
论文认为这说明 CMI 有助于稳定训练。
另外,Appendix 报告:
CMI-guided Policy 在训练时平均 Response Length 只有 QA-only 的约 39%。
也就是说,加入 CMI 后,模型倾向于输出:
更短
更直接
更明确
的 Memory Operation。
18.1 Memory Bank 也更加紧凑
Appendix 给出的平均 Memory Bank Statistics:
| Memory | QA Only Count | CMI+QA Count |
|---|---|---|
| Core | 3.9 | 2.7 |
| Episodic | 284.1 | 318.8 |
| Semantic | 242.6 | 231.5 |
| Procedural | 139.9 | 82.6 |
| Total | 670.5 | 635.6 |
最明显的变化来自 Procedural Memory:
139.9 -> 82.6
论文的 Case Study 也显示,QA-only Policy 容易大量生成重复、泛化的“how-to”式 Procedural Memory。
而 CMI 会认为这些跨 Session 重复出现的流程信息:
Novel Information Gain 很低
因此降低它们的写入倾向。
19. 消融实验
LongMemEval 上的核心消融如下:
| Variant | Overall | KU | MS | SS-A | SS-P | SS-U | TR |
|---|---|---|---|---|---|---|---|
| Qwen3-4B | 53.25 | 54.10 | 40.43 | 88.00 | 70.37 | 85.19 | 28.95 |
| +RM | 55.00 | 65.57 | 39.36 | 90.00 | 62.96 | 79.63 | 33.33 |
| +QA | 56.50 | 62.30 | 43.62 | 90.00 | 59.26 | 83.33 | 35.96 |
| +RM+QA | 53.25 | 60.66 | 40.43 | 86.00 | 40.74 | 81.48 | 35.09 |
| +CMI | 45.00 | 47.54 | 27.66 | 84.00 | 59.26 | 66.67 | 27.19 |
| +CMI+QA | 67.00 | 63.93 | 53.19 | 96.00 | 70.37 | 90.74 | 55.26 |
| CMI-Mem Full | 68.50 | 67.21 | 51.06 | 100.00 | 85.19 | 90.74 | 55.26 |
这里可以看到几个非常关键的现象。
19.1 Retrieval-indexed Memory 本身有效
基础模型:
53.25
加入 RM 后:
55.00
其中 Knowledge Update:
54.10 -> 65.57
说明回到 Source Dialogue 获取原始 Evidence 对事实更新任务确实有帮助。
19.2 单独 QA Reward 有一定效果
53.25 -> 56.50
说明 Outcome-level RL 本身可以提升 Memory Management。
尤其对:
- Multi-session;
- Temporal Reasoning;
有帮助。
19.3 RM + QA 直接叠加反而退化
比较:
+RM = 55.00
+QA = 56.50
+RM+QA = 53.25
简单把 Retrieval-indexed Memory Architecture 和 QA Reward 放在一起,并没有产生加成。
作者据此认为:
richer Memory Action Space 仅靠 Outcome-level QA Supervision 并不足以提供好的 Credit Assignment。
19.4 CMI 不能单独使用
这是整篇论文非常重要的消融。
+CMI only = 45.00
明显低于 Base:
53.25
也就是说:
只追求 Information Gain 并不能训练出好的任务型 Memory Manager。
因为“信息量大”并不等价于“对任务有帮助”。
19.5 CMI + QA 才是关键
QA Only : 56.50
CMI Only : 45.00
CMI + QA : 67.00
最终再加入 Retrieval-indexed Memory:
Full Model : 68.50
这正好支持作者最核心的论点:
Intrinsic Memory Quality
+
Extrinsic Task Utility
需要同时存在。
CMI 负责回答:
这是不是一条新的、有信息量的 Memory?
QA 负责回答:
这条 Memory 最后有没有帮助 Agent 完成任务?
两者并不是替代关系。
20. CMI Weight 的消融
完整模型使用:
alpha = 0.3
也就是:
30% CMI
70% QA
提高 CMI 比例后:
| Setting | Overall |
|---|---|
| alpha = 0.3 | 68.50 |
| alpha = 0.5 | 63.00 |
| alpha = 0.7 | 59.50 |
随着 CMI 权重继续增加,效果下降。
这进一步说明论文中的 CMI 更适合作为:
QA Reward 的辅助信息价值信号
而不是 Memory Manager 唯一的优化目标。
21. Gaussian Shaping 与 CMI Estimator 消融
去掉 Gaussian Shaping 后:
68.50 -> 67.75
整体有所下降。
不过 Temporal Reasoning:
55.26 -> 60.53
反而提高。
因此 Gaussian Shaping 并不是所有子任务都受益。
论文还测试了:
- logprob-based CMI estimator;
- embedding-based CMI estimator。
不同 Estimator 在不同类别上各有优势:
- logprob-based 在 Knowledge Update、SS-U 上更强;
- embedding-based 在 Preference、Temporal Reasoning 上更强。
论文最终完整模型采用 Embedding-based CMI。
22. Case Study:CMI 到底改变了什么 Memory?
论文 Appendix 专门比较了:
QA-only Policy
和:
CMI + QA Policy
生成的 Memory Bank。
作者选择了五类案例:
| 类型 | 问题 | QA-only | CMI+QA |
|---|---|---|---|
| Knowledge Update | Starbucks Gold 需要多少 stars? | 125,错误 | 120,正确 |
| Multi-session | 总共为慈善筹了多少钱? | $1,750 | $3,750 |
| Multi-session | 背包购买后几天到达? | 无法回答 | 5 天 |
| Preference | 如何保持厨房整洁? | 通用建议 | 基于用户习惯的个性化建议 |
| Temporal | 最近坐的是 Bus 还是 Train? | Bus | Train |
这些例子展示了 CMI Reward 对 Memory Construction 行为的影响。
22.1 Knowledge Update:避免旧事实持续存在
用户一开始认为:
Starbucks Gold = 125 stars
后来更正为:
Starbucks Gold = 120 stars
QA-only Policy 最终仍保存:
125
而且错误信息同时出现在 Semantic 和 Episodic Memory。
CMI+QA 则将 Semantic Memory 更新为:
120 stars
并在 Episodic Memory 中记录这次 correction。
作者将其归因于 CMI 对:
重复旧信息
给予较低 Reward,而:
更新旧知识的新信息
具有更高 Information Gain。
22.2 Cross-session Aggregation:减少 Procedural Noise
另一个例子要求统计用户多次慈善活动一共筹集了多少钱。
QA-only 得到:
$1,750
CMI+QA 得到:
$3,750
分析 Memory Bank 后发现:
QA-only 生成了大量:
"如何进行慈善筹款"
之类的 Procedural Memory。
其中很多是高度相似的通用步骤。
该案例中:
QA-only Procedural : 141
CMI+QA Procedural : 69
下降约 51%。
与此同时 CMI+QA 保存了更多具体的金额事实。
因此在需要跨 Session 聚合时:
$1000
$300
...
这些具体事实更容易被检索出来。
22.3 Temporal Reasoning:保留真正新的时间信息
用户一月份多次坐 Bus,三月份又坐过 Train。
问题:
最近一次使用的是 Bus 还是 Train?
QA-only 回答:
Bus
CMI+QA:
Train
QA-only 的 Memory 中有大量旧 Bus Event,却没有很好地总结新的时间变化。
CMI+QA 则生成了类似:
Recently increased train usage...
March 3rd train ride...
这样的 Semantic + Episodic 信息。
论文认为 CMI 鼓励 Memory Manager 将新的时间模式进行 consolidation,而不只是不断重复旧事件。
23. 论文最终得到的整体结论
CMI-Mem 的核心贡献不是重新发明一种 Memory 类型,也不是提出新的 RL Optimizer。
它主要重新考虑了:
Memory Manager 的 Reward 应该如何定义。
传统 QA-based RL:
Memory
|
v
Question
|
Answer Model
|
Judge
|
Reward
CMI-Mem 增加了一条:
Current Session
+
Existing Memory
+
New Memory
|
v
Information Gain
|
v
CMI Reward
于是 Memory Manager 同时受到两种监督:
QA:
最终是否有用?
CMI:
当前这一步有没有真正给 Memory 增加新的有效信息?
实验中的关键现象也与这一设计一致:
CMI only -> 45.00
QA only -> 56.50
CMI + QA -> 67.00
Full -> 68.50
因此论文强调的是二者的 complementarity(互补性)。
24. 论文指出的局限性
论文最后明确列出了三个限制。
24.1 多模态能力受 Backbone 限制
如果扩展到:
- Video;
- Audio;
- Image;
CMI-Mem 的 Memory Quality 仍然受基础模型感知能力限制。
如果 Backbone 本身无法准确理解某个模态,那么 Memory Manager 也无法构建高质量 Memory。
24.2 目前只验证到 4B / 8B
主要 RL 实验基于 4B 模型。
8B 只在 MemoryAgentBench 上进行了测试。
论文尚未验证:
14B+
以及更大 Memory Manager 上是否仍然成立。
因此 CMI Reward 的 Scaling Behavior 仍需进一步实验。
24.3 评价仍然主要依赖 QA
这是论文自身承认的一个比较直接的矛盾。
论文的出发点之一是:
只通过 QA 判断 Memory Quality 不够。
但当前领域中的 Benchmark 本身仍然主要依靠:
Question Answering
评价 Memory。
论文实验也使用 Qwen3.7-Max 作为:
Answer Model
+
LLM Judge
因此即使 CMI-Mem 希望提升“独立于具体 Query 的 Memory Quality”,最终仍缺少一个成熟的、直接评价 Memory 本身质量的 Benchmark。
作者因此将:
构建更直接的 Memory Quality Evaluation Data 与 Metric
作为后续方向之一。
25. 总结
CMI-Mem 研究的是长期 Memory Agent 中一个非常具体的问题:
Memory Manager 应该根据什么 Reward 学习?
过去的 RL Memory Manager 大多围绕:
Synthetic QA
+
Answer Model
+
LLM-as-a-Judge
构造 Reward。
CMI-Mem 认为这种 Reward 能保证 Task Utility,却不足以直接评价 Memory Operation 本身。
因此作者加入 Conditional Mutual Information:
CMI
=
新 Memory 对当前 Session 的信息贡献
-
已有 Memory 已经能够解释的信息
在实现上,论文并没有直接计算严格的概率论 CMI,而是:
Embedding
-> Existing Memory Projection
-> Residual
-> Partial Correlation / Cosine Similarity
-> Gaussian Shaping
得到可计算的近似 Reward。
最终训练目标仍然保留 QA:
Reward
=
0.3 * CMI
+
0.7 * QA
再配合:
- 四类结构化 Memory;
- Retrieval-indexed Memory;
- GRPO;
- Curriculum Learning;
- Duplication / Length / Format Regularization;
训练一个轻量 Memory Manager。
实验中最重要的消融并不是单独 CMI 的结果,而恰恰是:
CMI Only < QA Only < CMI + QA
说明论文提出的 CMI 并不能独立定义“好的 Memory”,但它可以为 QA Reward 提供原本缺失的细粒度、Query-independent 信息价值信号。
从论文的论证逻辑来看,CMI-Mem最终要解决的并不是:
如何完全摆脱 QA?
而是:
如何避免 Memory Manager 的训练目标完全由有限的 QA Distribution 所定义?
参考
-
Yubo Wang, Qiuyu Zhao, Zenghui Sun, Shichao Dong, Jinsong Lan, Xiaoyong Zhu, Haoyang Li, Bo Zheng, Lei Chen. CMI-Mem: Toward Generalizable Long-Term Memory Management via CMI-Augmented Reinforcement Learning. arXiv:2607.20553, 2026.
https://arxiv.org/abs/2607.20553 -
CMI-Mem 官方代码:
https://github.com/Wyb0627/CMIMem

浙公网安备 33010602011771号