Skip to content

Agent 记忆系统

方向定位:聚焦 Agent 如何"记住、检索、遗忘、复盘"——从对话级短期记忆到用户级长期记忆,从存储工程到记忆模型训练,从应用功能到基础设施。不研究通用知识库/RAG(除非与记忆耦合)、不研究 LLM 内部注意力机制(除非作为记忆瓶颈讨论)。 当前版本:v0.2 首次构建:2026-05-12 最近更新:2026-05-19 来源数:9 篇

方向定位

Agent 记忆系统研究的核心问题是:"如何让 Agent 把历史经验有效转化为当前决策"。它的边界包括:

  • 包含:记忆的分类与建模、存取的存储工程、检索评分机制、覆盖与冲突治理、反思与整合、记忆训练范式、记忆基建化趋势
  • 不包含:通用 RAG 文档检索(除非用于记忆场景)、Transformer 注意力机制本身(仅作为瓶颈讨论)、LLM 微调技术(仅讨论 Agentic RL 训练记忆模型)
  • 与相邻方向的区别:与"Agent 架构"方向的区别在于本方向只看记忆模块的内部设计;与"Agent 工程实践"方向的区别在于本方向不讨论控制流/工具调用等非记忆议题

记忆是 Agent 从"能用"到"好用"的分水岭,也是当前 Agent 走进生产系统的三大短板之一(与 Harness、安全并列)。

知识图谱

  • 记忆的分类
    • 按时序:工作记忆 / 情景记忆 / 语义记忆 / 程序性记忆
    • 按消费者:模型记忆(供 LLM 推理)/ 业务记忆(供工具层使用)
    • 按粒度:认知层(记住说过什么)/ 行动层(记住怎么做事)
  • 记忆的存储架构
    • 三层落地:Context Window → Redis → Vector DB + PostgreSQL + Neo4j
    • 双层数据模型:List(对话历史) + Hash(业务上下文)
    • 抽象闭环:Raw Ledger + Derived Views + Policy
  • 记忆的检索与评分
    • 三维评分:Recency + Relevance + Importance
    • 二阶段检索:向量粗召回 → Cross-Encoder 精排
    • Bi-temporal 双时态:valid_time + transaction_time
  • 记忆的整合与维护
    • 反思(Reflection):情景→语义提炼
    • 整合(Consolidation):去重合并 + 主动遗忘
    • 三层抑制:validity gating → tombstone → decay
  • 记忆覆盖问题
    • 三类故障:直接冲突 / 摘要压缩 / 语义漂移
    • 四种解法:版本化 / 冲突检测 / 作用域隔离 / 摘要防失真
  • 记忆模型与训练
    • 主流路线:"翻笔记"(外部数据库 + 工作流)
    • MemoraX 路线:模型内生 + Agentic RL 训练
    • 程序性记忆:Skill-MDP 三阶段(生成 / 验证 / 维护)
  • 记忆基建化
    • 从产品功能 → Agent 基础设施
    • 本地优先 + MCP 协议暴露
    • 所有权归用户,不归厂商

核心概念

概念 1:四类记忆分类

源自认知科学的经典分类,已成为 Agent 记忆模块设计的起点。

定义与映射:

类型内容特点技术映射
工作记忆当前任务上下文、推理中间状态、工具返回结果高频读写、生命周期短LLM Context Window / messages[]
情景记忆过去经历的具体事件(带时间戳和场景)按相似场景匹配检索向量数据库 / JSONL 会话历史
语义记忆从经验提炼的通用知识和规则脱离具体事件的抽象认知向量 + 关系型 DB / MEMORY.md
程序记忆学会的操作流程和技能结构化 SOP/workflow结构化存储 / Skills 文件

流转关系:工作记忆 → 情景记忆 → 语义记忆 → 程序记忆(逐层沉淀提升)

适用场景:作为 Agent 记忆设计的需求分类框架——"这个 Agent 到底需要记住什么?"在设计存储前,先把记忆需求按四类拆开。

概念 2:双层数据模型(模型记忆 vs 业务记忆)

来自淘宝闪购 Agent Tair 实践——按"消费者"维度拆分记忆,是工程落地的关键洞察。

记忆类型数据结构Key 设计核心操作消费者
模型记忆(对话历史)Listmemory:model:{sessionId}RPUSH 追加、LRANGE 范围读取LLM 推理上下文
业务上下文Hash(多 field)memory:context:{sessionId}HSET/HGET 字段级读写工具层、意图处理器

业务上下文 Hash 的典型 6 个子模块(淘宝闪购实例):session、search、order、conversation、coupon、bizState

关键设计原则:选 Hash 而非 JSON String,因为 field 级独立读写——各业务模块可并发更新互不干扰。LLM 消费的是自然语言连续文本(关注语义连贯),业务消费的是结构化状态字段(关注字段精确),两者数据格式、读写模式、更新频率完全不同。

