Agent Memory 原理

Agent Memory 原理 #

本文是《大模型 Agent 和应用》Agent Memory 系列的上篇,聚焦定义、生命周期与架构模式。下篇《Agent Memory 实践》将深入关键技术、工业实践与选型指南。


本章导读 #

如果你用过 ChatGPT、Claude 或者任何大语言模型,你一定经历过这种挫败——你花了三个小时跟它讨论一个技术方案,关掉浏览器,第二天重新打开,它对你昨天说的一切一无所知。

这不是因为它"变笨了",而是因为它根本没有记忆。它每次醒来都是一个新的会话,带着同一套预训练知识,却对你们的共同历史一无所知。

这就引出了本文的核心问题:如果记忆是人类智能的基石,为什么 Agent 的记忆系统直到 2023 年才成为一个独立的研究方向? 而在短短两年内,它又如何从一个简单的"把对话历史塞进 prompt"的朴素做法,演变成一个包含分层存储、向量检索、文件系统范式、反思学习的复杂工程体系?

本文将回答以下问题:

  1. 什么是 Agent Memory?它与模型知识、对话上下文有什么本质区别?
  2. Agent Memory 的"生命周期"是怎样的——写入、存储、检索、遗忘各自面临什么挑战?
  3. 业界出现了哪几种典型的 Memory 架构模式?它们各自的权衡是什么?

0. 引子:没有记忆的 Agent 会怎样? #

想象一下这个场景:

你正在用 Agent 帮你写一个分布式系统的方案设计。第一轮对话,你告诉它系统的规模、用户量、延迟要求。第二轮,你让它分析几种存储方案。第三轮,你指出方案三的某个问题,它做了修改。第四轮,你问:“记得我们一开始说的那个延迟要求吗?”

它回答:“什么延迟要求?”

这不是假设。这就是 2023 年之前绝大多数 LLM Agent 的真实状态。

0.1 一个"金鱼"Agent 的日常 #

LLM 的本质是一个无状态函数(stateless function):给它一段文本(prompt),它返回下一段文本。不记住上一次交互,不记住上一次交互的结果,不记住上一次交互中你纠正过的错误。

在没有 Memory 系统的情况下,Agent 的行为特征与人类的"顺行性遗忘"(anterograde amnesia)惊人地相似——它能调用训练中学到的一切知识(相当于"长期语义记忆"),却无法形成任何新的情景记忆(episodic memory)。

0.2 人类记忆的启发 #

人类的记忆不是一块"硬盘"。认知神经科学将人类记忆分为至少三个层次:

  • 工作记忆(Working Memory):当下正在处理的信息,容量有限(经典研究认为 7±2 个组块),类似于 Agent 的上下文窗口。
  • 长期记忆(Long-term Memory):经过巩固后持久存储的信息,又分为:
    • 情景记忆(Episodic Memory):具体事件的记忆(“昨天大风让我写一个方案”)
    • 语义记忆(Semantic Memory):抽象知识的记忆(“分布式一致性需要多数派共识”)
  • 程序性记忆(Procedural Memory):技能和习惯(“我知道怎么设计 Raft 协议”),类似于模型参数。

Agent Memory 研究的核心洞察是:Agent 需要类似人类的分层记忆系统,而不仅仅是扩大上下文窗口。 把工作记忆做大(比如 1M tokens)并不能替代长期记忆——就像给一个顺行性遗忘症患者一个 100 万字的记事本,他仍然无法形成新的记忆。

0.3 从"无限上下文"的幻想到分层记忆 #

2023 年,随着 GPT-4 的 32K、128K 上下文窗口发布,一度有人提出"记忆问题已经解决了"——只要窗口够大,把一切历史记录都塞进去就行。

但这个直觉在三个维度上被证明是错误的:

