记忆不该是静态档案柜:Icml 用在线 RL 让"存什么、何时取"边聊边进化

先讲个真问题。做记忆系统的人都熟悉这个套路:写规则决定存什么(比如"包含偏好关键词就入库")、写规则决定何时取(比如"相似度超过阈值就检索")。规则是死的,用户是活的——用户说"今晚有 deadline,给我来杯咖啡"时存的"喜欢咖啡",三个月后用户说"喝咖啡心跳加速",这条旧记忆就成了地雷。静态启发式的记忆管线不会自己更新这个认知,除非你手动去改规则。

昨天聊的 ThinkFlow 是在表示层解决这个问题(把记忆搬进潜在空间),同一个团队同日挂出的这篇 Icml(Interactive Memory Learning,arXiv: 2609.17088,EMNLP 2026 Findings)则是在策略层下手:把"存不存"和"取哪条"都变成可学习的策略,用在线 RL 让两个 Agent 在真实交互里边聊边进化。说实话,把记忆管理显式建模成 POMDP 然后用 PPO 训 Actor-Critic 的做法,在对话记忆这个细分方向我还是第一次见到做得这么完整的——更难得的是它把"记忆的效用要延迟到未来被使用的那一刻才能验证"这个信用分配难题,用一个跨 session 的回溯奖励机制干净地解决了。

核心摘要:现有长期对话记忆是"被动存档"——静态规则决定存取,部署后不会进化。Icml 把记忆管理变成两个可学习的 Actor-Critic 智能体:Planner 决定每轮交互值不值得存(二值动作),Trigger 决定当前 query 要不要检索、取哪条(分类动作);用"回溯式 session 合成"造专家数据做监督热身解决冷启动,再用跨 session 真实奖励把未来的回复质量信号回传给当初的存储决策,双 Agent 用 PPO 协同进化。效果:插到 Gemini2.5 上 CC 数据集 Mauve 80.33(最强 baseline THEANINE 75.42,纯长上下文 72.04);人工评测对最强 baseline 生成胜率 66.0%、记忆检索胜率 70.0%(p<0.01);10 个 session 内 Planner 精度和 Trigger 召回持续爬坡。我的判断:这是记忆管理从"规则工程"走向"策略学习"的标志性工作,延迟奖励设计是全文精华;但评估全部集中在开放域闲聊生成,对事实型记忆问答(LME 那类)是否有效完全没验证,且在线 RL 的训练成本论文说得轻描淡写。

论文信息 - 标题:Interactive Memory Learning for Long-Term Conversations - 作者:Cai Ke, Jiangyue Yan, Han Zhang, Xin Liu, Zike Yuan, Yue Yu, Hui Wang, Ruifeng Xu - 机构:哈尔滨工业大学(深圳)、鹏城实验室 - arXiv:https://arxiv.org/abs/2609.17088 (2026 年 9 月 15 日提交,EMNLP 2026 Findings)


🎯 问题:记忆的"价值"在存储那一刻是未知的

人类记忆从来不是一个被动档案馆。认知心理学早就告诉我们:人有选择地编码对未来决策有高价值的信息,丢弃无关噪声,并且持续根据反馈更新记忆。论文 Figure 1 的例子很贴切——用户先说"咖啡帮我保持清醒"(存:喜欢咖啡),后来又说"喝咖啡让我心跳加速"(更新:不喜欢咖啡了),最后问"同事拿铁好香,给我推荐个提神的东西",一个好 Agent 应该推荐茶。静态系统做不到中间的"更新"这一步。

图 1:Icml 的核心理念——通过长期交互中的环境反馈,区分高价值记忆(如"喝咖啡心跳加速"的健康警告)与低价值噪声(如"今晚有 deadline"的临时状态),在线自我进化

图 1:长期开放域交互中的记忆进化。注意第二个 session 才是关键——新约束必须覆盖旧偏好

这里有个常被忽视的本质困难:一条记忆的真实价值,只有在未来某个时刻被检索并帮助生成了好回复,才能被验证。存储那一刻你是不知道的。这就是典型的延迟信用分配问题,也是为什么"该不该存"没法用规则写死——规则只能看当下的表面特征,看不到未来的效用。

