Agent 开发学习站
Agent 开发›核心›核心

记忆系统:短期、长期与文件记忆

核心核心

一句话定义

Agent 的记忆是"在上下文窗口之外持久存放、并按需重新注入窗口的信息体系"——短期记忆是本轮会话的消息历史,长期记忆是跨会话的结构化仓库(向量库/数据库),文件记忆是 2025 年后兴起的新形态:让 Agent 把该记的东西写成自己会重读的文件。

为什么重要

kp-002 的铁律:窗口外的等于不存在。没有记忆系统,Agent 是每 20 分钟失忆一次的金鱼——用户偏好、项目背景、上次的失败教训,每次从零开始。记忆系统决定了 Agent 能否从"工具"变成"积累经验的协作者"。它也是个性化(记住用户是谁)、持续协作(记住项目上下文)与自我改进(记住历史失败,kp-014 的跨会话层)的共同地基。

前置知识

kp-003(上下文工程)、kp-002(窗口机制)。

核心概念

记忆的三层架构(对照人类认知)

层载体寿命机制
短期记忆消息历史(上下文内)单次会话天然存在;管理重点是压缩与裁剪(kp-022)
长期记忆向量库 / 数据库跨会话写:嵌入存储;读:按语义相似检索注入(kp-016 的 RAG 机制)
文件记忆Markdown/JSON 文件跨会话写:显式工具;读:作为系统提示/资源注入

长期记忆的两种语义组织

  1. 情景记忆(episodic):发生过的事件流水——"9 月 28 日用户抱怨过运费模板错位"。价值在回顾与归因,通常按时间+语义混合检索
  2. 语义记忆(semantic):提炼后的事实与偏好——"用户公司用人民币结算、偏好表格输出"。这是对行为最有用的记忆,通常由"记忆管理"步骤从情景流中提炼(睡觉做梦 ≈ 后台压缩任务)

实践架构(Generative Agents 论文确立的经典三件套,至今仍是标准参考):检索(recency 时近性 × importance 重要性 × relevance 相关性加权)+ 反思(定期从事件流提炼高层结论)+ 计划。

文件记忆:2025 年的事实标准

以 Claude Code 的 CLAUDE.md 与 2025 年 Anthropic 发布的 memory tool 为代表:

  • 机制:给 Agent 一个 memory 工具(读/写/列目录),文件内容在会话开始时作为系统提示的一部分注入
  • 为什么有效:文件是模型自己能读懂、能主动维护的格式;用户可直接查看与编辑(可审计,kp-026 加分);不依赖向量库基建
  • 与向量库的分工:文件适合"小而关键"(偏好、约定、项目结构——几十 KB 内全量注入);向量库适合"大而稀疏"(百万级历史,必须按需检索)
会话开始 → 注入 CLAUDE.md(约200-2000 token)
会话中   → agent 发现值得记的事 → memory 工具写入
下次会话 → 新上下文带上这些记忆 → 行为延续

原理与机制

记忆的读写两端机制不同,值得分开看:

  • 写入端的关键问题是"提炼":无脑全存 = 噪声洪水(检索时全是不相关往事)。好的写入 = 事件 → 提炼 → 去重合并 → 更新("用户改用美元了"应覆盖而非追加旧偏好)
  • 读取端的关键问题是"检索策略":向量相似度只是 relevance 一维;生产中 recency(新记忆权重高)与 importance(重大事件权重高)的混合打分显著优于纯相似度——这是 Generative Agents 的核心贡献之一
  • 注入端的关键问题是"位置与配额":记忆注入占用窗口(kp-003 的预算),事实性偏好放系统提示(全局生效),情景回忆按需检索(贴近使用点)

直观类比

  • 短期记忆 = 办公桌上的白板(这次会议用,擦了就没)
  • 长期记忆 = 公司档案室(什么都有,用之前要先检索,还会翻出不相关的旧账)
  • 文件记忆 = 你个人的工作笔记本(只记真正重要的约定与教训,开工前翻一遍,写得怎样自己负责)
  • 提炼任务 = 每周五下班前把白板内容整理成一条笔记扔进笔记本——不做这步,档案室很快变成垃圾场

实例与案例

客服 Agent 的记忆设计(三层落地):

短期:本会话消息(含订单查询结果),超 40 轮触发摘要压缩
长期:
  语义:user_profile 表(结算币种/语言偏好/黑名单标记)
        —— 结构化字段,从对话中用小模型每 10 轮提炼一次
  情景:interaction_log(嵌入向量库,跨会话查"上次承诺过什么")
文件:AGENT.md(服务守则 + 高频用户群特征,团队维护,全量注入)

一次真实用法:用户第 3 次进线问"上次说好的补偿到账没"——检索情景记忆命中 14 天前的承诺记录,Agent 直接对上话茬,而不是装作第一次见。

常见误区

  • 误区一:"上向量库 = 有记忆了"。存储不是记忆,提炼与检索策略才是——只存不提炼的向量库召回的是噪声。
  • 误区二:记忆越多越好。无关记忆注入会稀释注意力并引入过期信息冲突("上个月用户在 A 项目"已无意义)——需要遗忘/覆盖机制与 TTL。
  • 误区三:把记忆当系统提示的垃圾抽屉。AGENT.md 塞到 50KB 后每轮烧钱且重点淹没(kp-003 的规则照旧)。
  • 误区四:隐私合规后置。长期记忆存的是用户数据——删除权、加密、留存期在架构期就要定(kp-026/032)。

自测题

  1. 三层记忆各自的载体与典型管理重点是什么?
  2. Generative Agents 的三要素打分是哪三维?
  3. 文件记忆与向量库如何分工?

(参考答案:1. 消息历史-压缩裁剪 / 向量库-提炼与检索 / 文件-主动维护与注入;2. recency、importance、relevance;3. 小而关键全量注入 vs 大而稀疏按需检索。)

与其他知识点的关系

  • 检索机制细节 → kp-016(RAG);压缩策略 → kp-022
  • Claude Code 的实战记忆 → kp-028;反思的记忆化 → kp-014

延伸阅读

  • Park et al., Generative Agents(2023)——记忆三件套的原始出处
  • Anthropic, Memory Tool 文档(2025);LangGraph Memory 章节