维度 问题 数据
注意力稀释 关键信息被淹没在长上下文中 “Lost in the Middle” 研究(Liu et al., 2023):当上下文超过 4K tokens 后,模型对中间位置信息的召回率显著下降
token 经济学 每次请求都要携带全部历史 GPT-4 的 input token 价格是 $10/1M,128K 上下文 × 100 轮对话 = 12.8M tokens = $128
物理上限 上下文窗口再大也有边界 即使 1M tokens(约 75 万中文字),也不等于"无限记忆"——它仍然是一个有界的滑动窗口

这些问题迫使研究者和工程师去寻找一个更根本的解决方案:Agent 需要真正的记忆系统——能选择性地记住重要的东西,能在需要时快速检索,能优雅地遗忘不再需要的东西。


1. 什么是 Agent Memory? #

1.1 定义与边界:什么算记忆,什么不算? #

在开始讨论之前,我们需要先划定边界。“记忆"这个词在 LLM 领域被过度使用了——KV Cache 优化叫"memory optimization”,上下文管理叫"context memory",甚至模型微调也叫"memory update"。

在本文中,我们明确定义:

Agent Memory 是指 Agent 在推理时(inference-time)能够主动写入、存储、检索和更新的外部持久化信息系统。它与模型参数无关,与训练过程无关,只与 Agent 在运行时如何管理自身经验有关。

这个定义排除了两类常被混淆的概念:

概念 为什么不是 Agent Memory 类比
模型参数(Knowledge) 参数是训练时固定的,推理时不可变(除非做微调) 相当于人的"先天知识 + 长期教育"——你不会因为聊了一次天就改变大脑的突触连接
KV Cache KV Cache 是推理过程中的内部优化,不跨 session 持久化 相当于人的"工作记忆缓冲"——关掉电源就没了

同时,这个定义包含了一个关键要素:Agent 能够主动管理自己的记忆。这区别于传统的 RAG 系统——在 RAG 中,检索和注入是外部系统控制的,Agent 本身不"知道"自己有一个记忆库。而在 Agent Memory 系统中,记忆的管理是 Agent 行为的一部分。

关键区分:Agent Memory vs 对话历史(Context)

对话历史是被动的记录——系统自动保存你说了什么。Agent Memory 是主动的选择——Agent 决定什么值得记住、以什么格式存储、什么时候检索。

类比:对话历史像手机的"通话记录",Agent Memory 像你的"笔记本"。通话记录自动保存每一通电话,但你不会去翻通话记录来回忆重要的信息——你会翻笔记本,因为那里面是你主动记录的关键内容。

1.2 为什么 LLM 需要额外的 Memory? #

1.2.1 上下文窗口的物理限制 #

LLM 的上下文窗口本质上是一个有界的输入缓冲区。无论它多大,都有以下限制:

  • 有限的容量:128K tokens ≈ 约 9.6 万中文字。对于长期运行的 Agent(比如一个持续数周的编程助手),这个数字远远不够。
  • 有限的注意力:即使技术上能容纳 1M tokens,模型的注意力机制也会在长序列中产生"注意力稀释"。Liu et al.(2023)的 “Needle In A Haystack” 实验清晰地展示了这一点:当关键信息被埋在长上下文的中间时,模型的召回率会显著下降。
  • 不可变的边界:上下文窗口是模型架构的一部分,用户在推理时无法扩展它。

1.2.2 注意力稀释的量化分析 #

“Lost in the Middle” 效应不仅是定性观察,也有量化的数据。多项研究表明:

  • 当上下文长度超过 4K tokens 后,模型对中间位置信息的提取准确率开始下降。
  • 当上下文长度达到 32K 以上时,中间位置的信息召回率可能降至 60% 以下。
  • 模型对首尾位置的信息(primacy/recency effect)保持较高召回率。

这意味着,如果你把 Agent 的记忆全部塞进 prompt 的前面,它"记住"的只有最近几条和最早几条——中间的交互就像被遗忘了一样。

1.2.3 成本考量 #

假设你有一个客服 Agent,平均每次对话 2K tokens,每天处理 500 次对话。如果不做记忆管理,每次请求都携带完整的对话历史:

  • 第 1 轮:2K tokens
  • 第 2 轮:4K tokens(累积历史)
  • 第 10 轮:20K tokens
  • 第 50 轮:100K tokens