概念 3:认知层 vs 行动层记忆

来自 OpenChronicle 团队对记忆本质的二层划分。

层级含义难度举例
认知层记住你说过什么相对简单"用户喜欢用 TypeScript"
行动层记住你怎么做事极其困难"用户说'加日程'时,默认放飞书而非 Apple Calendar"

关键判断:行动层记忆是 Proactive Agent(主动式智能体)的前提——需要理解用户在不同场景下的偏好、惯性、潜规则,不是简单 key-value 能解决的。

概念 4:Memory = 可被决策利用的外部状态(非存储)

源自阿里妹"Ledger-Views-Policy 三件套"的核心命题,颠覆了"记忆=存储"的直觉。

  • 存了很多历史 ≠ 能力:能力来自历史能否影响当前决策分布
  • 记忆输出的两种形态:要么进入上下文(证据/摘要/子图),要么直接参与决策(logits 调制)
  • 价值通道:从历史到当前决策的通道是否有效,决定记忆系统价值

与传统 RAG 视角的差异:RAG 把记忆当成可检索文档,三件套理论把记忆当成可被决策利用的状态空间——"决策有效性"取代了"召回率"作为衡量标准。

延伸:Augmented LLM 三件套:Anthropic《Building Effective Agents》把"增强型 LLM"定义为标配 3 项能力——Retrieval(检索)/ Tools(工具)/ Memory(记忆),并把记忆定义为"模型决定保留哪些信息跨步骤复用"。这与本概念"记忆 = 可被决策利用的外部状态"形成跨派别共识:记忆不是被动存储,而是主动复用。完整原始素材见 Agent设计哲学与决策框架 概念 1。

概念 5:Raw Ledger + Views + Policy 三件套

Memory 的最小闭包架构,三者缺一不可。

组件类比职责
Raw Ledger账本/黑匣子追加式记录所有写入/更新/删除动作,append-only
Derived Views缓存+索引+物化视图面向检索的派生状态(向量/BM25/KG/TKG/timeline/skill index),lossy 但可回指 Ledger
Policy调度器/控制回路决定何时读/写/更新/遗忘,输出必须是可记录/可回放的 Action 序列

event 是 Ledger 的数据形态,views/policy 是能力形态。

最通用的 Ledger event 包含:scope(用户/会话/任务)、时间戳、输入观测、系统动作、记忆变更(ADD/UPDATE/DELETE/NONE)、反馈信号、决策元数据。

Policy 是最常被低估的瓶颈——写多了污染,写少了学不到;UPDATE/DELETE 错一次会滚雪球。

概念 6:Bi-temporal 时序模型

记忆系统中时序必须作为架构的结构维度,而非 metadata。

两个独立时间轴:

  • valid_time:事实在世界中何时为真
  • transaction_time:系统何时写入/更正(与 append-only ledger 一致)

两者不等价:今天可以纠正上周的事实。

遗忘的三层抑制机制(顺序不可颠倒):

  1. validity gating:硬门控,不在有效窗口内的事实不进候选集
  2. tombstone:可审计抑制,append-only 撤回某条记忆的可见性
  3. decay:软权重,在有效集合内做偏好排序

时间地基瓶颈:时间归一化在 fast path 错了 → 上层所有 view 被污染。LLM 天然倾向"合理化"错误时间,很难自洽修复——时间解析应作为一等公民组件(非 LLM、可重放、输出置信度)。

概念 7:三类记忆覆盖故障

来自字节大模型二面解析——记忆覆盖不是单一问题,而是三种根因不同的故障模式。

类型机制危害典型案例
直接冲突型用户不同时间给出矛盾信息,新信息直接替换旧信息永久丢失历史上下文"在北京工作" → "搬到上海",但未来推荐可能仍需北京历史
摘要压缩型对话压缩时有损丢弃关键细节,多次压缩产生级联丢失原始关键信息被彻底抹平十轮对话压缩只保留 1-2 个细节
语义漂移型Embedding 语义相似≠语义相同,误判为同一条而替换记忆被悄悄篡改,极难排查"简洁的代码风格"和"简洁的沟通风格"被错误合并

深层根因:用确定性存储系统管理本质上不确定的语义信息,而连接两者的语义理解本身就不完美。

方法论与框架

方法 1:记忆写入流水线(Sense → Judge → Distill → Store)

核心思想: 不要全量记录每轮对话——会让记忆库膨胀且检索噪音大。

适用场景: 所有需要长期记忆的 Agent 系统。

操作步骤:

  1. 感知(Sense):识别本轮对话是否包含新信息(旧信息复述不写入)
  2. 判断(Judge):用 LLM 判断该信息是事实/偏好/事件/规则中的哪一类
  3. 提炼(Distill):用 LLM 提炼成结构化的记忆条目
  4. 冲突检测:与已有记忆做相似度召回 + LLM 判断关系(矛盾/补充/重复/无关)
  5. 存储(Store):版本化写入,附带元数据(时间、来源、置信度、作用域)

