Memory调研笔记0

现在最落地的 memory,多半是外部存储 + 人工规则/工具 API,llm agent也可能参与memory的管理和查询(mem0 / MIRIX / DVD / WorldMM)。

新趋势是“让模型学会管记忆”,可以分两派:

  • 固定操作集下学策略(Memory-R1:ADD/UPDATE/DELETE/NOOP)
  • 直接把记忆揉进推理过程(MEM1:内部状态 <IS> 迭代压缩)

视频领域基本在复刻这两派:

  • 结构化外存 + 自动回忆工具链(DeepVideoDiscovery)
  • 层级记忆 + 先粗后细 + 多 agent(VideoLucy)
  • 端到端带记忆看视频,即MEM1用到视频上(VideoMem:SFT+RL,但训练很贵,3200 A100 hours)

1.Memory Reseach的背景

LLM的长上下文限制已经是总所周知的问题了,不仅是上下文窗口塞不下,attention计算量增加,还会存在注意力稀疏关注不到重点的问题(个人试过用kimi-k2、deepseek等api做qq聊天记录总结,会发现超长上下文情况会有很大幻觉。也尝试过用Qwen3-VL-8B搭流视频理解,发现长视频token下提问容易被过时事件干扰)。比较古典的解决方法是用RAG,直接暴力用问题检索向量数据库,但这方法从数据库搭建(碎片化)到检索内容(因果推理,数字等语意理解极度low level)哪哪都是问题,噪声很大。