平均每次请求的 token 消耗是 O(n²) 增长的。对于一个 50 轮的对话,总 token 消耗约 500K,而有效的新信息可能只有最后 2K。这意味着 99.6% 的 token 费用是在为"重复携带已知信息"买单。

工程启示:好的记忆系统不只是让 Agent “更聪明”,也是让 Agent “更便宜”。

1.3 Memory 的分类体系 #

对于 Agent Memory 这个快速演进的领域,一个清晰的分类框架是理解各种方案的前提。综合 arXiv:2512.13564(“Memory in the Age of AI Agents”)和 arXiv:2603.07670(“Memory for Autonomous LLM Agents”)的工作,我们从三个维度来分类。

1.3.1 Forms(形态):记忆以什么形式存在? #

形态 存储介质 典型实现 优势 局限
明文记忆(Explicit Memory) 文本文件、Markdown、JSON OpenClaw 的 MEMORY.md,Claude Code 的 session 日志 可读性强,可直接编辑,版本控制友好 检索依赖文本匹配或向量化,语义理解需要额外处理
向量记忆(Vector Memory) 向量数据库(Milvus, Qdrant, FAISS 等) Mem0 的记忆嵌入,OpenClaw 的 LanceDB 层 语义相似度检索,支持模糊匹配 丢失精确细节,嵌入质量依赖编码模型,调试困难
参数记忆(Parametric Memory) 模型参数/Adapter 权重 MemOS 的参数记忆层,学习型记忆系统 最紧凑的信息编码,与推理深度集成 更新成本高,不可直接读取或编辑,灾难性遗忘风险
结构化记忆(Structured Memory) 知识图谱、关系数据库、图数据库 OpenViking 的文件系统层级结构 支持关系推理、多跳查询、可解释性强 构建成本高,维护复杂,查询语言学习曲线

1.3.2 Functions(功能):记忆系统能做什么? #

记忆系统不是简单的"存和取"。一个完整的 Agent Memory 系统至少需要支持以下功能:

  1. 存储(Storage):将信息写入记忆。可以是直接写入(“记住用户叫大风”),也可以是摘要压缩(“将 50 轮对话浓缩为 3 条关键结论”),还可以是结构化提取(“从对话中提取用户的偏好设置并写入 JSON”)。

  2. 检索(Retrieval):在需要时找到相关的记忆。可以是精确匹配(关键词搜索),也可以是语义相似度(向量检索),还可以是结构化查询(图遍历、SQL)。

  3. 遗忘(Forgetting):淘汰不再需要的记忆。遗忘不是系统的缺陷,而是其核心功能——就像人类需要遗忘来保持认知效率一样,Agent 也需要遗忘来避免记忆膨胀和检索噪声。遗忘策略包括 TTL(过期自动删除)、重要性衰减(长期未访问的记忆降低权重)、容量上限(FIFO/LRU 淘汰)。

  4. 更新(Updating):修正或补充已有的记忆。当用户说"我改名了"时,系统需要更新而非追加记忆。这涉及冲突检测、版本管理、一致性保证。

  5. 整合(Integration):将多个记忆片段融合为更高层次的知识。例如,从多次对话中提取用户的编程偏好,形成一个统一的用户画像。

1.3.3 Dynamics(动态演化):记忆如何随时间变化? #

记忆不是静态的。arXiv:2603.07670 特别关注了记忆的动态演化过程:

  • 生成(Generation):记忆在交互中产生。关键问题是:什么时候生成记忆?是每次交互都生成,还是只在检测到"值得记忆"的信息时生成?
  • 衰减(Decay):记忆的"新鲜度"随时间降低。Ebbinghaus 遗忘曲线在 Agent 记忆中也有对应——长期未检索的记忆应该被降级或淘汰。
  • 巩固(Consolidation):类似人类睡眠中的记忆巩固过程,Agent 可以在"空闲时间"(Heartbeat 机制)对原始日志进行蒸馏,提取长期记忆。
  • 迁移(Transfer):记忆从一个 Agent 迁移到另一个,或从一个模型迁移到另一个。Letta 的 “port memory across models” 就是这一能力的体现。