注意事项:

  • LLM 提炼可能误解或丢失关键限定条件,高风险场景需用户确认
  • 写入前与已有记忆冲突检查防止自相矛盾
  • 不能依赖纯向量相似度判定语义相同——必须叠加 LLM 关系判定

方法 2:三维评分检索模型(Generative Agents)

核心思想: 单一相似度评分不够,记忆检索需结合时近性 + 相关性 + 重要性三维评分。

score = α × recency + β × relevance + γ × importance
维度含义实现方式
Recency(时近性)越近的记忆分数越高指数衰减函数
Relevance(相关性)语义匹配度Embedding + 余弦相似度
Importance(重要性)记忆固有重要程度LLM 写入时打分 + 引用频率动态调整

适用场景:

  • 客服场景:recency 权重高(关注用户最近状态)
  • 知识问答:relevance 权重高(关注语义匹配)
  • 长期个性化:importance 权重高(关注稳定偏好)

工程优化:

  • 元数据预过滤:按用户 ID、记忆类型、时间范围先筛掉不相关条目
  • 二阶段检索:向量粗召回 Top-50 → Cross-Encoder 精排 → Top-5 注入上下文

方法 3:反思机制(Reflection)—— 从经验到规则

核心思想: 经历过的事件不等于学到的规则。定期让 LLM 从情景记忆提炼语义记忆,是 Agent 真正"学到东西"的关键机制。本方法只关注反思如何沉淀为新的语义记忆这一环节;反思机制本身的工程化(Self-Refine 三步循环、评估/改进 Prompt 设计、单 Agent 自反思 vs 多 Agent Critic、Pass@k 等评测口径),详见 Agent评估与反思机制

触发条件:近期情景记忆的重要性总分累计超过阈值

执行过程

  1. LLM 对最近 N 条情景记忆提问:"从这些经历中能得出什么更高层次的结论?"
  2. 输出新的语义记忆条目(重要性评分较高)

经典案例:客服 Agent 过去一周处理 50 个退货请求,其中 30 个是"商品描述和实物不符"——反思机制提炼出"优先询问描述不符"的规则后,无需逐条检索 50 条历史。

配套整合操作:

  • 合并去重:定期用 LLM 对高度相似条目做聚类和合并
  • 主动遗忘:衰减系数 + LLM 定期审视标记过时记忆

评估反馈如何回写记忆(与评估方向的接口):

  • 评估侧产出 PASS / 失分项 / Critic 批注 / 优质样本(详见 Agent评估与反思机制 方法 1、案例 8)后,进入本方向的写入流水线(方法 1 Sense→Judge→Distill→Store):
    • PASS 样本 → 作为情景记忆写入,命中阈值后由本方法提炼为语义/程序记忆
    • 失分项 / 批注 → 经"判断"识别为规则类信息,直接写入语义记忆,并做版本化与冲突检测(方法 4)
    • 多轮 Refine 路径 → 作为程序性记忆候选,进入 Skill-MDP 三阶段验证(方法 7)
  • 即:评估的输出是写入流水线的输入,由本方向决定"记什么、记到哪一层、覆盖还是新增"。

方法 4:四种记忆覆盖解法(组合使用)

核心思想: 单一解法不能覆盖所有覆盖故障,四种解法形成"写入-读取-维护"三条链路。

解法 1:记忆版本化

  • 不覆盖,每次写入都追加为新版本
  • 元数据:创建时间、最近访问、来源对话 ID、置信度、作用域
  • 检索同主题所有版本,结合时间顺序和当前上下文裁决
  • 代价:存储膨胀 + 检索复杂度上升

解法 2:语义冲突检测

  • 新记忆进入 → 向量召回 Top-K → LLM 判定关系(矛盾/补充/重复/无关)→ 决定动作(更新/新增/合并/忽略)
  • 工具:Mem0 开源项目已系统实现

解法 3:作用域隔离(三个维度)

维度策略类比
时间维度区分永久事实/偏好/项目状态/临时指令,不同 TTL数据库字段的 TTL
领域维度编程偏好、沟通风格、业务知识等不同命名空间数据库的 schema 隔离
层级维度全局偏好 → 项目配置 → 单次指令,低层级临时遮蔽高层级编程变量作用域规则

解法 4:摘要防失真

  • 关键信息提取前置:压缩前先用 LLM 提取关键实体和事实(JSON 结构化),不参与摘要
  • 分级压缩策略:高重要度保留原文/轻压缩,中等标准摘要,低重要度激进压缩/丢弃
  • 压缩后完整性校验:LLM 检查原始关键信息是否在摘要中体现,遗漏则补充

