长期Agent记忆系统新思路:检索与记忆协同进化

文章配图

长期Agent记忆系统新思路:检索与记忆协同进化

阿里巴巴集团联合上海交大、中科大提出了 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,而答题 LLM 始终冻结。检索出的记忆集合是二者的耦合接口:它由路由器诱导、给答题 LLM 提供上下文、又界定了哪些记忆有资格接收结果导向的信用。

Self-Routed 查询重写与残差路由器

查询里往往同时含有语义意图和精确的词汇线索,但两者的相对重要性因任务而异。SR-QR(Self-Routed Query Rewriter) 用冻结 LLM 在检索前把这两种信号分离:dense 重写保留语义意图,sparse 重写强调实体和精确术语,同时输出一个初始的 dense-sparse 路由先验和一个置信度特征。

关键设计是不从头训练检索策略,而是把冻结 LLM 的先验当作起点,只在线学习一个轻量残差修正。可训练的查询编码器和策略头产生路由策略,其中残差项最后一层初始化为零,所以初始时策略恰好等于先验(LLM 先验输出的),学习过程只是让策略朝着被下游奖励偏好的方向偏离先验,而不是重新学一遍路由。

文章配图

在 Router 相位里,路由器会用 Beta 分布采样两条路由的连续混合来做探索,并用 REINFORCE 算法更新,同时加一项 KL 正则限制它偏离冻结先验太远(这里使用 RL 更新就是让重写去学习检索)。

Q-Weighted 混合检索与时序图扩展

每条重写各自产生一个排序列表:dense 列表按描述向量相似度排,sparse 列表用 BM25 在实体和关键词上排。Q-Weighted Hybrid Retriever 用加权倒数排名融合(RRF),把路由相关性和学习到的记忆效用 Q 一起融进最终得分。

这里的 1/N 因子很关键,它防止某条路由仅仅因为多产生了几条重写就凭数量占到更多权重。拿到初始候选池后,Temporal Graph Expansion 会用 top-k 候选的时序邻居去扩充池子,重算所有排名再返回最终 top-k。

因此和固定的 ensemble 不同,这里是路由专用的重写来定义证据列表,再由结果自适应的混合权重去控制它们的曝光度,演化中的效用和时序关系则改变后续的排名(RRF 的做法是只看名次、不看分数)。

Retrieval-Aligned 关系记忆图的进化

记忆图刻意镜像了检索所用的证据通道。每个节点存有原始内容、稠密描述、稀疏关键词、时序元数据、来源轨迹以及学习到的效用值;边有 Dense、Sparse、Time 三种类型,分别对应语义邻近、词汇重叠和时间先后,正好和检索的三个通道对齐。记忆演化分几步:

  • Memory Construction:用固定 prompt 把每条训练轨迹(无论成败)蒸馏成一条新记忆,奖励只作为来源信息记录,不用于过滤。
  • Graph TD Valuation:用固定效用 prompt 评估每个被暴露的记忆,返回一个贡献分,再用一个 TD 风格的效用残差去更新。即时项把任务结果和记忆专属归因结合起来,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 这里更多是联动设计,协同进化在方法里面的体现其实不够明显。此外论文本身读起来很难懂,很多地方没完全理解。

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?