所以自然需要研究如何从数据库的组织方法、内容的检索策略上做优化,现在我们一般用memory这个概念来称呼这类研究(

2.memory代表工作介绍

mem0(arxiv 2504.19413)

目前最热门memory开源项目,方法为 Agent 用固定 API 操作向量数据库,维护一堆碎片记忆条目。

核心做法:

  • LLM 先从对话里识别关键信息(facts)
  • 再通过固定 API 做 增删改查(ADD/UPDATE/DELETE/…)
  • 记忆形态偏零散、轻量、工程可落地 优点:简单、容易开源落地、可控性强。 缺点:
  • “识别什么该记”很吃 prompt/启发式
  • 本质只是个用llm赋能优化了向量数据库维护的RAG系统,碎片多了以后,检索质量和一致性很容易漂
  • 长期连贯性不靠“理解”,更像“记笔记的草稿本”

MIRIX(arxiv 2507.07957)

也是个很热门的开源项目,把记忆做成“操作系统”,设计结构化记忆用multi-agent管理,自动路由。

共设计了六类记忆:

  • 核心记忆:user profile(最高优先级)
  • 情景记忆:日记式
  • 语义记忆:概念/实体/关系抽象
  • 程序记忆:流程/技能
  • 资源记忆:长文档/大文件
  • 敏感记忆:密码/API key(注意合规与隔离)

管理方式:Multi-agent

  • 存储:Meta Memory Manager 从上下文识别要存的东西,分发给 6 个 sub-agent
  • 检索:Chat Agent 先看 6 类 summary → 决定查哪类 → 用向量(会自己重写query)/BM25/精确匹配等查

优点:

  • 结构化强,工程可控,适合复杂任务/企业场景
  • “记忆类型”本身就是一种 inductive bias(归纳偏置)

缺点:

  • 设计重、维护成本高

Memory-R1(arxiv 2508.19828)

llm没有训练过如何管理记忆,导致有时“存/更新/删/不管”的行为不合理,那就考虑把 mem0 的记忆 API 操作,变成可以用 RL 学出来的策略,使得记忆维护的更精确。

模块 1:Memory Manager

对每条新 fact,从 {ADD, UPDATE, DELETE, NOOP} 里选一个 RL 流程:

  • 管理器操作 → 新记忆库状态
  • 冻结的 Answer Agent 用新记忆回答问题
  • 与 GT 比较(EM)→ 给奖励

模块 2:Answer Agent

  • 从 RAG top-k(很多,60条)候选里,CoT推理出一小部分最有用的,然后回答
  • 按答案给奖励

(Answer Agent RL有点丑陋,本质像在训一个更会做过滤的模型)

优点:

  • 把“记忆管理”从 prompt 手艺活,推进到可学习策略
  • 操作集小,训练更稳

优化的方向:

  • 固定操作集限制表达力(“记忆结构”很难涌现)
  • 奖励信号似乎比较粗粒度

MEM1(ICLR26 score8666)

不搞外部库,直接让 Agent 学会把过去压缩进一个新的总结文本 <IS>,迭代更新。

核心机制:

  • 用文本 <IS> 维护“内部状态/记忆”
  • 每轮 t:生成新的 <IS_t>,总结旧记忆 + 新观察 + 推理
  • 更新完得到 <IS_(t+1)> 后,丢弃旧标签,防止 prompt 变长,逼模型学压缩与整合

RL 设计:

  • PPO 端到端,只用任务成功做奖励
  • 通过改mask限制注意力:每个 token 只能看当时仍保留的 token,逼它学会在当前memory下推理

优点:

  • 自由度最高:理论上“记忆结构”可能自己长出来
  • 内存使用可控(cache 类的极致)

缺点:

  • 少量的memory状态在超长上下文下最终也得丢失信息

3.视频理解方向的memory工作

VideoMem(arxiv 2512.04540)

MEM1 + Video工作

让 agent 带着问题一段段看视频,边看边更记忆,SFT + RL。由于长视频数据每个视频就一个问题,RL监督力度不够,改了下GRPO,每看一段视频片段都尝试回答一下问题然后RL。

训练很烧(3200 A100 hours),没开源。 定位:cache 类(精简记忆进上下文)在视频任务上的版本。 隐含代价:视频领域的“观察”太大太噪,端到端学压缩更贵。

VideoLucy(NeurIPS25)

固定三层层级记忆 + 先粗看后细看的策略 + 回溯 loop(multi agent,为了用强推理模型)

四个 agent:

  • Captioning Agent:看视频片段 → 产文本描述(系统的眼睛)
  • Localization Agent:根据问题 + 当前记忆 → 找最相关时间段(导航与过滤)
  • Instruction Agent:判断还缺啥信息 → 生成更具体的指令给 Captioning(告诉眼睛看哪里)
  • Answering Agent:判断是否足够回答;不够就触发下一轮回溯

经验结论: 这种“自动回忆/回溯”很吃主控推理引擎质量(Deepseek-R1 / o3 ),所以才整了个VL看视频转述给llm推理的pipeline,实验也提到换弱一点开源模型性能会明显掉。

DeepVideoDiscovery(NeurIPS25)——“结构化记忆 + 工具链式回忆(Global/Clip/Frame 三层)”

把视频记忆做成三层索引体系,然后让强主 agent 通过工具一步步查。

三层记忆结构:

  • Global:主体注册表(Subject Registry)——谁出现、啥特征、在哪些时间段
  • Clip(5 秒一段):caption + embedding,便于语义检索
  • Frame(比如 2fps):需要细节时做 VQA/检查(车牌号、物体交接等) 记忆最后大概组织成:{Global, {Clip, Frame}_i}

工具(由主 agent 调):

  • Global Browse:宏观概览
  • Clip Search:按 query 检索相关 clip caption
  • Frame Inspect:指定 query 或 time_range,对帧做 VQA

定位:磁盘类 + 自动回忆(工具链),工程味很浓,也很实用,也是VL看视频转述给llm推理,依赖强推理引擎

WorldMM(arxiv 2512.02425)——“多模态世界记忆:情景/语义(图)+ 视觉(向量库)”

把记忆拆成三块:情景记忆图、语义记忆图、视觉记忆向量库。跟DVD比基本就是记忆结构设计不同,加强版

4.memory分类坐标系

按目前调研来看,可以用4个纬度来分类memory:

  1. 存哪里?
  • 外部“磁盘类”:向量库/文档库/图数据库,推理时按需检索(mem0、MIRIX、Memory-R1、DVD、WorldMM、DeepVideoDiscovery)
  • 内部“缓存类”:直接维护一个精简 state ,推理时全放进上下文(MEM1、VideoMem)
  1. 长什么样?
  • 零碎化(碎片 facts)
  • 结构化(profile / 层级 / 图 / registry)
  1. 谁来管?
  • 人工策略/固定路由(成熟落地多)
  • 可学习管理(RL / 端到端)
  1. 怎么回忆?
  • 固定检索(top-k 向量相似度 + BM25 + 精确匹配)
  • 自动回忆(automatic agent,先粗看再细看、工具调用、回溯循环、强推理模型主控)

5.个人一些启发性的insight

  1. 记忆是感知的先验,人看视频可能会根据先前情节决定后面更关注什么内容,但“用问题当先验”可能太强 VideoMem 用 question 引导记录什么——有效但强条件:真实应用里问题不一定先给你。而且导致拿到问题后才能开始构架记忆,延时高,特别是流式场景下

现实更像:实时被动观察 → 形成可复用记忆 → 遇到问题马上就可以回忆/检索。 所以可考虑从“无问题条件下的记忆组织”入手

  1. 从调研看记忆可分为磁盘形记忆(记很多,按需检索一部分进上下文)和缓存型记忆(记很少,但每次推理都全带着),那感觉可以结合两者提出混合型:
  • cache:高频、近期、强相关的“工作集(working set)”
  • disk:长尾细节、可回溯证据、资源文档
  • 是否可以让模型学习记忆要放在“缓存”还是“磁盘”,使得大部分情况可以直接回答,小部分情况进一步检索也能回答?
  • 核心难点:让模型学会“该放缓存还是该落盘”(并且能自我纠错)
← 返回文章列表