生产级三条链路

写入链路:关键事实提取 → 冲突检测 → 作用域标注 → 版本化写入
读取链路:多版本召回 → 作用域过滤 → 时效性排序 → 上下文裁决
后台维护:记忆整合 → 过期归档 → 冲突审计

方法 5:三层落地架构

核心思想: 记忆系统不是单一存储,而是分层流水线——快速访问 + 持久化 + 长期检索各司其职。

层级名称存储引擎职责
L1工作记忆层Context Window摘要 + Buffer(保留最近 3-5 轮原始对话 + 更早历史摘要压缩)
L2近期记忆层Redis(sorted set)当前会话完整历史 + 近 7 天高频记忆,快速范围查询
L3长期记忆层向量 DB + PostgreSQL + Neo4j(可选)持久化存储 + 三维评分检索 + 反思机制

数据流:双向流动——重要信息 L1→L2→L3 逐层沉淀;新任务时 L3→L1 按需加载

方法 6:Agentic RL 训练专门记忆模型(MemoraX 路线)

核心思想: 记忆能力不能用监督学习训练——没有人类专家能写出"如何记住前 3 万字对话"的训练语料。记忆本质是序列决策问题(什么该记/什么该忘/什么时候调取),天然属于强化学习领地。

适用场景: 走主流"工作流+外部数据库"路线已经撞墙,需要真正"长在模型里"的记忆能力。

操作步骤:

  1. 设定记忆系统的优化目标(不同层面,如长程任务成功率/检索召准率/Token 经济性)
  2. 借助强化学习反向迭代优化记忆模型参数
  3. 数据驱动而非专家标注驱动
  4. 与基础大模型结合,从模型底层实现高效记忆管理

注意事项:

  • 这条路线公开数据少,工程落地难度高
  • 与主流 RAG 路线不是替代关系,初期更可能是叠加
  • 优化目标设定是关键,奖励信号设计决定最终效果

方法 7:程序性记忆 Skill-MDP 三阶段(ProcMEM)

核心思想: 程序性记忆("知道怎么做")的关键不是存下来,而是"可执行 + 可复用 + 非参数化优化"。

三阶段流程:

  1. 生成(语义梯度):对技能的触发/执行/终止做事后归因,产出自然语言更新建议——非参数化梯度上升,更新对象是技能文本而非权重
  2. 验证(PPO Gate):用历史轨迹估计候选技能是否提升高优势动作概率且不偏离原技能,过滤激进候选
  3. 维护(在线得分):按技能对回报的边际贡献累计得分,长期为非正则淘汰,容量超限剪枝冗余技能

经验记忆三要素:可执行性 + 可复用性 + 非参数化优化

数据印证:技能池可压缩到数百 token 级别,跨任务/跨 LLM 主干仍可复用。

方法 8:AutoDream 后台记忆整合(2026-05-19 charrli 源码解析)

核心思想:让 Agent 在"空闲时"像人类睡眠一样整理和巩固记忆。把"记忆碎片化"问题从"靠用户手动 /compact" 升级为"完全后台化、用户不感知的自动整合"。

触发:三重门控(按顺序检查)

  1. 时间门控(最先检查):距离上次整合至少 24 小时——避免太频繁浪费资源
  2. 会话门控:至少经历 5 次对话会话——避免在样本不足时整合
  3. 锁门控:文件锁未被其他进程持有——避免并发冲突

四阶段整合(66 行 Prompt 模板指导 fork 出来的 Agent 执行)

阶段名称做什么
Phase 1Orient(定位)读取当前记忆索引,理解已有知识结构
Phase 2Gather(收集)扫描近期会话记录,提取新知识碎片
Phase 3Consolidate(整合)新旧知识融合,更新/合并/创建记忆条目
Phase 4Prune & Index(修剪)删除过时/冗余记忆,重建索引

锁机制(约 141 行实现)

  • 基于文件 mtime 实现的悲观锁
  • 使用 PID 标识锁持有者
  • 超过 1 小时的锁视为 stale(持有者可能崩溃)
  • 失败时执行完整的 rollback 回滚

理论灵感:直接借鉴人类睡眠 REM 阶段的记忆巩固理论——大脑在睡眠中重播白天经历,将短期记忆转化为长期记忆。

与方法 5(三层落地架构)的关系:方法 5 解决"记忆怎么分层存储";本方法解决"分层存储如何随时间自我整理"。前者是空间维度,后者是时间维度。

适用场景

  • 跨会话的长期协作场景(个人助理 / Coding Agent / 长程任务 Agent)
  • 记忆条目数 > 100 时手动维护成本不可接受
  • 需要避免"记忆库越用越乱"的熵增问题(→ Harness 失效模式与反馈机制 §概念 5 熵增)

