智能体记忆(Agent Memory)指的是让 Agent 把信息保存在上下文窗口之外,并在后续需要时取回来的一整套机制。它处理的是一个很具体的现象:会话一关,模型就什么都不记得了;换个任务重新开一轮,你上周交代过的偏好、约定的命名规范、纠正过的错误,全都要重讲一遍。
这个词在 2026 年明显升温,原因是 Agent 的任务时长在变长。一次性问答不需要记忆,但一个连续工作几天、跨多个会话推进同一个项目的 Agent,必须有办法把「已经确认过的事实」和「上次踩过的坑」带过来。
先用一句话抓住它
上下文窗口是工作台,记忆是档案柜——工作台每天清空,档案柜要能跨天、跨项目地取用。
想想一个新来的助理。第一天你教他你的偏好:报告要一页纸、周五下午别排会、客户 A 的联系人换过一次。如果他每天早上都失忆,你就得每天重讲一遍——他不是能力不行,是没有档案。智能体记忆做的就是给他一个档案柜,以及一套「什么该归档、归到哪、什么时候翻出来」的规矩。
它通常分成哪几类
业界常用的分法借自认知心理学,虽然不严谨,但足够指导工程实现。
工作记忆就是当前的上下文,随会话结束消失。情景记忆记「发生过什么」——某天讨论过什么、为什么这么定。语义记忆记稳定的事实和偏好——用户的角色、项目的技术栈、团队的命名规范。程序记忆记「怎么做成的」——哪条流程走通了、哪种写法被否掉了。
真正的工程难点不在存,而在取和更新。存太多,检索时噪声压过信号;取太多,又把上下文预算吃光。更麻烦的是事实会变:用户换了岗位、项目换了框架、上次的约定被推翻。系统需要能识别「这条旧记忆已经被新事实覆盖」,而不是把两个矛盾的说法一起塞给模型。
常见的几种实现
文件式记忆是最简单也最普及的一种:在项目根目录放一个 Markdown 文件,会话开始时整体读进上下文。编程 Agent 领域的 AGENTS.md 就是这个模式——不需要向量库,不需要额外服务,用 Git 就能做版本管理和评审。它的局限是不会随规模自动筛选,文件越写越长就会挤占窗口。
向量检索式记忆把记忆条目做成向量嵌入存进向量数据库,按语义相似度取回。灵活,能扩展到很大规模,但对「事实随时间变化」这件事天然不敏感——旧的和新的说法在语义上一样接近。
图式记忆用知识图谱存实体和关系,部分实现还给每条边加上时间信息,这样就能表达「这条事实在什么时间段有效」。在需要跨多次会话追踪状态变化的场景里,这类方案在时间推理类评测上通常好于纯向量方案。
分层记忆把上下文当内存、把外部存储当磁盘,由 Agent 自己决定什么时候把内容换进换出。MemGPT 是这条路线的代表性工作。
实践中这几类经常混着用:稳定偏好走文件,历史对话走向量检索,关系和状态走图。
和相邻概念的区别
和上下文工程的关系:上下文工程管的是「这一轮窗口里放什么」,记忆是它的一个信息来源。二者是包含关系,不是并列。
和 RAG 的区别:RAG 检索的是外部知识库——文档、手册、网页,内容相对稳定,和某个具体用户无关。记忆检索的是这个 Agent 自己经历过的事,是私有的、增量写入的、会被后来的事实推翻的。技术栈高度重合,但生命周期完全不同。
和上下文压缩的区别:压缩是窗口快满时把历史换成摘要,作用范围是当前会话内;记忆要跨会话存活。压缩常常是记忆抽取的第一道工序。
和微调的区别:微调把信息写进权重,改的是行为倾向,代价高且更新慢;记忆存在模型之外,可以随时增删改。个性化信息几乎总应该走记忆而不是微调。
容易误解的地方
「上下文窗口够大就不需要记忆」——不成立。窗口再大也在会话结束时清空,而且塞得越满,注意力被稀释得越厉害、成本越高。记忆的价值是「按需取回少量最相关的内容」,不是「把所有东西都带着」。
「记得越多越好」——记忆库变大以后,最主要的失败模式从「想不起来」变成「记错了」:取回一条已经过期的偏好,比什么都不记更糟,因为模型会拿它当真。所以遗忘和更新机制和写入机制一样重要。
「记忆是可靠的事实来源」——记忆条目大多是模型自己从对话里抽取的,抽取这一步同样会幻觉。涉及金额、权限、合规的事实,不应该只靠记忆,要回到权威数据源核对。
「记忆可以随便共享」——多用户系统里,记忆天然携带个人信息。谁的记忆、谁能读、多久删除、导出时怎么处理,这些是隐私合规问题,需要在设计阶段就定,不能事后补。
什么时候该做
一次性问答、无状态的 API 调用不需要记忆。出现下面任一情况就该认真考虑:同一个用户会反复回来、任务要跨多次会话推进、团队希望「一个人纠正过的约定,其他人不用再纠正一遍」、或者你发现每轮对话开头都在重复粘贴同样的背景。
起步建议从最简单的做起:先用一个人工维护的文件把稳定偏好固定下来,跑一段时间看哪些内容真的被反复用到,再决定要不要上向量或图。多数团队直接上复杂方案的结果是——存了很多,取回来的没几条有用。