阿里巴巴集团联合上海交大、中科大的工作 CoEvo-Mem ,目前挂在 Arxiv 26.08 上,研究的是长期 LLM Agent 的记忆系统。它指出检索策略和记忆库其实是相互耦合的,但过去的方法总是固定其中一个、只优化另一个,于是提出一个闭环框架让二者协同进化,同时保持负责回答问题的 LLM 冻结
核心观点是:检索决定哪些记忆会被暴露、从而收到使用反馈,而记忆库的更新又会重塑未来检索的排序,两者构成一个被以往工作忽视的反馈环。CoEvo-Mem 把这件事形式化为一个耦合学习问题,用一个轻量残差路由器学习检索路由,用一张分型关系图承载记忆进化,并通过交替相位训练来协调二者
背景
长期 Agent 在持续交互中会产生不断增长的观察、动作、反馈和任务结果历史,单个上下文根本装不下,因此需要记忆机制把交互历史组织成可复用的持久信息。围绕记忆的已有工作大致分成两条路线:
-
Memory-access(记忆访问):用 RAG、查询重构、自适应检索去为每个查询捞出相关经验,代表如 Self-RAG、HyDE、RAG-Fusion、Search-R1
-
Memory-centric(记忆演化):改进经验如何被更新、组织和表示,从 MemQ、MemRL 这类基于价值的演化,到结构化存储和潜在记忆
问题在于这两条路线常常各自独立发展,优化一个的时候把另一个固定住。但记忆访问和演化本质上是相互增强的:检索决定了哪些记忆有机会被模型看到、进而拿到任务反馈,而记忆效用与组织的更新又反过来改变后续检索会遇到的状态。只优化一侧、把另一侧永久冻结,很容易和对方更新后的状态错配
方法