注意事项

  • 整合任务本身需要 LLM 调用,有 Token 成本——门控参数(24h / 5 sessions)的设定要考虑成本与收益平衡
  • 整合可能误删用户后续需要的记忆——必须有 rollback 机制
  • Prompt 模板的"删除/合并/创建"标准要清晰,否则整合后记忆质量反而下降

案例库

案例 1:淘宝闪购 Tair 短期记忆架构

  • 背景:千问春节红包活动,AI Agent 点单链路需将 3-5 分钟压缩至 30 秒以内;流量峰值超 10 倍预估值;读写比 5:1 到 10:1
  • 做法
    • 双层数据模型:List 存对话历史 + Hash 存业务上下文(6 个 field)
    • 会话级分布式锁:SET lock:memory:{sessionId} {requestId} NX EX 3
    • 弹性扩展:日常 8 分片 → 峰值 16 分片,单节点弹性突发至 288MB/s
    • TTL 30 分钟自动清理
    • 写入前富媒体转为自然语言格式,减少 Token 消耗
  • 结果
    • P99 延迟春节流量洪峰期间始终控制在毫秒级
    • 多线程内核读写性能达 Redis 开源版的 3 倍
    • 单次对话触发数十次 Tair 操作仍稳定
  • 启发:Little 定律(并发数 ≈ QPS × 延迟)在 Agent 场景被放大——延迟 5ms→50ms 在途请求膨胀 10 倍。记忆层延迟是 Agent 系统能否稳定扩展的分水岭,不是体验问题而是架构问题。

案例 2:OpenChronicle 本地优先记忆层

  • 背景:OpenAI 2026-04-21 推出 Chronicle(Codex 记忆),仅 Pro 用户 + Mac;次日 OpenChronicle 开源上线冲上 X trending 第一
  • 做法
    • 采集:AX Tree 优先(结构化、低成本、高准确)+ 截图兜底(绕开辅助通道的应用如 Word/飞书)
    • 触发:事件驱动(光标运动/页面滚动/应用切换),非定时轮询
    • 存储:7 类扁平 Markdown——Person/Project/Tool/Topic/Contact/Organization/Event
    • 接口:MCP 协议暴露,Claude/Codex/OpenCode 一键接入
    • 所有权:本地优先,模型无关
  • 结果
    • Token 经济:轻度 ~$0.50/天,重度 $3-5/天,本地模型仅电费
    • 跨产品记忆连贯:Cursor 设计决策 → 飞书架构讨论 → Claude Desktop 直接承接
  • 启发:记忆正在从"产品功能"演变为"基础设施"——模型趋同后,记忆+Context 成为体验差异的关键变量。所有权应归用户而非厂商,否则迁移成本将成为新的厂商锁定。

案例 3:Claude Code auto memory 实践

  • 背景:Claude Code CLI 工具自带记忆系统(user/feedback/project/reference 四类)
  • 做法
    • 文件系统作为 L3 持久化层(独立 .md 文件 + MEMORY.md 索引)
    • 写入前检查是否已有可更新记忆(朴素冲突检测)
    • 四类语义分类对应不同的使用场景(user 用于人物画像、feedback 用于行为修正等)
  • 结果:单进程跨会话保持上下文,记忆条目可手动审计与编辑
  • 启发:四类记忆理论的简化文件系统版实现,验证了"MEMORY.md 索引 + 独立文件"作为轻量级 L3 落地的可行性。但缺少自动冲突检测——两条记忆语义矛盾时只能依赖人工发现。

案例 4:ChatGPT 四层记忆架构

  • 背景:ChatGPT 的生产级记忆系统拆解
  • 做法(实测出乎意料地简洁——没用向量数据库也没用 RAG)
    • Session Metadata(会话级)
    • User Memory(约 33 条,每次注入)
    • Conversation Summary(约 15 个摘要)
    • Current Session(滑动窗口)
  • 启发:生产级记忆系统并非"越复杂越好"——清晰的分层 + 严格的容量上限 + 主动写入策略,可能比技术栈复杂的方案更有效。

案例 5:Generative Agents 反思机制

  • 背景:斯坦福 Generative Agents 论文
  • 做法
    • 触发条件:近期情景记忆重要性总分超阈值
    • LLM 提问:"从这些经历中能得出什么更高层次的结论?"
    • 输出新的语义记忆(重要性评分较高)
  • 结果:50 条退货记忆 → 提炼成 1 条"退货主因是商品描述不符"的语义规则
  • 启发:纯事件记录会让记忆库膨胀但认知水平不提升——经历一百次客户投诉但从不总结规律的人,处理第一百零一次投诉时不会比第一次强多少。本案例仅记录"反思如何沉淀为新记忆"这一面;反思的循环结构、PASS 出口、Critic Agent 等评估侧设计见 Agent评估与反思机制 概念 1-5。

