跳转至

MemGen: Weaving Generative Latent Memory for Self-Evolving Agents

会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=vI56m4Iu4e
代码: https://github.com/bingreeky/MemGen
领域: LLM Agent / 智能体记忆 / 自进化
关键词: 生成式记忆, 潜在记忆, 自进化智能体, 元认知触发, LoRA, 强化学习

一句话总结

MemGen 让 LLM 智能体在推理过程中由一个「记忆触发器」实时判断何时需要回忆,再由一个「记忆编织器」生成一段机器原生的潜在 token 序列注入推理流,从而把记忆与思考交织成动态循环,在冻结主干、不改一个参数的前提下显著超越参数式与检索式记忆。

研究背景与动机

领域现状:让 LLM 智能体从环境交互中自我进化,目前主要靠两类记忆。一是参数式记忆(SFT / GRPO / DPO 等),把经验直接烧进模型参数;二是检索式记忆(Mem0、AWM、ExpeL 等),把经验外化成结构化数据库,用时再检索拼进上下文。

现有痛点:参数式记忆改动主干参数,不可避免地带来灾难性遗忘,侵蚀通用知识;检索式记忆虽不侵入参数,却高度依赖「上下文工程」,走的是一次性检索、拼接、再执行的僵硬流水线,记忆只是被「贴」在 query 前,无法与推理真正融合。即便是已有的潜在记忆方法(KV-cache 类只解决长上下文,潜在 embedding 类仍要改 LLM 参数),也都停留在「按相似度检索」而非「生成式重构」,缺少人脑那种思考与回忆相互塑形的连续交互。

核心矛盾:智能体记忆要么改参数(遗忘)、要么靠拼接(僵硬),始终无法做到「在推理的任意关键节点,按需生成贴合当下状态的记忆并无缝融入思考」。

本文目标:把智能体记忆设计成一种动态认知能力——能在推理途中流式、重构式地生成记忆,并与推理交织演化。

核心 idea「触发 + 编织」双组件——用 RL 训练一个元认知监控器在 token 级别决定「何时回忆」,再用一个生成器把当前认知状态重构成定长潜在记忆序列注入推理,主干 LLM 全程冻结,记忆知识只内化进编织器。

方法详解

整体框架

MemGen 在冻结的核心推理器 \(\pi_\theta\) 自回归生成的同时,逐 token 监控其内部隐藏状态:触发器 \(\mathcal{T}_{trigger}\) 判断当前是否需要「回忆」,一旦决定 INVOKE 就暂停生成,由编织器 \(\mathcal{W}_{weaver}\) 以当前认知状态为刺激、生成一段潜在记忆 token 序列 \(M_t\),前置注入后推理器再恢复生成。整个过程是「生成→监控→触发→编织→重整合」的递归循环,主干参数一动不动。

flowchart LR
    A[状态 s_t] --> B[冻结推理器 π_θ<br/>逐 token 生成]
    B --> C{触发器 T_trigger<br/>读隐藏状态 H_t,<j}
    C -->|SKIP| B
    C -->|INVOKE 暂停| D[编织器 W_weaver<br/>重构潜在记忆 M_t]
    E[(外部记忆库<br/>可选)] -.-> D
    D --> F[M_t 前置注入<br/>z_t,j ~ π_θ·|s_t,z,M_t]
    F --> B

关键设计

1. 交织式记忆-推理循环:把记忆从「开场白」变成「随叫随到的伴随者」。传统框架只在任务起点检索一次记忆,MemGen 则让记忆在 token 级别动态参与。推理器对状态 \(s_t\) 生成动作 \(a_t=(z_{t,1},\dots,z_{t,L_t})\) 时,每生成一个 token 都产生对应隐藏状态序列 \(H_{t,<j}=(h_{t,1},\dots,h_{t,j-1})\);触发器据此算出调用概率,若需回忆则编织器产出定长 \(M_t\in\mathbb{R}^{K\times d_{model}}\),其隐藏状态被前置到 \(H_{t,<j}\),推理器在富化上下文上继续:\(z_{t,j}\sim\pi_\theta(\cdot\mid s_t,z_{t,<j},M_t)\)。关键在于 \(M_t\) 不是对历史内容的逐字复述,而是经编织器过滤、整合的选择性重构,类比人脑的记忆巩固——这让推理从线性展开升级为「与记忆的递归对话」,且因 \(\pi_\theta\) 冻结而天然保住通用能力、规避遗忘。