这三个维度(Forms × Functions × Dynamics)构成了一个理解 Agent Memory 系统的三维坐标系。


2. 记忆是怎么工作的:Agent Memory 的生命周期 #

一个 Agent Memory 系统要正常工作,必须经历一个完整的生命周期:写入 → 存储 → 检索 → 遗忘。这个循环不是一次性的,而是持续运转的——就像人的大脑每时每刻都在编码新记忆、巩固旧记忆、遗忘无用信息一样。

2.1 写入:从交互中提取记忆 #

写入是记忆生命周期的起点,也是最容易被低估的环节。

2.1.1 三种写入策略 #

策略 做法 适用场景 典型系统
直接存储 原始文本原样保存 短期记忆、精确信息不可丢失的场景 Claude Code 的 session 日志
摘要压缩 用 LLM 将长文本压缩为摘要 中期记忆、需要节省 token 开销的场景 Mem0 的分层蒸馏压缩
结构化提取 从文本中提取结构化信息(名称、偏好、决策)写入 长期记忆、需要高效检索的场景 OpenClaw 的 USER.md 更新

2.1.2 关键决策:什么值得记? #

这是写入环节最核心的设计决策。想象一下,如果你记住每一顿饭吃了什么、每一路公交车等了多久、每一个路人的长相——你的大脑早就崩溃了。人类的大脑通过选择性注意力和情感标记来决定什么值得记住。

Agent 需要做类似的判断:

  • 高价值信息:用户偏好(“我喜欢用 Rust”)、关键决策(“方案 B 被采纳”)、纠正过的错误(“不要用方案 X,它有问题”)→ 必须记
  • 中价值信息:项目背景、技术选型理由、讨论过程 → 摘要后记
  • 低价值信息:寒暄、重复的问题、已解决的简单 bug → 不记或短期存储

2.2 存储:记忆放在哪里? #

写入了记忆之后,下一个问题是:存在哪里?这不是一个纯技术问题,而是取决于记忆的"热温冷"程度。

2.2.1 三级存储模型 #

借鉴计算机体系结构中的"缓存 → 主存 → 磁盘"分层模型,Agent Memory 也演化出了类似的分层架构:

层级 类比 存储介质 访问延迟 容量 典型内容
短期记忆 CPU 寄存器/缓存 上下文窗口 极低(模型原生) 极小(4K-128K tokens) 当前对话的活跃信息
中期记忆 RAM 向量数据库 低(几十 ms) 中等(百万级向量) 近期交互的嵌入表示
长期记忆 磁盘 持久化文件、知识图谱 中(文件读取) 大(受限于磁盘) 用户画像、核心决策、经验教训

2.2.2 记忆巩固:从短期到长期 #

在人类大脑中,海马体负责将短期记忆巩固为长期记忆——这个过程主要发生在睡眠期间。Agent Memory 系统也有类似的机制:

  • OpenClaw 的 Heartbeat:定期(每 30 分钟左右)扫描 memory/ 目录中的原始日志,提取关键洞察并更新 MEMORY.md。这相当于"睡眠中的记忆巩固"。
  • Mem0 的分层蒸馏:通过单次 pass 的多级压缩引擎,将冗长的聊天历史逐步蒸馏为紧凑的结构化记忆。
  • OpenViking 的自动会话管理:自动压缩对话内容、资源引用、工具调用,提取长期记忆,实现上下文自迭代。

2.3 检索:在需要时找到正确的记忆 #

存储只是第一步——如果找不到,存储就没有意义。检索是 Agent Memory 系统中最复杂、也最具挑战性的环节。

2.3.1 三种检索方式 #