案例 6:MemoraX 模型内生记忆(郝建业方向)

  • 背景:郝建业(华为大模型算法实验室前主任、MemoraX AI 创始人)认为记忆是 Agent 走进生产系统的三大短板之一
  • 做法:用 Agentic RL 训练专门的记忆模型,与基础大模型结合,从模型底层实现高效记忆管理
  • 关键判断
    • Transformer Attention 架构固有瓶颈:上下文窗口拓展到百万级,窗口长度一旦拉长性能急剧下降
    • 主流"工作流+外部数据库"路线相当于"翻笔记",模型本身没有记住能力
    • 没有人类专家能构造"如何记住前 3 万字对话"的训练语料 → 必须用 RL
  • 启发:当主流 RAG 路线撞墙时,记忆模型可能成为独立技术领域而非工程优化问题。这条路决定了未来 Agent 平台的护城河形态。

案例 7:典型记忆覆盖故障案例

  • 直接冲突:"用 Python" vs "学 Rust"——数据分析场景下应召回两个版本结合上下文裁决,而非一刀切用最新的 Rust
  • 语义漂移:"简洁的代码风格" vs "简洁的沟通风格"——向量距离很短但含义完全不同,被错误合并后极难排查
  • 摘要压缩失真:十轮对话压缩只保留 1-2 个细节,关键限定条件被压没
  • 启发:"语义相似 ≠ 语义相同"是覆盖问题的根因——必须叠加 LLM 关系判定,不能纯依赖向量距离

案例 8:Episodic + Semantic 双层记忆参考实现(FAISS + Neo4j)

  • 背景:来自《All Agentic Architectures》对长期个人助理场景的标准实现——回应概念 1「四类记忆分类」中情景记忆与语义记忆的工程化需求
  • 做法
    • Episodic 层(情景记忆):用 FAISS 向量库存放历史对话片段,按相似度召回——回答"上次说过什么"
    • Semantic 层(语义记忆):用 Neo4j 图数据库存放结构化事实(用户偏好、人物关系、概念关联)——回答"这个人是谁、跟谁有关"
    • 双层联动:查询时先查 Semantic 拿事实约束,再用 FAISS 召回相关历史对话,合并送入 LLM
  • 关键工程取舍
    • 为什么不用一个统一向量库?—— 结构化事实做向量召回会丢失多跳关系("用户的经理的偏好"无法通过相似度找到)
    • 为什么不用一个统一图库?—— 自由对话不适合强行结构化,强结构化会丢失语境
  • 结果:把"长期个性化"从单点能力升级为可扩展的双层架构——是 ChatGPT、Claude 记忆系统的通用骨架
  • 启发
    • 不同记忆类型用不同存储:与概念 5「Raw Ledger + Views + Policy 三件套」一致——存储介质要服务于检索模式而非反之
    • 图库不是 RAG 的对立面,而是 RAG 的补充:跨方向呼应「Agent 架构与协作模式」概念 9「本体论+知识图谱=认知架构」

(来源:FareedKhan-dev/all-agentic-architectures 08_episodic_with_semantic.ipynb,2026-05-19)

案例 9:Graph World-Model Memory —— 实体关系图驱动的多跳推理

  • 背景:当 Agent 服务于企业情报、研究助理、长期个性化时,单纯向量检索无法回答"X 的同事的项目"这类多跳问题——这是 RAG 的本质局限
  • 做法
    • 把知识表示为 {Entity → Relation → Entity} 的三元组,存入 Neo4j
    • 查询时 LLM 把自然语言翻译为 Cypher 查询,沿图遍历多跳
    • 结果再由 LLM 翻译回自然语言响应
  • 核心论断:Graph World-Model 不是"更高级的 RAG",而是 RAG 不能做的事——多跳关系路径无法存储为向量,必须存储为链接
  • 典型场景
    • 企业情报("找出签署 Alpha 项目合同的人的经理编写的所有文档"——见「Agent 架构与协作模式」案例 5)
    • 长期个人助理(关联用户提到过的"人/项目/工具/偏好"四元结构)
    • 研究辅助(领域概念之间的引用与继承关系)
  • 与本方向其他概念的关系
    • 是概念 1「四类记忆分类」中语义记忆的极致实现
    • 是概念 5「Raw Ledger + Views + Policy 三件套」中 Views 层"按关系视图查询"的物化
    • 与 Episodic 向量记忆是互补关系,不是替代关系——见案例 8

(来源:FareedKhan-dev/all-agentic-architectures 12_graph.ipynb,2026-05-19)

