更多文章

AI 与开发者相关深度内容

AI Memory 最近一年进展到哪了:从向量记忆到分层记忆、工作记忆和系统记忆

如果你前两年看过很多 AI memory 文章,印象里大概率还是这套叙事:

  • 模型没有长期记忆
  • 所以需要把历史 embedding
  • 放进向量库
  • 用相似检索把过去找回来

这套说法不能说错,但今天已经明显不够了。

因为这一年里,AI memory 真正往前走的地方,不是“又多了几种存储后端”,而是整个行业开始慢慢形成一个共识:

记忆不是一坨历史文本,也不是一个向量库接口。记忆是一个和任务、状态、执行、上下文管理深度绑定的系统能力。

这篇文章想讲清楚三件事:

  1. 过去一年 AI memory 到底进展在哪
  2. 为什么“向量记忆 = agent memory”这套理解越来越不够
  3. builder 现在该怎样看待工作记忆、长期记忆和系统记忆

先给结论:AI memory 的主线,已经从“能不能记住”转到“怎么组织、何时写入、何时读取、如何避免污染”

早期讨论 memory,主要在讲一个简单问题:

“模型会忘,所以要补记忆。”

现在这个问题还在,但难点已经变了。

因为越来越多团队发现,真正难的不是让系统“记住更多”,而是:

  • 记什么
  • 什么时候记
  • 谁来决定值得写入
  • 什么时候读回
  • 读回来的东西是不是还有效
  • 怎样避免旧记忆污染新任务

也就是说,AI memory 这条线过去一年最大的变化,是它开始从存储问题,变成选择和治理问题。

第一阶段的核心做法:向量记忆为什么当时足够有吸引力

先别急着否定向量记忆。它最初流行是有充分理由的。

因为它解决了两个非常现实的问题:

  1. 模型窗口有限,历史放不下
  2. 对话和任务里确实有一些过去内容值得找回来

所以“embedding + similarity retrieval”看起来很合理:

  • 结构简单
  • 容易接
  • 可以很快 demo 出效果
  • 对 FAQ、用户偏好、历史问答这种场景确实有帮助

在很多个人助手、客服、轻量 Copilot 场景里,这一步已经足够有价值。

但一旦任务变复杂,向量记忆很快暴露出局限。

向量记忆的三个核心问题,这一年大家看得越来越清楚

1. 相似不等于重要

一个历史片段和当前 query 很相似,不代表它对当前任务最重要。

比如:

  • 用户提到过类似词汇,但语境完全变了
  • 某次失败尝试和当前任务很像,但现在其实不该复用
  • 某条历史偏好语义上接近,却已经过期

这说明“能召回”不等于“该召回”。

2. 召回不等于可执行

很多被找回来的信息,其实只是文本证据,不是 agent 可以直接拿来工作的状态。

比如历史对话里写着:

  • “上次我们决定先不要走 A”
  • “这个客户对语气比较敏感”
  • “测试环境里这个接口会报错”

这些内容如果只是原文片段,模型每次还得重新理解、重新判断、重新解释。

这不是真正高质量的 memory,更像是把旧聊天搬回来再读一遍。

3. 记忆会过期、冲突、污染

这是最近一年越来越被重视的一点。

记忆不是越多越好,因为:

  • 用户偏好会变
  • 任务上下文会变
  • 工作流会变
  • 旧策略会失效

如果没有清理和版本意识,memory 很快从“帮助系统持续工作”变成“把过时假设反复带回来”。

所以很多团队开始意识到:memory 的问题不只是 retrieval quality,而是 lifecycle management。

最近一年最重要的进展:大家开始把 memory 分层

我觉得这条线最大的实质进展,就是从“统一历史记忆”转向“分层记忆”。

至少现在越来越多人会区分:

工作记忆(working memory)

这是当前任务短期内需要保留的状态。

比如:

  • 当前目标
  • 已完成步骤
  • 中间结论
  • 正在使用的约束

它的特点是:

  • 时效短
  • 高相关
  • 经常更新
  • 容易压缩

情景记忆 / 任务记忆(episodic memory)

这是某次任务过程里形成的经验和记录。

比如:

  • 某个问题之前怎么解决
  • 某次失败是因为什么
  • 某条工作流在哪一步最容易出错

它的特点是:

  • 和具体事件绑定
  • 比工作记忆更长期
  • 但不一定适用于所有新任务

系统记忆(system memory)

这是比较稳定、跨任务存在的知识或约束。

比如:

  • 用户长期偏好
  • 团队规范
  • 产品边界
  • 安全或权限规则

它的特点是:

  • 更新频率低
  • 结构化需求更高
  • 更适合做常驻上下文或规则层

这一层分化很重要,因为它意味着大家终于不再把所有“过去的信息”当成一种东西处理。

第二个重要进展:记忆开始从“读文本”转向“读状态”

过去很多 memory 系统,读回来的基本还是文本。

现在更成熟的方向,是把一部分记忆写成状态对象,而不是原文段落。

例如:

  • 当前任务已完成到第几步
  • 用户偏好字段化记录
  • 某个工具上次失败的原因
  • 某个项目当前活跃分支
  • 某个代理当前可用权限