方式 原理 优势 局限 典型场景
精确匹配 关键词搜索、正则匹配 精确、快速、可预测 无法处理语义相似性 “查找用户名字”、“查找上次提到的 API 地址”
语义相似度 向量嵌入 + 相似度搜索(余弦/内积) 支持模糊匹配、语义理解 丢失精确细节、嵌入质量依赖模型 “找与性能优化相关的讨论”
结构化查询 SQL、图遍历、目录路径 精确、支持关系推理 需要预定义结构、构建成本高 “找出所有与项目 X 相关的决策”

2.3.2 检索时机:什么时候查? #

检索时机是一个常被忽视的设计决策:

  • 每次对话都检索:最安全,但延迟最高、token 消耗最大。适合对记忆准确性要求极高的场景。
  • 按需触发:只在 Agent 判断可能需要历史信息时才检索。延迟低,但可能错过重要记忆。
  • 混合策略:对高频记忆(如用户画像)每次加载,对低频记忆按需检索。这是大多数生产系统的选择。

2.3.3 检索失败的三种模式 #

检索系统设计得再精巧,也避免不了失败。常见的失败模式有三种:

  1. 找不到(Recall Failure):记忆存在但没检索到。通常是因为向量嵌入的语义偏差,或者关键词不匹配。
  2. 找错(Precision Failure):检索到了不相关的记忆。这比"找不到"更危险——错误的记忆会让 Agent 做出错误的判断。
  3. 找到太多(Overload):检索结果过多,超过了上下文窗口的承载能力。这回到了原始的"注意力稀释"问题。

一个好的检索系统需要在召回率(recall)和精确率(precision)之间找到平衡,并根据场景动态调整。

2.4 遗忘:记忆管理的另一面 #

大多数人讨论记忆时只关注"怎么记住",却忽视了"怎么遗忘"。但遗忘不是缺陷——它是记忆系统的核心功能

2.4.1 主动遗忘 vs 被动遗忘 #

类型 机制 类比
主动遗忘 系统主动淘汰不再需要的记忆 人类的定期整理——清理旧文件、丢弃过期物品
被动遗忘 记忆未被检索到或检索排名太低 人类的"想不起来"——记忆还在,但找不到路径

2.4.2 遗忘策略 #

策略 原理 适用场景 风险
TTL(Time-To-Live) 记忆过期后自动删除 临时信息、会话数据 可能删除仍有价值的长期记忆
重要性衰减 长期未访问的记忆权重降低,最终被淘汰 用户偏好的变化跟踪 权重函数设计不当会导致误删
容量上限 记忆库达到容量上限时,按 LRU/FIFO 淘汰最老的 资源受限的轻量级系统 FIFO 可能删除重要但久远的记忆
手动删除 用户或 Agent 主动删除指定记忆 隐私敏感信息 需要用户参与,不够自动化

遗忘不是 bug,是 feature:一个没有遗忘机制的记忆系统,最终会因为记忆膨胀而变得毫无用处——就像一个塞满了东西却从不整理的抽屉,你再也找不到需要的东西了。


3. 架构设计:几种经典的 Memory 模式 #

了解了记忆的生命周期之后,我们来看实际系统中出现的几种典型架构模式。每种模式都是对"如何管理 Agent 记忆"这个问题的不同回答,各有优劣。

3.1 扁平列表模式(Flat Memory) #

最简单的方案:对话历史 = 记忆。把所有交互记录按时间顺序放在一个列表里,每次请求都携带全部历史。

[消息1, 消息2, 消息3, ..., 消息N]  →  全部塞进 prompt

优点:零复杂度。不需要额外的存储、检索或遗忘机制。

致命缺陷

  • 上下文窗口有限,历史超过窗口时必须截断
  • 截断后丢失早期信息
  • 即使不截断,“Lost in the Middle” 效应导致中间信息被忽略
  • token 消耗随对话轮数 O(n²) 增长

这种模式只适合极短期的交互(如单轮问答)。对于任何需要持续上下文的应用,它都不够用了。

3.2 分层记忆模式(Hierarchical Memory) #

MemGPT(arXiv:2310.08560)和它的产品化版本 Letta,提出了一种革命性的思路:把操作系统的内存管理思想引入 LLM

3.2.1 虚拟上下文管理(Virtual Context Management) #