案例 10:某顶级工业级 Agent 分层记忆架构(2026-05-19 charrli 源码解析)

  • 背景:某顶级 AI 研究团队的工业级 CLI Coding Agent(512K 行 TS 公开源码)的记忆系统设计
  • 四层记忆架构
    层级加载方式失效策略典型内容
    Project 级PROJECT.md 自动加载到上下文跟随项目仓库版本项目级约定、领域术语、架构决策
    持久化知识库memdir/ 持久化目录,Agent 主动调用读写跨会话保留,AutoDream 后台整合用户偏好、跨项目经验、技术笔记
    Session 记忆当前对话窗口内自动维护会话结束自动失效当前任务上下文、临时变量
    Repo 级通过文件系统 / Skill 注入跟随仓库团队规范、代码风格、CI 配置
  • 历史记录补充(src/history.ts):JSONL 格式存储在 ~/.agent/history.jsonl,支持粘贴内容引用(大文本通过 hash 存储到外部 paste store),使用文件锁防止并发写入
  • 核心设计原则
    • 生命周期匹配存储:会话级用 context window、跨会话用持久化目录、不变量用项目文件
    • 整合任务后台化:AutoDream 自动整合(→ 方法 8),用户不感知
    • 结构化引用 vs 全文内联:大粘贴文本走 hash 引用,避免污染 history 主流
  • 与方法 5(三层落地架构)的对照
    • 方法 5 是从存储引擎视角(Context Window / Redis / 向量 DB)分层
    • 本案例是从生命周期视角(Project / 持久化 / Session / Repo)分层
    • 两者可叠加:持久化层内部可用 Redis + 向量 DB 实现
  • 启发
    • 分层不一定要按"存储速度"分(L1 快 L2 慢 L3 慢),也可以按"生命周期"分——尤其是 Coding Agent 这类工具型 Agent
    • 历史记录的并发安全(文件锁)是容易被忽略的细节——多窗口同时使用时丢数据
    • 大文本引用化(hash + 外部 store)让主历史保持轻量,否则一次粘贴几 MB 会让所有后续读取都变慢

(来源:技术教科书:顶级开发团队设计的 Harness 工程项目源码什么样,作者 charrli,2026-05-19)

关键洞察

1. 记忆 ≠ 存储,记忆 = 决策通道

多份来源(Memory 三件套理论、Tair 实践、MemoraX 等)共同指向同一个判断:记忆的价值不在于存了多少,而在于历史到当前决策的通道是否有效。这颠覆了"加大数据库 = 改善记忆"的工程直觉——通道有效性比存储容量重要得多。

2. 记忆模型与 LLM 通用能力"相对正交"

来自 Memory 三件套理论的判断,并被 MemoraX 路线背书:同一 base model 接入不同记忆策略,长程任务表现显著不同;同一套记忆 infra 可服务多种 base model。这意味着记忆能力是独立工程化的对象,不应被合并进"换更大的模型"的范畴——Agent 产品的护城河可以建在记忆层而非模型层。

3. Transformer 注意力是物理天花板,不是工程 bug

来自 DeepResearch Agent 实践 + 郝建业判断的双重印证:上下文越长模型越聪明是错的。超过某个阈值后,模型对早期信息注意力稀释,靠后内容权重更高。这不是工程优化问题——必须用"原始数据→提炼摘要"的设计取舍来解决(IterResearch 思路),或者干脆走模型内生记忆路线(MemoraX)。

4. 记忆覆盖的本质是不确定语义 vs 确定性存储的张力

字节面试题解析最深的一句话:"我们试图用确定性的存储系统管理本质上不确定的语义信息,而连接这两个世界的桥梁——语义理解——本身就不完美。" 这意味着任何记忆系统都不可能做到 100% 准确——必须容忍模糊性并设计四层防御(版本化/冲突检测/作用域/防失真)

5. Policy 是最被低估的瓶颈

阿里 Memory 三件套理论提出,几乎所有其他来源都隐性印证:设计记忆系统时大家关注存储后端选型(向量库 vs 关系库 vs 图库),但实际上"何时读、何时写、何时遗忘"的策略才是决定成败的——写多了污染,写少了学不到;UPDATE/DELETE 做错一次会滚雪球。设计 Memory 系统时应先问"policy 是否可训练/可 A/B",再选存储后端。

6. 记忆所有权归用户:基础设施化的核心要义

OpenChronicle 团队提出,与 MCP 协议趋势深度耦合:记忆该是设备里的一层基础设施,跟谁的模型协作都行。这一判断有三层意义:

  • 产品层面:每个 AI 产品不再造自己的记忆模块,接入统一记忆层
  • 竞争层面:厂商护城河从"我的记忆功能更好"变成"我在统一记忆之上的应用体验更好"
  • 用户层面:记忆跟着人走,不跟着产品走——用户主权的体现

7. 行动层记忆 = Proactive Agent 的前提

OpenChronicle 团队的洞察:当 Agent 知道"你怎么做事"而非仅"你说过什么",它才能从 reactive(你问它才动)变成 proactive(主动判断、建议、行动)。这条路的关键瓶颈不是采集技术(AX Tree/MCP 都成熟了),而是"怎么从行为流提炼出可泛化的做事模式"——可能需要新的记忆抽象层。