Icml 的应对是把整个问题形式化为 POMDP:用户真实意图是不可观测的隐状态,Agent 只能看到观测 \(o_k\)(当前 query \(u_k\)、近期对话上下文 \(H_k\)、外部记忆状态 \(\mathcal{M}_k\)),动作是联合动作 \(a_k = (a_k^p, a_k^t)\)——Planner 的二值"存/弃"和 Trigger 的"取第 0~N 条"(取 0 表示不检索)。

🏗️ 方法:数据合成热身 + 双 Agent 在线 RL

图 2:左侧为回溯式 session 合成(Backward 反向生成故事线 + Forward 前向依赖标注 + 模仿学习初始化);右侧为 Icml 框架——Planner 走 Proxy 轨迹、Trigger 走 Truth 轨迹,通过跨 session 真实奖励和 PPO 更新协同进化

图 2:方法全景。中间红色的 Cross-Session Truth Reward 箭头是整个系统的灵魂——把 Trigger 未来的使用反馈回传给 Planner 过去的存储决策

回溯式 session 合成:倒着写故事解决冷启动

在线 RL 一上来就面对真实用户会死得很惨——策略随机、奖励稀疏、冷启动期全是烂回复。Icml 的解法挺聪明:反向生成。

取一个"用户首次暴露特定约束"的 session 作为种子 \(S_{seed}\)(比如用户第一次说"我是素食主义者"),然后用 LLM 当用户模拟器,递归地往前倒推生成前置 session——比如倒推出"三个月前用户聚餐时解释过为什么吃素"这样的历史。反向因果保证整条故事线 \(\mathbb{H}_{gen} = \{S_{prev}^{(L)}, \dots, S_{prev}^{(1)}, S_{seed}\}\) 逻辑自洽。

故事线有了之后,再正向遍历做依赖标注:对 Planner,评估每轮的信息增益打 0/1 标签(值不值得存);对 Trigger,标注解决种子 session 里的 query 到底需要哪几条历史片段,并混入 hard negatives(同 session 的无关轮次)和 soft negatives(全局随机记忆)增强判别力。这套专家数据用来做监督热身(SFT 初始化策略),然后再上线做 on-policy RL。

这个"倒着写"的思路值得记下来:正向生成的对话历史,记忆依赖关系是隐式的、要靠猜;反向从"这条记忆未来会被用到"出发生成,因果关系是构造出来的、显式的。做合成数据的同学可以直接抄这个思路。

Planner:记忆的守门员

Planner 每轮看用户 query,输出二值分布:Save(把当前交互浓缩成记忆片段 \(m_{new}\) 入库)或 Discard。奖励是即时的 proxy reward \(r_k^{proxy} \in [0,1]\)——让基座 LLM 当评委,给这一轮的内在信息价值打分。另外有个 miss-penalty:如果 Planner 把高价值轮次给丢了,吃 \(-\alpha r_k^{proxy}\) 的负奖励,防止探索期把重要信息全过滤掉。

Trigger:按需检索,而不是按相似度检索

Trigger 看当前 query + 对话历史 + 候选记忆集,输出一个分类分布——注意动作空间是记忆索引 \(\{0, 1, \dots, |\mathcal{M}_k|\}\),取 0 就是不检索。这个"允许不取"的设计很关键,传统 dense retrieval 是强制取 top-k 的,经常把噪声拽进来。奖励是 quality reward \(r_k^{qual} \in [0,1]\),由 LLM 多维度给最终回复打分。

跨 session 真实奖励:全文最值钱的设计

存储决策的真实效用要等未来才知道,怎么办?Icml 维护一个 Pending Reward Buffer,存着 Planner 已入库但还没被验证的记忆。当未来某一轮 Trigger 真的触发了记忆 \(m_i\) 并拿到质量分 \(r_{k_{future}}^{qual}\),系统回溯到 \(m_i\) 的创建轮 \(k_{past}\),把这个未来信号回传:

\[r^{truth}_{k_{past}} = r^{proxy}_{k_{past}} + \lambda \cdot r^{qual}_{k_{future}} \cdot \mathbb{I}(m_i \text{ is triggered})\]

proxy 奖励管"当下看起来有没有价值",truth 奖励管"未来实际有没有用"。Planner 存了一条记忆但从来没被 Trigger 用过,就拿不到第二项——存储策略被逼着向"会被用到的记忆"对齐。两个 Agent 的策略就这样互相塑造、协同收敛。