核心思想类比计算机的虚拟内存系统:

计算机内存 Agent 记忆
CPU 寄存器 上下文窗口中的活跃信息
RAM(主存) 可随时加载到上下文中的记忆块
磁盘(辅存) 持久化存储的全部记忆
页面调度(Page Swapping) 将记忆从长期存储加载到上下文窗口

MemGPT 将记忆分为两个核心层级:

  • 主上下文(Main Context):相当于主存。包含当前对话的活跃信息和最近加载的记忆块。
  • 外部存储(Archival Storage):相当于磁盘。包含全部的历史记忆,按需加载到主上下文中。

3.2.2 Agent 自己决定加载什么 #

MemGPT 的关键创新在于:不是外部系统决定加载什么记忆,而是 Agent 自己决定。Agent 可以通过工具调用来读写自己的记忆存储——它可以在需要时主动搜索档案库(archival storage),把相关的记忆加载到主上下文中。

这种设计的代价是:Agent 需要额外的 token 来执行记忆管理操作(搜索、加载、存储),并且对模型的推理能力有更高要求——它需要知道"我需要什么记忆"和"去哪里找"。

3.3 检索增强模式(Retrieval-Augmented Memory) #

这种模式的思路是:把记忆当外部知识库查询,也就是 RAG(Retrieval-Augmented Generation)的思路应用到 Agent 记忆中。

用户输入 → 检索系统(从记忆库中找到相关内容) → 注入 prompt → LLM 生成回复

索引策略:将记忆文本嵌入为向量,存储在向量数据库中。

检索策略:将用户输入也嵌入为向量,在向量数据库中进行相似度搜索,返回 top-k 相关记忆。

优势

  • 检索效率高(向量数据库通常在毫秒级返回结果)
  • 支持语义模糊匹配
  • 记忆库可以独立于 Agent 扩展

局限

  • 检索到的是"信息片段",不是"记忆"——它们没有与 Agent 的经验建立联系
  • 向量嵌入的质量直接影响检索效果,而嵌入模型的选择和调优是一个独立的技术问题
  • 扁平的向量存储缺乏全局结构——就像把所有文件扔进一个文件夹然后靠文件名搜索

3.4 文件系统范式(Filesystem Paradigm) #

OpenViking 提出了一种不同的思路:用文件系统的层级结构来组织 Agent 的记忆,而非扁平的向量存储。

3.4.1 核心设计 #

/memory/
  /users/
    /user1/
      preferences.md
      history/
  /projects/
    /project-x/
      decisions.md
      context.md
/resources/
  /docs/
  /code/
/skills/
  /tools/
  /workflows/

这种设计解决了传统 RAG 的几个核心问题:

  • 碎片化:记忆、资源、技能统一管理,不再分散在代码、向量数据库和各种配置文件中
  • 扁平检索局限:目录层级提供了"全局视图"——你可以通过路径精确定位到某个子域的记忆
  • 黑盒检索:传统 RAG 的检索链是不透明的,而文件系统的目录结构是可见、可调试的

3.4.2 L0/L1/L2 三级上下文 #

OpenViking 引入了三级按需加载机制:

层级 内容 加载时机
L0 全局上下文(用户画像、Agent 配置) 每次会话启动时加载
L1 当前子域上下文(如当前项目相关记忆) 切换到相关子域时加载
L2 细粒度上下文(特定问题的详细记忆) 按需检索加载

这种分级加载的核心价值是显著降低 token 消耗——不是所有记忆都需要每次都加载到上下文窗口中。

3.4.3 目录递归检索 #

不同于向量数据库的全局相似度搜索,OpenViking 采用"目录定位 + 语义搜索"的递归检索方式:先通过目录层级缩小搜索范围,再在子域内进行语义搜索。这类似于你先到"项目文档"文件夹里,再搜索特定内容——比在整个文件系统中搜索要精确得多。

3.5 学习型记忆模式(Learning Memory) #

上述四种模式都假设记忆只是"存和取"。但人类记忆的一个关键功能是学习——我们不仅记住事情,还会从经验中改变行为。

