
阿里巴巴集团联合上海交大、中科大的工作 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 实现的检索策略 π_θ,和一张持久的 Typed Relational Memory Graph G_t=(V_t, E_t),而答题 LLM F 始终冻结。检索出的记忆集合 A_t 是二者的耦合接口:它由路由器诱导、给答题 LLM 提供上下文、又界定了哪些记忆有资格接收结果导向的信用。
Self-Routed 查询重写与残差路由器
查询里往往同时含有语义意图与精确词汇线索,但二者相对重要性因任务而异。SR-QR(Self-Routed Query Rewriter) 用冻结 LLM 在检索前把这两种信号分离:dense 重写保留语义意图,sparse 重写强调实体与精确术语,同时输出一个初始的 dense-sparse 路由先验 p_t^0 与一个置信度特征。
关键设计是不从头训练检索策略,而是把冻结 LLM 的先验当作起点,只在线学习一个轻量残差修正。可训练的查询编码器 φ_ψ 与策略头 f_ω 产生路由策略 π_t = softmax(log p_t^0 + Δ_t),其中 Δ_t = f_ω(c_t) 的最后一层初始化为零,所以初始时 π_t 恰好等于先验 p_t^0(即 LLM 先验输出),学习过程只是让策略朝被下游奖励偏好的方向偏离先验,而非重新学一遍路由。在 Router 相位里,路由器用 Beta 分布采样两条路由的连续混合来做探索,并用 REINFORCE 算法更新,同时加一项 KL 正则限制它偏离冻结先验太远(这里用 RL 更新是让重写去学习检索)。
Q-Weighted 混合检索与时序图扩展

每条重写各自产生一个排序列表:dense 列表按描述向量相似度排,sparse 列表用 BM25 在实体与关键词上排。Q-Weighted Hybrid Retriever 用加权倒数排名融合(RRF),把路由相关性与学习到的记忆效用 Q 一起融进最终得分:
S_t(m; P) = Σ_{a∈{d,s}} (w_t^a / N_a) Σ_{i=1}^{N_a} 1/(η + rank_{a,i}^t(m;P)) + λ_Q/(η + rank_Q^t(m;P))
其中 1/N_a 这个因子很关键,它防止某条路由仅仅因为多产生了几条重写就凭数量占到更多权重。拿到初始候选池后,Temporal Graph Expansion 会用 top-k 候选的时序邻居去扩充池子,重算所有排名再返回最终 top-k。因此和固定的 ensemble 不同,这里由路由专用的重写来定义证据列表,再由结果自适应的混合权重去控制它们的曝光度,演化中的效用与时序关系则改变后续排名(RRF 只看名次、不看分数)。
Retrieval-Aligned 关系记忆图的进化
记忆图刻意镜像了检索所用的证据通道。每个节点 m 存有原始内容 x_m、稠密描述 d_m、稀疏关键词 K_m、时序元数据 s_m、来源轨迹 τ_m 以及学习到的效用值 Q_t(m);边有 Dense、Sparse、Time 三种类型,分别对应语义邻近、词汇重叠与时间先后,正好和检索的三个通道对齐。记忆演化分几步:
- Memory Construction:用固定 prompt 把每条训练轨迹(无论成败)蒸馏成一条新记忆,奖励只作为来源信息记录,不用于过滤。
- Graph TD Valuation:用固定效用 prompt 评估每个被暴露的记忆 m∈A_t,返回一个贡献分 u_t(m),再用一个 TD 风格的效用残差去更新 δ_t(m) = R_t·u_t(m) + γ·Q̃_t(m^new) − Q_t(m)。
即时项把任务结果与记忆专属归因结合,bootstrap 项把新蒸馏经验的下游效用回传给支撑它的上下文。信用还会沿着 typed edges 反向传播到相关记忆,路径按关系类型逐跳衰减,并取最强路径以避免路径数量机械地放大信用(Retrieval-Aligned 体现在用信息效用评估记忆)。
交替协同进化
同时更新路由与记忆会带来非平稳性:路由改变了记忆的曝光分布,记忆演化又改变了检索地形。CoEvo-Mem 因此采用相位块更新调度,每个时刻只让一个组件活跃,每个相位对训练集做一次完整遍历。Router 相位里图是只读的,只更新路由器 θ;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 与 retrieval 更多是联动设计,协同进化在方法中的体现其实不够充分。整体读下来门槛偏高,部分细节仍有理解空间。对工程实践的启示是:长期 Agent 的记忆系统,真正的杠杆点往往在于检索与记忆之间的反馈闭环,而非单方面的检索精度或记忆容量。

评论0