博主头像
Kurfuerst

ワクワク

Agent Memory 技术综述(一):从无状态 LLM 到可演化记忆系统

1. 为什么 Agent 需要记忆

大语言模型本身是无状态的,本质是一次性推理函数:输入当前上下文,输出当前答案。它可以在一次调用内利用 prompt、对话片段、工具结果完成推理,但如果没有外部状态,下一次交互仍然要重新开始。真实世界则完全相反,状态会随着交互不断累积并改变。

Agent Memory 的价值就在这里。它把 Agent 从每轮独立回答扩展为持续服务的状态化系统,让 Agent 能够跨轮次、跨会话、跨任务保存并调用历史信息。它解决的是更深层的三个问题:

  1. 连续性:Agent 能否记住之前已经澄清过的信息、做过的决策和未完成事项。
  2. 个性化:Agent 能否根据用户长期偏好、工作习惯和专业背景调整行为。
  3. 自我改进:Agent 能否从成功案例、失败修正和反复出现的问题中沉淀经验。

因此,记忆系统是长期运行 Agent 的基础设施。没有记忆的 Agent 只能“会回答”;有记忆的 Agent 才开始具备“会协作”的能力。

2. Memory、Context、RAG 与 Context Engineering 的边界

在我们讨论memory系统时, Memory、Context、RAG 和 Context Engineering是几个容易混淆的概念。它们都和“给模型补充信息”有关,但关注点不同。

Context 是一次模型调用时真正送入模型的输入序列,包括系统提示、当前用户输入、对话历史切片、工具结果和被召回的信息。它有明确长度上限,是短期工作区。

Memory 是独立于单次调用之外的持久状态系统。它会把历史信息存起来,在需要时检索、过滤、压缩、序列化,再注入 Context。换句话说,Memory 不等于 Context,它更像是 Context 的上游供给系统之一。

RAG 通常服务于公共知识库或相对静态的文档库,例如产品文档、代码知识库。Memory 则更偏会话、任务和环境状态,具有持续更新、时效性和访问控制要求。二者可以复用向量检索、BM25、图检索、rerank 等技术,但数据语义不同:RAG 查世界知识,Memory 查历史状态。

Context Engineering 关注如何组织单次调用中的信息,包括压缩、排序、格式化、工具结果编排等。它更像短期记忆的调度策略,而 Memory 还包含长期持久化、演化和遗忘。

一个 Agent 往往同时需要这四者:RAG 提供公共知识,Memory 提供工作状态,Context Engineering 做单次输入编排,Context 承载最终交给模型的内容。

3. 从人类记忆借鉴 Agent 记忆分层

多篇文章都借用了认知科学中的记忆分层来解释 Agent Memory。人类记忆通常被分为感官记忆、短时或工作记忆、长期记忆。映射到 Agent 系统中,可以得到一套很直观的工程类比。

感官记忆对应模型对原始输入的即时感知,例如文本、图片、工具输出在进入模型前后的表示。它持续时间短,更多是当前观测。

短期记忆对应模型上下文窗口内的信息,主要支撑当前任务内的推理。它包含当前对话、阶段性工具结果、中间计划和局部摘要。短期记忆决定 Agent 在单个任务里的即时表现。

长期记忆对应外部持久化存储,例如 Markdown 文件、SQLite 索引、向量库、图数据库、关系数据库或模型参数。它支撑跨会话和长时间跨度的连续行为。

好的系统会在短期上下文与长期记忆之间设计清晰的调度机制:什么时候写入、什么时候整理、什么时候召回、召回多少、过期信息如何处理。

4. Agent Memory 的来源

Agent 记忆内容通常来自三类信息源。

第一类是当前任务内信息。它产生于单次任务或当前会话,例如用户刚刚提供的约束、工具调用返回的临时结果、当前计划的执行状态。这类信息通常进入工作记忆,不一定值得长期保存。

第二类是跨任务信息。它来自多个任务、多个会话的积累,例如用户长期偏好、项目中反复出现的决策依据、过去失败案例总结、某类问题的固定处理流程。这类信息是长期记忆的核心。

第三类是外部知识。它不一定由 Agent 与用户交互产生,可能来自数据库、API、在线资源、知识库、代码仓库或其他 Agent。它和 RAG 有重叠,但一旦被 Agent 个性化引用、加工或绑定到用户/任务状态,也可能转化为记忆。

工程上要避免把这三类来源混在一起。

5. 记忆的三类功能:事实、经验与工作状态

从功能视角看,Agent Memory 可以分为事实记忆、经验记忆和工作记忆。

事实记忆用于保持一致性。用户事实包括姓名、角色、偏好、禁忌、常用工具和沟通方式;环境事实包括项目目标、业务约束、外部系统状态和团队共识。事实记忆的关键是准确、可更新、可追溯,尤其要处理“新事实覆盖旧事实”的冲突。

经验记忆用于持续改进,需要沉淀“这类问题以后该怎么做”。经验记忆可以进一步分为案例记忆、策略记忆和技能记忆。案例记忆保存具体成功或失败过程;策略记忆从多个案例中提炼通用工作流;技能记忆则把经验固化为可复用工具、脚本或 API。