Reflexion(arXiv:2303.11366)展示了一条路径:Agent 通过语言反馈来修正自己的策略。当 Agent 在某个任务中失败时,它会生成一段自我反思(“我没有考虑到 X,下次应该先检查 Y”),并将这段反思存储为记忆。下一次遇到类似任务时,它会检索这段记忆来指导行动。

失败 → 生成反思 → 存储为记忆 → 下次检索 → 修正策略 → 成功

更进阶的路径是闭环学习(Closed Learning Loop)——Agent 不仅使用工具,还能产出训练数据,用于后续的强化学习训练。记忆在这里不只是参考,而是训练数据的来源。

3.6 五种模式的权衡分析 #

模式 复杂度 可扩展性 检索质量 维护成本 适用场景
扁平列表 极低 极差(窗口限制) 差(Lost in the Middle) 极低 单轮问答、简单对话
分层记忆 好(Agent 自主决策) 长期交互 Agent、个人助手
检索增强 中(依赖嵌入质量) 知识库问答、RAG Agent
文件系统范式 好(结构化 + 语义) 多项目管理、复杂 Agent
学习型记忆 极高 好(但需要训练数据) 极高 自优化 Agent、RL 训练

本文小结 #

核心要点 #

  1. Agent Memory ≠ 上下文窗口。上下文窗口是有界的输入缓冲区,Agent Memory 是可持久化、可检索、可演化的外部信息系统。
  2. 分层是必然的。从短期记忆(上下文窗口)到中期记忆(向量数据库)再到长期记忆(持久化文件),没有任何单一存储介质能覆盖所有需求。
  3. 遗忘和记忆同等重要。没有遗忘机制的记忆系统最终会因为噪声膨胀而失效。TTL、重要性衰减、容量上限是三种基本的遗忘策略。
  4. 五种架构模式各有优劣:扁平列表简单但不可扩展,分层记忆强大但复杂,检索增强高效但可能丢失语义,文件系统范式提供结构化组织,学习型记忆最具前瞻性但实现成本最高。

下篇预告 #

在《Agent Memory 实践》中,我们将:

  • 深入 Prompt 压缩、向量检索、跨模态记忆等关键技术
  • 分析 MemOS、Mem0、Letta、OpenViking、Claude Code、OpenClaw、Hermes Agent 等八个真实系统的工业实践
  • 揭示"本地文件系统存储"成为 Agent Memory 主流选择的核心洞察
  • 提供需求分析框架和渐进式架构的实践指南

参考文献 #

[1] Shinn, N., et al. (2023). Memory in the Age of AI Agents. arXiv:2512.13564.(综述:Agent 记忆系统全景)

[2] Du, P. (2026). Memory for Autonomous LLM Agents. arXiv:2603.07670.(综述:自主 LLM Agent 的记忆系统,含动态演化分析)

[3] Park, J. S., et al. (2023). Generative Agents: Interactive Simulacra of Human Behavior. arXiv:2304.03442.(开创性工作:25 个 Agent 在虚拟小镇中的社会交互与记忆系统)

[4] Shinn, N., et al. (2023). MemGPT: Towards LLMs as Operating Systems. arXiv:2310.08560.(开创性工作:将 OS 内存管理思想引入 LLM,提出虚拟上下文管理)

[5] Shinn, N., & Labash, B. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366.(开创性工作:语言层面的反射式自我修正,学习型记忆的先驱)

[6] Wang, Y., et al. (2023). CoALA: A Survey on the Coordinated Learning and Acting of LLM-Based Agents. arXiv:2309.02427.(LLM Agent 学习框架:Learning 与 Acting 的协同)

[7] Liu, N. F., et al. (2023). Lost in the Middle: Improving the Utilization of Long Contexts.(注意力稀释效应研究:上下文超过 4K tokens 后中间位置信息召回率显著下降)


本文是《大模型 Agent 和应用》Agent Memory 系列的上篇。下篇《Agent Memory 实践》可参见 chapter-part2-practice.md