Skip to content

一句话总结:Agent 记忆是把受限的"上下文窗口"通过分层 + 检索 + 压缩扩成可跨会话累积的持久认知;主流范式从人工设计分层走向"让模型自己管记忆"(MemGPT/Letta 的操作系统式记忆)。

为什么需要记忆

  • LLM 上下文窗口有限,单会话记不全、跨会话完全失忆
  • 记忆带来三层能力:会话连贯(短期)、跨会话积累偏好与事实(长期)、可复用经验(程序/情景记忆)
  • 与 RAG 互补:RAG 是静态检索外部知识,Agent 记忆是动态自我维护的内部认知

记忆分类

类型生命周期载体回答的问题
工作记忆单次任务/当前推理上下文窗口、进程内存我现在在想什么
短期记忆当前会话会话历史、滑动窗口、摘要这次对话讲了什么
长期记忆跨会话、持久向量库、关系库、知识图谱用户是谁、发生过什么
语义记忆持久向量/知识图谱(概念规则)世界是怎样的
情景记忆持久结构化轨迹/事件日志上次怎么做的
程序记忆持久技能库、策略任务怎么做

工程落地:三层标准架构

  1. 工作记忆 = 模型上下文窗口(系统提示 + 对话历史 + 工具结果)
  2. 短期记忆 = 最近 N 轮(约 8–20 轮)原始对话(环形缓冲),必要时压成"会话摘要"
  3. 长期记忆 = 向量库 + RAG 检索:重要经历 embedding 入库,决策时检索 top-K 注入

生产级混合存储

  • 用户结构化档案卡(JSON/关系型,精确键值查询,不走语义检索——消除噪声)
  • 近期对话摘要(轻量摘要替代长文本,省 token)
  • 向量库(语义检索)+ 滑动窗口(当前轮原始上下文)

MemGPT / Letta:操作系统式记忆(重点范式)

核心思想:把上下文窗口当"受限内存",像 OS 虚拟内存一样分层换入换出。

类比说明
Core MemoryRAM(常驻 prompt)命名块(human / persona),模型每轮看得见、改得动
Recall Memory磁盘缓存可检索的会话历史,模型工具搜索
Archival Memory冷存储向量索引的长期档案,模型工具插入/查询
  • 关键设计:让模型自己决定记什么、忘什么、何时归档——系统提供存储与检索,Agent 提供记忆策略(policy)
  • 原始 MemGPT 论文用两级(主上下文 / 外部上下文),模型发工具调用分页换入换出

记忆压缩与更新

  • 异步压缩:定时(如每晚)或触发(同分类事实超阈值)时,把相似向量拉出交给 LLM 聚合去重,删旧插新
  • 上下文压缩:检索 top-N 后先过滤无关、抽取相关片段、重排序,再进上下文
  • 反思(Reflection):从过去轨迹/失败抽象经验,沉淀为长期记忆
  • 记忆编辑:用户纠错时更新记忆结构

关键框架

  • Letta (MemGPT):memory-native,自带 agent loop + 记忆管理
  • Mem0:自动从交互提取长期记忆(向量检索 + 记忆更新)
  • Zep:会话记忆 + 图谱记忆、时间回溯
  • MemoryOS / AgeMem(论文):OS 启发分层存储 / RL 统一管理长短记忆(替代启发式管线)

面试要点

  • 讲清 4 类记忆(工作/短期/长期 + 语义·情景·程序)的生命周期与载体
  • 讲清"记忆 ≠ RAG":RAG 静态、记忆动态,二者常配合
  • 画出 MemGPT 三层架构,说明"模型自管记忆"为什么更优雅
  • 知道两种压缩(异步聚合 / 上下文检索压缩)
  • 会说生产混合存储:档案卡 JSON + 摘要 + 向量库 + 滑动窗口