说实话,这个机制和 ContextPilot 那篇(用分支采样估计动作级优势)解决的是同一类问题——记忆系统的粗粒度信用分配——但思路完全不同:ContextPilot 靠轨迹分叉做统计估计,Icml 靠真实的未来使用事件做回溯赋值。Icml 的信号更"真"(真实交互而非采样估计),但前提是记忆真的会被再次用到,对于"存了但永远没机会用"的记忆,估值就永远是缺失的。这个 bias 论文没讨论。

PPO 联合优化

两个 Agent 共享 Actor-Critic 框架,用标准 PPO 更新——clipped surrogate + 熵奖励,Critic 用 MSE 拟合回报。实现在线 rollout:Agent 在真实场景中跑轨迹 \(\tau = \{(o_k, a_k, r_k)\}\),攒经验、更新、再继续聊。整套是 on-policy 的。


🧪 实验:即插即用挂在闭源模型上,人评也赢了

实验设计有个很聪明的地方:Icml 的 Planner/Trigger 是小模型(1B~12B 开源 LLM),回复生成器是 GPT-4o(128K)或 Gemini2.5(1M)——记忆策略模块即插即用,不需要碰闭源模型的权重。数据集是 CC、MSC、GC 三个真人对聊的长期开放域对话集。基线:Long Context、Mem0、A-Mem、MemoryOS、MemoryBank、LD-Agent、THEANINE。

主实验(Table 1),Gemini2.5 做生成器 + Qwen3 系列做记忆 Agent,CC 数据集:

配置 BLEU-4 ROUGE-L BertScore Mauve
Long Context (1M) 1.57 17.50 47.50 72.04
Mem0 1.09 15.88 44.73 52.94
THEANINE(最强 baseline) 1.64 17.02 45.23 75.42
Icml-Qwen3-8B 2.21 18.22 47.82 80.33

GPT-4o 做生成器同样成立:Icml-Llama3-3B 在 CC 的 Mauve 61.66,压过 THEANINE 的 54.23 和 Long Context 的 55.73。GC 数据集差距最大:Icml-Qwen3-8B Mauve 59.81 vs THEANINE 30.29——接近翻倍。GC 是带真实时间间隔(几分钟到几年)的多 session 数据,对记忆系统的"时间感知"要求最高,这个gap说明进化机制在跨时间场景确实有用。

不过老问题还在:MSC 和 GC 上的 ROUGE-L,Icml 并没有全面压过 baseline(GC 上 Long Context 10.05 vs Icml 10.64,差距很小;MSC 上 Long Context 13.60 vs Icml 13.97)。n-gram 指标在开放域对话上本来就弱,真正能看的还是 Mauve 和后面的人工评测。

人工评测做得比大多数同类工作规范:5 名内部评测员、配对 t 检验、Fleiss' κ 一致性系数。对最强 baseline THEANINE:66.0% 的生成质量胜率(95% CI [60.5%, 71.5%],κ=0.65),70.0% 的记忆检索胜率(95% CI [64.2%, 75.8%],κ=0.68),均 p<0.01。κ 过 0.6 算 substantial agreement,统计上是站得住的——但注意样本量只有 150 条,且评测员是"in-house"的,独立性打折。

消融(Table 2,CC,Mauve 列):

变体 Mauve
完整 Icml 80.33
w/o Truth Reward 76.19(跌幅最大)
w/o Planner 78.77
w/o Synthetic Data 79.57
w/o Evolution 79.83
w/o Trigger 79.91

跨 session 真实奖励拆掉后跌得最狠,直接验证了"延迟效用回传"是核心增量;w/o Evolution(静态训练不进化)也掉了,证明在线适应不是摆设。

协同分析里有三个值得看的发现。一是 Planner×Trigger 规模热力图呈对角线 pattern——两边模型规模匹配时效果最好(4B+4B 的 Mauve 77.64,反而高于 1.7B+8B 错配的 70.60),小而均衡的配置经常打赢大而不匹配的,对成本敏感的部署是个实用结论。

图 6:Planner 与 Trigger 模型规模的组合热力图(CC 数据集)。性能沿对角线分布——两边规模匹配时协同最好,4B+4B 组合的 Mauve 77.64 接近 8B+8B 的 80.33,远胜 1.7B+8B 错配的 70.60

图 6:规模配比实验——记忆系统的双 Agent 不是各自越大越好,而是越匹配越好