这类状态对象的好处是:

  • 更容易判断是否过期
  • 更容易更新
  • 更容易被 agent 消费
  • 不需要每次都让模型重新读全文理解

这其实是 memory 工程成熟的一个信号:

系统不再把“记忆”理解成一堆可搜索文本,而开始把它理解成可操作状态。

第三个重要进展:memory 开始和 context engineering 合流

过去 memory 常被单独讨论,好像它只是外挂模块。

现在越来越明显,它和 context engineering 是一体的。

因为记忆最终还是要进入上下文,而进入上下文就会碰到这些问题:

  • 这段记忆以什么形式呈现
  • 它处在上下文哪一层
  • 是原文、摘要还是结构化状态
  • 什么时候刷新
  • 什么时候清掉

所以很多 memory 项目的真实竞争,不再只是谁检索更快,而是谁更懂:

  • 写入策略
  • 压缩策略
  • 调取策略
  • 上下文注入策略

换句话说,memory 正在从“存储子系统”走向“上下文管理子系统”。

第四个重要进展:大家开始更认真面对记忆污染问题

这可能是最不性感,但最重要的一步。

因为只要系统开始长期记忆,就一定会遇到污染:

  • 错误结论被长期保留
  • 一次性偏好被误当长期偏好
  • 老任务状态渗透到新任务
  • 相互冲突的信息同时存在

如果没有治理机制,memory 很快就会从增强器变成噪音源。

所以最近一年越来越值得注意的方向包括:

  • 记忆 TTL
  • 写入阈值
  • 冲突检测
  • 人工审核入口
  • 记忆重写与压缩
  • session / task 边界隔离

这说明 memory 终于开始被当作数据治理问题来对待,而不是只当作召回问题。

对 agent 来说,memory 为什么越来越重要,但又不能无限膨胀

Agent 之所以特别需要 memory,是因为它比聊天系统更依赖连续性。

它要记住:

  • 任务做到哪了
  • 哪些工具已经调用过
  • 哪些结果可以复用
  • 哪些失败路径要避开
  • 用户或系统有哪些长期约束

没有这些,agent 每一轮都像重新开工。

但反过来,agent 也最容易被 memory 拖垮,因为:

  • 任务链长
  • 中间结果多
  • 状态更新快
  • 失效信息传播快

所以这条线最近一个越来越强的共识是:

agent memory 不能只是“多存一点”,而必须是“更会删、更会压、更会分层”。

如果今天让你重新看 AI memory,这里有一个更稳的判断框架

我会建议你用下面四个问题看任何 memory 方案。

1. 它记的是文本,还是状态?

如果几乎全是文本召回,那它大概率还停在第一阶段。

2. 它区分工作记忆、任务记忆和系统记忆吗?

如果所有信息都进同一个池子,后面污染和冲突很难避免。

3. 它有写入和清理策略吗?

没有 lifecycle 的 memory,迟早会越来越脏。

4. 它怎么进入上下文?

真正的价值不在“存下来”,而在“被正确地再次使用”。

这四个问题,比问“用的是哪个向量库”更有判断力。

对 builder 来说,AI memory 现在最值得重看的不是“有没有”,而是“是不是已经和工作流绑在一起”

很多团队现在已经不缺某种 memory 组件。

他们真正缺的是:这个 memory 到底有没有进入系统主循环。

你可以用一个很简单的判断法:

1. 它会不会影响下一步动作

如果 memory 只是让模型“知道一些过去”,但不会改变:

  • 任务选择
  • 工具调用
  • 状态推进
  • 错误恢复

那它更像背景知识,不像真正的工作记忆。

2. 它会不会被持续维护

很多 memory 系统的问题不在第一次写入,而在第二十次以后。

如果系统没有:

  • 清理机制
  • 压缩机制
  • 覆写机制
  • 冲突处理

那记忆越久,污染越重。

3. 它会不会和权限、环境、任务边界一起工作

这点很容易被忽略。

真正成熟的 memory,不是全局到处可读,而是知道:

  • 哪类记忆只属于某个用户
  • 哪类只属于某个任务
  • 哪类能跨任务复用
  • 哪类必须过期

这说明 memory 不是孤立模块,而是系统治理的一部分。

4. 它会不会被人类团队理解和修正

如果一个 memory 系统只能自动写、自动取,但人类很难看懂:

  • 现在记了什么
  • 为什么记
  • 哪条已经过期
  • 哪条正在误导模型

那它很快会变成隐藏 bug 的来源。

所以今天判断 AI memory 进展,不能只看“检索效果更好了没有”,而是要看它有没有真正进入任务、状态和治理这三个层面。

最后一句:AI memory 最近一年的真正进展,是它终于从外挂能力走向系统能力

所以如果要一句话总结这一年的变化,我会说:

AI memory 的进展,不是让模型记住更多,而是让系统开始知道:哪些东西该被记、该怎样被记、该在什么时候被忘掉。

这就是为什么今天再谈 memory,已经不能只停留在 embedding 和 retrieval。

更值得跟的,是这些方向:

  • 分层记忆
  • 状态化记忆
  • 写入策略
  • 清理与压缩
  • 和记忆注入相关的 context engineering

谁在这些层面做得更成熟,谁才更接近真正可用的长期 memory 系统。

← 返回更多文章