8. 模型记忆与业务记忆的分离设计是工程关键

来自淘宝闪购实践,但具有普适性:LLM 消费的是自然语言连续文本(关注语义连贯),业务逻辑消费的是结构化状态字段(关注字段精确)——两者格式、读写模式、更新频率完全不同。用同一数据结构存储会带来不必要的耦合,是工程层面最容易被忽视的耦合点。

待探索问题

  • Heuristic Learning(HL)与 Agentic RL 训练记忆模型的关系:HL 把经验存进代码而非权重,与郝建业的"长在模型里的记忆"是矛盾还是互补?显式存储试验/失败原因(HL 的记忆形式)是否是"记忆系统优化目标"的特例?
  • MemoraX 记忆模型与 Agentic RL 训练流程的公开细节:优化目标如何设定?奖励信号来源?数据如何冷启动?这些技术细节决定了路线是否可复现。
  • 跨产品/跨设备记忆同步的边界:MCP 协议解决了接口标准化,但跨设备增量同步、冲突合并、隐私边界等问题仍未充分讨论。
  • Plugin 打包后的供应链验证:Plugin(Skills + MCP 打包)形态下,单个 Plugin 同时引入多个潜在风险点,是否需要 Plugin 级签名 + SBOM?
  • 本地模型 + 本地记忆的真实成本曲线:OpenChronicle 提供电费成本估算,但本地部署 gpt-oss-120b 级别模型的实际总拥有成本(含硬件、维护、性能损失)未充分讨论。
  • 记忆 benchmark 现状:评估记忆系统健康度的三类瓶颈(带宽/检索误差/policy)目前缺乏标准化 benchmark——长时序对话记忆、跨多步攻击路径的复盘能力如何量化?
  • 记忆压缩策略的最优解:ChatGPT 用约 33 条 User Memory + 15 个 Conversation Summary 的极简方案 vs 阿里 Memory 三件套的复杂架构,二者在不同业务规模下的取舍曲线是什么?

来源索引

#标题来源收录日期贡献章节
1淘宝闪购 Agent Tair 短期记忆架构阿里云 Tair 技术博客2026-04-03概念 2、方法 5、案例 1、洞察 8
2Agent 记忆模块设计:四类记忆与三层架构小红书面试题解析 / 秀才的学习网站2026-04-03概念 1、方法 1/2/3/5、案例 5
3Agent Memory 架构:Ledger-Views-Policy 三件套阿里妹导读2026-04-10概念 4/5/6、方法 7、洞察 1/2/5
4Agent 记忆覆盖问题:三类故障与四种解法字节大模型二面解析2026-04-03概念 7、方法 4、案例 7、洞察 4
5Agent 记忆基建化:OpenChronicle对话 Calvin@Vida2026-04-29概念 3、案例 2、洞察 6/7
6Agent 三大底层能力——郝建业谈记忆FreeBuf 对话郝建业2026-05-09方法 6、案例 6、洞察 2/3
7Agent 工程实践全景(节选记忆部分)阿里技术公众号2026-04-28概念 1(Skills/MEMORY.md 补充)、案例 3/4
8AI Agent 核心三要素(节选记忆部分)小林 coding(美团面试经)2026-04-13概念 1(短期/长期记忆补充)
9All Agentic Architectures(17 种架构 - 记忆架构部分)FareedKhan-dev/all-agentic-architectures2026-05-19案例 8(Episodic+Semantic 双层)、案例 9(Graph World-Model)

演进记录

日期版本变更摘要
2026-05-12v0.1首次构建,由 8 篇源文件批量合成。覆盖四类记忆分类、双层数据模型、Ledger-Views-Policy、bi-temporal 时序、覆盖故障三类、四种解法、三层落地架构、Agentic RL 训练、程序性记忆 Skill-MDP 等核心概念;纳入 7 个生产案例(淘宝/OpenChronicle/Claude Code/ChatGPT/Generative Agents/MemoraX/典型故障);提炼 8 条跨来源洞察
2026-05-15v0.1.1由 /route-knowledge 横切重构触发:概念 4「Memory = 可被决策利用的外部状态」追加 Anthropic Augmented LLM 三件套出处(指向 Agent设计哲学与决策框架 概念 1)
2026-05-19v0.2由 /route-knowledge 整合 FareedKhan-dev/all-agentic-architectures 仓库触发:新增案例 8(Episodic+Semantic 双层记忆参考实现,FAISS+Neo4j)、案例 9(Graph World-Model Memory,多跳推理)——双层记忆案例补足概念 1「四类记忆分类」的工程化落地,Graph World-Model 强化与「Agent 架构与协作模式」概念 9「认知架构」的跨方向呼应

MIT License