二是协同进化曲线:拉长到 10 个 session,Planner 的存储精度和 Trigger 的检索召回都单调爬坡——两个 Agent 真的在互相成就,而不是各学各的。三是合成数据规模的甜蜜点:0.25K~0.5K episode 最佳,堆到 1K 反而掉(CC 上从 80.33 掉到 76.33)——静态监督太多会把策略过拟合到固定 pattern,损害在线灵活性。这个"热身要适度"的结论和所有做冷启动的场景都相关。不过注意 GC 数据集上这个规律不太稳(0.5K 时 Mauve 直接崩到 49.21),甜蜜点的位置数据集间有差异,论文没解释。

案例研究(Figure 8)展示了完整的进化闭环:早期用户说"我不吃肉"(Planner 存:素食);后来用户拒绝沙拉说"太凉了,我喜欢热的辣的"——Planner 从反馈中学会存下"热辣偏好"这条新记忆;最后用户说"帮我点晚餐",Trigger 同时检索两条记忆,推荐了麻辣豆腐(Spicy Tofu)——素食约束 + 热辣偏好的交集。用户回"Perfect! You know exactly what I want"。

图 8:交互式记忆学习案例——从冷启动存下素食约束,到在线试错中学到热辣偏好,再到终身学习阶段两条记忆联合检索推荐出麻辣豆腐

图 8:三阶段进化案例。注意红色虚线的检索动作——最终回复同时命中了长期约束和新学偏好

效率方面,Icml 的推理 token 消耗随 session 深度基本平稳(baseline 线性膨胀),记忆构建延迟也是毫秒级——Planner 的严格过滤防止了上下文膨胀。


🤔 我的判断

这篇论文真正的贡献不是"又涨了几个点",而是把记忆管理从启发式规则搬到了可学习策略,并且把最难的延迟信用分配问题用一个简单漂亮的回溯机制解决了。Pending Reward Buffer + 跨 session truth reward 这个设计,对任何"动作效用在未来才能验证"的记忆系统都有直接借鉴价值——做显式记忆系统的同学(比如用 Mem0 那类管线)完全可以把这个回溯奖励思路移植过去,给"写入决策"加一个延迟的真实效用信号。

和团队同日挂出的 ThinkFlow 对照看更有意思:ThinkFlow 改的是记忆的表示(文本 → 潜在分布),Icml 改的是记忆的策略(规则 → RL 学习)。一个在 substrate 层,一个在 policy 层,理论上正交可组合——潜在技能槽 + 可学习的存取策略,可能是这条研究线的下一步。

但保留意见不少:

  1. 评估域太窄。只测了开放域闲聊生成,论文自己在 Limitations 里承认不测事实型 QA——也就是说 Mem0 主战场那类"记住用户 50 条事实然后准确回答"的场景,Icml 是否有效完全没有证据。对做记忆 benchmark(PM/LME 那类)的人来说,这篇的结论迁移性存疑。
  2. 奖励全靠 LLM 评委。proxy reward 和 quality reward 都是 backbone LLM 打的,评委偏好会直接塑造策略。附录 H/N 做了评委鲁棒性分析算是补了一点,但"LLM 评委 + RL"组合天然有 reward hacking 风险——策略可能学会迎合评委而非用户。
  3. 在线 RL 的真实成本。每轮交互都要 rollout + PPO 更新,论文强调毫秒级推理延迟,但训练开销(尤其是挂在闭源 API 上时,每轮都要调评委 LLM 打分)基本没算细账。真上线陪聊,这个成本结构撑不撑得住要打个问号。
  4. 无种子、无重复运行。自动指标部分没有多次运行的方差报告,RL 训练的稳定性无从判断——虽然人工评测补了显著性检验,但那 150 条样本撑不起全部结论。

工程启发总结成一句:如果你现在的记忆系统里"存不存"是规则写的,Icml 证明了这件事可以被学习,而且延迟效用的回溯回传是让学习生效的关键——没有 truth reward,只靠即时 proxy 评分,性能立刻掉 4 个点。


📝 收尾

记忆系统正在经历两层解耦:表示层从文本走向潜在空间(ThinkFlow、MemGen),策略层从规则走向学习(Icml)。Icml 的双 Agent + 延迟奖励框架是策略层目前最完整的方案,即插即用挂在闭源模型上的设计也降低了落地门槛。它不会直接替代你手上的记忆管线,但"让存取决策接受未来效用的审判"这个思想,值得每一个做记忆系统的人认真想想怎么搬到自己架构里。

觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我