工作记忆用于管理单次任务中的临时状态。长文档分析、多步骤工具调用、复杂排查任务都会产生大量中间信息。工作记忆需要不断压缩、替换和保留关键节点,否则上下文会被噪音淹没。

三者的生命周期不同:事实记忆要重视冲突消解,经验记忆要重视抽象和复用,工作记忆要重视压缩和时效。把它们区分开,是设计可维护记忆系统的第一步。

6. 记忆生命周期:形成、演化、检索、遗忘

Agent Memory 不是简单的“保存历史记录”。生产级系统至少要覆盖四个生命周期阶段。

6.1 记忆形成

记忆形成常见方式包括语义摘要、知识蒸馏、结构化抽取、实体关系构建、向量化编码和参数内化。不同方式对应不同存储形态:

Token 级记忆是可读文本或结构化数据,透明、易调试,但容易膨胀。参数级记忆通过微调或知识编辑写入模型,容量和调用效率更好,但成本高且可解释性弱。隐式记忆以向量或隐藏状态存在,适合检索,但需要额外索引和评估。

实践中,应用型 Agent 大多选择可读文本加索引的组合:先把关键信息写成 Markdown、JSON 或结构化记录,再用向量、BM25 或图索引支持检索。

6.2 记忆演化

记忆演化的目的是让记忆库保持新鲜和精炼。随着交互增加,记忆会出现重复、冲突、过时和噪音。系统需要合并同类项、更新旧事实、抽象高频经验、降低过期信息权重,必要时删除低价值内容。

这也是很多系统引入 dreaming、reflection、consolidation 的原因。它们本质上是后台整理任务,扫描已有记忆,判断哪些值得晋升为长期知识,哪些需要合并,哪些应当标记为过时。

6.3 记忆检索

记忆检索的核心问题包括:何时检索、查询如何构造、检索策略如何组合、结果如何过滤和注入。

最简单的方式是关键词搜索;更常见的是向量语义搜索;更复杂的系统会组合 BM25、向量相似度、图遍历、时间衰减和 rerank。检索不应追求越多越好,而要追求高信噪比。错误记忆进入上下文,比没有记忆更危险。

6.4 记忆遗忘

遗忘和记忆同等重要。没有遗忘机制,记忆库会不断膨胀,检索成本增加,过时信息污染上下文,Agent 甚至会基于旧事实做出错误决策。

遗忘可以基于时间、访问频率、重要性评分、冲突覆盖、用户显式删除或模型判断。越靠近生产环境,越要把遗忘、审计和回滚当成核心能力,而不是后续优化。

7. 两条路线:模型驱动与应用驱动

Agent Memory 的实现路线可以粗略分为模型驱动和应用驱动。

模型驱动路线试图把记忆能力嵌入模型内部,例如在 Transformer 中加入可读写记忆单元、通过 kNN 检索历史激活、训练模型学习存储和遗忘。它的理论上限更高,但研发成本极大,通常需要模型架构改造、预训练或大规模微调。

应用驱动路线把模型视为黑盒,在外部构建记忆管理系统。它使用文件、数据库、向量库、图谱、检索器、整理任务和访问控制来支撑记忆。它的优势是落地快、模型无关、可迭代,适合绝大多数业务团队。

这并不意味着模型驱动不重要。模型驱动论文提供了很多思想,例如读写门控、可更新记忆、遗忘机制、分层记忆。但在当前工程实践中,应用驱动路线更容易形成可运行、可观测、可治理的系统。

8. 一个实用的基础架构抽象

综合几篇文章,可以把 Agent Memory 抽象为五层:

  1. 采集层:捕获用户输入、工具结果、会话日志、外部事件和人工编辑。
  2. 写入层:判断哪些信息值得保存,并选择写入目标。
  3. 存储层:承载 Markdown、SQLite、向量库、图数据库或参数记忆。
  4. 检索层:通过关键词、向量、图遍历、时间衰减和 rerank 找到候选记忆。
  5. 注入层:把候选记忆压缩、格式化、去重后放入上下文或作为工具结果返回。

围绕这五层,还需要安全、权限、审计、评估和成本控制。记忆系统不是单个工具,而是一条持续运行的数据管线。

Agent Memory 的核心,是管理可演化的长期状态。它要区分 Memory、Context、RAG 和 Context Engineering;要把事实、经验、工作状态分开;要覆盖形成、演化、检索和遗忘;还要在成本、准确性、安全和可控性之间做权衡。

对大多数团队而言,可以将一个透明的应用驱动 MVP 作为起点:明确什么值得记,写到可审计的结构化文本或数据库中,建立基本检索和更新机制,再根据真实使用中的失败案例逐步引入向量检索、图结构、dreaming、时间衰减和人工审计。

Agent Memory 技术综述(一):从无状态 LLM 到可演化记忆系统
http://blog.kurfuerst.online/index.php/archives/51/
本文作者 Großer Kurfürst
发布时间 2026-05-14
许可协议 CC BY-NC-SA 4.0
发表新评论