2. 记忆触发器:用元认知信号学会「何时该回忆」。触发器实例化为挂在 \(\pi_\theta\) 上的轻量 LoRA 适配器,输入是隐藏状态而非文本(潜在 embedding 保留了 softmax 解码后会丢失的上下文敏感信息),输出调用概率 \(p_j=\sigma(\mathcal{T}_{trigger}(h_{t,1},\dots,h_{t,j-1}))\),再采样二元决策 \(d_j\sim\mathrm{Bernoulli}(p_j)\)。为控开销,它采用句子粒度激活:只在分隔符集合 \(D\)(逗号、句号等)处才计算,\(z_j\notin D\)\(p_j=0\),把干预限制在语义边界以保解码效率。训练用 RL,目标是「在关键处稀疏调用」,因此引入奖励自适应惩罚\(\max_\phi\ \mathbb{E}[R(\tau_i)-\lambda\sum_{i,j}\max(0,\tilde d_{i,j}-\bar p)]\),其中 \(\bar p\) 是高奖励轨迹(奖励超过批次中位数)上的平均激活概率,从而压制无谓激活又保留必要回忆。

3. 记忆编织器:把经验内化进自己、生成式合成潜在记忆。编织器同样是一个挂在 \(\pi_\theta\) 上的 LoRA 适配器,接收 hook \(H_{t,<j}\) 后输出潜在记忆矩阵 \(M_t=\mathcal{W}^{\theta'}_{weaver}(H_{t,<j})\),经线性层投影对齐到 token 嵌入空间再前置注入。最关键的解耦:智能体吸收新经验时,知识只写进 \(\mathcal{W}_{weaver}\) 的参数,\(\pi_\theta\) 完全不动——这使 MemGen 与优化算法无关、与各种主干兼容,无论 SFT 还是 GRPO/DAPO,都在统一目标下更新:\(\max_{\theta_{lora}}\mathbb{E}\,R(x_i,\tau)\),梯度只回传到 \(\theta'\)。训练上采用「先用随机插入器作触发器的轻量替身训练编织器,再冻结编织器训练触发器」的两阶段流程。此外编织器可与任意检索系统(MemoryBank、ExpeL 等)组合:检索到的文本记忆与 hook 合并喂入编织器,让它同时整合内部参数知识与外部信息。

实验关键数据

主实验表格(SmolLM3-3B / Qwen3-8B,准确率 %,节选)

方法 ALFWorld TriviaQA PopQA KodCode GPQA GSM8K
Vanilla (3B) 18.96 10.47 8.23 37.05 9.35 47.63
GRPO (3B) 55.35 65.88 45.16 68.48 22.73 80.03
ExpeL (3B) 36.18 46.20 28.16 51.14 15.15 56.23
MemGen GRPO (3B) 63.60 79.30 58.60 72.85 25.20 83.47
GRPO (8B) 85.60 76.15 58.90 73.35 39.54 92.30
AWM (8B) 80.33 69.30 43.69 - - -
MemGen GRPO (8B) 90.60 80.65 62.30 76.16 40.24 93.20

覆盖 9 数据集 / 5 领域、对比 12 个基线(提示式 / 参数式 / 检索式 / 潜在计算四类)。MemGen 在所有领域全面领先:Qwen3-8B 上 KodCode +27.06%、PopQA +28.17%(相对 vanilla),并超过强 GRPO 最多 3.4%。

消融实验(潜在记忆长度 K 敏感性)

潜在记忆序列长度 \(K\in\{2,4,8\}\),过短信息量不足、过长引入噪声,存在性能最优区间(详见原文 Figure 6 左)。集成检索式记忆的变体结果置于附录 F。

关键发现

  • 跨域泛化(RQ2):在 KodCode 上训练,MATH 从 36.6%→54.2%;触发器会按任务自适应调节调用频率——GSM8K 提升最大(+19.64%)调用最多,KodCode 提升最小调用最少,说明它能判断「在陌生域少插记忆」以避免域冲突。
  • 持续学习(RQ3):顺序训练四数据集,MemGen 在 KodCode 训练后 AQuA 仍保 40.34%(ExpeL 27.14%、SFT 28.61%),有效缓解灾难性遗忘。
  • 涌现人类式记忆层级(RQ4):无显式监督下,潜在记忆经 t-SNE 自发按域聚类(机器原生、不可读但有结构规律);后验干预(删除特定 cluster)揭示出功能分化的规划记忆、程序记忆、工作记忆三类——例如删掉 Cluster 2 会激增规划/组合推理失败。

亮点与洞察

  • 「生成式重构」而非「检索复述」:把记忆当作可被重新合成的认知产物,跳出了检索式记忆「按相似度取回」的范式局限。
  • 冻结主干 + 外挂双 LoRA:知识只进编织器,从架构上彻底隔离了「学新经验」与「保通用能力」,天然免疫灾难性遗忘,且与优化算法 / 主干解耦。
  • token 级元认知触发:句子粒度激活 + 奖励自适应惩罚,让「何时回忆」本身成为可学习、可解释的稀疏决策。
  • 可解释性意外收获:功能分化的记忆层级是自发涌现而非设计强加,为「机器认知向自然化形态演进」提供了实证线索。

局限与展望

  • 潜在记忆机器原生、人类不可读,强制解码只见结构规律不见语义,可解释性仍有限,调试与可信度存疑。
  • 触发器 + 编织器双组件 + 两阶段训练,工程复杂度高于纯检索方案;句子粒度激活虽控了开销,但插入仍带来一定推理延迟(原文附录 E.3.3 验证可接受)。
  • 实验主干集中在 1.5B–8B,更大模型上潜在记忆的容量与收益尚待验证。
  • 「人类式记忆层级」基于后验干预的归因解读,因果性证据仍偏弱。

相关工作与启发

  • 参数式记忆(FireAct、AgentLumos、Agent-FLAN):经验进参数,强但遗忘。
  • 检索式记忆(Mem0、AWM、ExpeL、MemoryBank、G-Memory、AgentKB):经验外化进数据库,不遗忘但僵硬。
  • 潜在 / 潜在计算(Coconut、CODI、CoLaR、SoftCoT、LatentSeek、Co-processor):用潜在状态做原生推理或调制生成,MemGen 归属此脉络但强调推理-记忆交织与生成式重构。
  • 启发:把「记忆」从静态数据/参数升级为「按需生成的动态认知模块」,并用元认知信号控制其调用时机,为自进化智能体提供了一条「不改主干也能持续学习」的新路径。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 「生成式潜在记忆 + token 级元认知触发 + 冻结主干外挂双 LoRA」是对智能体记忆范式的实质性重构,并意外揭示涌现的功能分化记忆层级。
  • 实验充分度: ⭐⭐⭐⭐ 9 数据集 5 领域、12 基线、3 种主干,覆盖主实验 / 泛化 / 持续学习 / 机制分析四问,较全面;更大模型与延迟代价的权衡可再补。
  • 写作质量: ⭐⭐⭐⭐⭐ 「记忆-推理交织」的认知隐喻贯穿全文,图 1/2 对比清晰,RQ 驱动的结构读来顺畅。
  • 价值: ⭐⭐⭐⭐⭐ 同时解决遗忘与僵硬两大痛点,方法与优化算法/主干解耦、可即插即用,对自进化智能体与记忆系统社区有较强借鉴意义。