CoEvo-Mem 维护两个组件:一个由 Prior-Guided Residual Router 实现的检索策略 \(\pi_\theta\),和一张持久的 Typed Relational Memory Graph \(\mathcal{G}_t=(\mathcal{V}_t,\mathcal{E}_t)\),而答题 LLM \(F\) 始终冻结。检索出的记忆集合 \(\mathcal{A}_t\) 是二者的耦合接口:它由路由器诱导、给答题 LLM 提供上下文、又界定了哪些记忆有资格接收结果导向的信用
Self-Routed 查询重写与残差路由器
查询里往往同时含有语义意图和精确的词汇线索,但两者的相对重要性因任务而异。SR-QR(Self-Routed Query Rewriter) 用冻结 LLM 在检索前把这两种信号分离:dense 重写保留语义意图,sparse 重写强调实体和精确术语,同时输出一个初始的 dense-sparse 路由先验 \(\mathbf{p}^0_t\) 和一个置信度特征
关键设计是不从头训练检索策略,而是把冻结 LLM 的先验当作起点,只在线学习一个轻量残差修正。可训练的查询编码器 \(\phi_\psi\) 和策略头 \(f_\omega\) 产生路由策略 \(\pi_t = \mathrm{softmax}\left(\log \mathbf{p}^0_t + \Delta_t\right)\)
其中 \(\Delta_t = f_\omega(c_t)\) 的最后一层初始化为零,所以初始时 \(\pi_t\) 恰好等于先验 \(\mathbf{p}^0_t\)(这个是 LLM 先验输出的),学习过程只是让策略朝着被下游奖励偏好的方向偏离先验,而不是重新学一遍路由。在 Router 相位里,路由器会用 Beta 分布采样两条路由的连续混合来做探索,并用 REINFORCE 算法更新,同时加一项 KL 正则限制它偏离冻结先验太远(这里使用 RL 更新就是让重写去学习检索)
Q-Weighted 混合检索与时序图扩展
每条重写各自产生一个排序列表:dense 列表按描述向量相似度排,sparse 列表用 BM25 在实体和关键词上排。Q-Weighted Hybrid Retriever 用加权倒数排名融合(RRF),把路由相关性和学习到的记忆效用 \(Q\) 一起融进最终得分:
\S_t(m; \\mathcal{P}) = \\sum_{a \\in \\{d,s\\}} \\frac{w\^a_t}{N_a} \\sum_{i=1}\^{N_a} \\frac{1}{\\eta + \\mathrm{rank}\^t_{a,i}(m;\\mathcal{P})} + \\frac{\\lambda_Q}{\\eta + \\mathrm{rank}\^t_{Q}(m;\\mathcal{P})} \\
这里 \(1/N_a\) 这个因子很关键,它防止某条路由仅仅因为多产生了几条重写就凭数量占到更多权重。拿到初始候选池后,Temporal Graph Expansion 会用 top-k 候选的时序邻居去扩充池子,重算所有排名再返回最终 top-k。因此和固定的 ensemble 不同,这里是路由专用的重写来定义证据列表,再由结果自适应的混合权重去控制它们的曝光度,演化中的效用和时序关系则改变后续的排名(RRF 的做法是只看名次、不看分数)
Retrieval-Aligned 关系记忆图的进化
记忆图刻意镜像了检索所用的证据通道。每个节点 \(m\) 存有原始内容 \(x_m\)、稠密描述 \(d_m\)、稀疏关键词 \(K_m\)、时序元数据 \(s_m\)、来源轨迹 \(\tau_m\) 以及学习到的效用值 \(Q_t(m)\);边有 Dense、Sparse、Time 三种类型,分别对应语义邻近、词汇重叠和时间先后,正好和检索的三个通道对齐。记忆演化分几步:
-
Memory Construction:用固定 prompt 把每条训练轨迹(无论成败)蒸馏成一条新记忆,奖励只作为来源信息记录,不用于过滤
-
Graph TD Valuation :用固定效用 prompt 评估每个被暴露的记忆 \(m\in\mathcal{A}_t\),返回一个贡献分 \(u_t(m)\),再用一个 TD 风格的效用残差去更新 \(\delta_t(m) = R_t\, u_t(m) + \gamma\, \widetilde{Q}_t(m^{\mathrm{new}}) - Q_t(m)\)
即时项把任务结果和记忆专属归因结合起来,bootstrap 项则把新蒸馏经验的下游效用回传给支撑它的上下文。信用还会沿着 typed edges 反向传播到相关记忆,路径按关系类型逐跳衰减,并取最强路径以避免路径数量机械地放大信用(这里 Retrieval-Aligned 体现在用信息效用评估记忆)
交替协同进化
同时更新路由和记忆会带来非平稳性:路由改变了记忆的曝光分布,记忆演化又改变了检索地形。CoEvo-Mem 因此采用相位块更新调度,每个时刻只让一个组件活跃,每个相位对训练集做一次完整遍历。Router 相位里图是只读的,只更新路由器 \(\theta\);Memory 相位里路由器固定,图随训练交互顺序演化。若初始图为空,会先插入一个 Memory 相位来引导。消融实验表明,这种交替优化的效果稳定优于同时更新和两阶段更新
实验
作者在七个 benchmark 上评测,覆盖操作系统交互(LLAB)、代码生成(LiveCodeBench)、多模态推理(MMMU Pro)、科学问答(GPQA Diamond)、函数调用(BFCL),以及长期对话记忆(LoCoMo 与 LongMemEval)。答题 backbone 和 embedding 因 benchmark 而异,主检索 embedding 用 Qwen3-Embedding-8B 和 text-embedding-3-small,所有数据划分在训练前固定,测试时两个组件都冻结

总结
个人感觉这篇工作的切入点没问题,但是在方法上总让人感觉局限性很大,这个路由先验和后续的偏差训练设计还是比较局限,尤其是 memory bank 和 retireval 这里更多的是联动设计,协同进化在方法里面的体现其实不够明显。最要命的是这篇论文读起来很难懂,这里我感觉很多地方没完全理解
PDF 链接: https://arxiv.org/abs/2608.01739