AI 记忆的难点在于写入,而非读取
摘要
一篇观点文章认为,AI 智能体记忆真正的挑战在于写入路径——即如何在不同作用域下对存储内容(事实、观察、偏好、决策、待办事项)进行结构化和分类——而非检索,并以企业销售智能体为例,说明为何非结构化的对话记录片段会失效。
我最近在看一篇关于 AI 记忆的 Reddit 帖子(现已删除),它促使我把长久以来的一些想法写下来。不是关于该用什么工具,而是用最朴素的话说:记忆究竟应该如何运作。每个和 AI 打交道的人脑子里都有某种版本的思考,这是我的版本。很期待听到你在哪些地方同意、哪些地方不同意。以下只是我的个人想法,我非常乐意不断打磨我的思路。下面是正文。
任何有用的 AI 智能体都需要记忆才能良好地工作。Claude Code 在大型代码库上工作时,需要知道它已经构建了什么、为什么做出某些架构决策、哪些 bug 已经排查过、哪些工作尚未完成。个人智能体需要知道你的偏好、你正在忙什么、你上周决定了什么、以及从那之后发生了什么变化。企业智能体可能需要理解客户、项目、流程以及组织中数百件事所涉及的决策。
所以记忆显然很重要。但我想得越多,就越不确信难点仅仅是存储更多信息、以及日后检索到正确的信息。当今大多数 AI 记忆就是这么被框定的:发生了某件事,我们把它存下来,之后当模型需要上下文时,我们找出看起来相关的片段,放回上下文窗口。向量检索、时间近因、摘要、知识图谱、更大的上下文窗口、分层记忆——这些都很有用。但在决定如何存储记忆之前,我认为有一个更基础的问题:记忆到底应该起什么作用?
因为能够访问过去,并不等于理解过去。而一旦智能体开始做真正的工作,这个差别就变得显而易见。
假设我正在用一个智能体帮我向某家公司销售产品。这不仅仅是一次对话。我们研究这家公司,了解他们的业务,确定想找谁交谈,然后是外联、一次需求调研通话、也许还有一份方案,接着是后续跟进。现在假设我把那次需求调研通话的录音文字稿交给智能体。在这四十分钟的对话中,客户在某个时刻提到他们的数据团队花大量时间回答临时问题。我们得知他们使用 Snowflake。有人说他们不想要又一个仪表盘。我们商定开展为期六周的试点。安全审批仍在进行中。
这些都是值得记住的事情,但它们并不是同一类东西。「他们使用 Snowflake」是一个事实。「数据团队似乎负担过重」是一个观察。「我们不想要又一个仪表盘」是某个人表达的偏好。「我们将开展为期六周的试点」是一个决策。「安全审批仍在进行中」是尚未完成的工作。
智能体的任务不是存储整份文字稿。而是把文字稿拆解成这些片段,并把每一片归档到它应有的位置,归到这个客户档案的层级上。试点决策属于这笔交易。Snowflake 这个事实属于这家公司。这个偏好属于说出它的那个人。
但这个客户档案并不是这次通话告诉我们的唯一对象。我们针对的是某一类公司、某一类问题,并且我们有一个理论,假设这个理论成立,我们应该听到什么。因此同一次通话也回答了高一个层级的问题:这类公司是否给出了我们预期的信号?负担过重的数据团队是否再次出现?「不要再给我仪表盘」这个异议是否出现,来自哪个职位?
第二层的存在,取决于第一层是否被正确归档。你无法针对五百份对话文字稿的片段池去提问「这类公司在告诉我们什么」。你可以针对在被记录那一刻就被打上客户档案、职位和细分市场标签的观察与偏好来提问。如果所有这些都只是变成躺在记忆里的文本,那么两层信息都会丢失。系统需要的不只是记住说了什么,它还需要理解这些信息意味着什么,以及它们归属于哪里。
我认为还有一个更早的环节,我们通常会直接扔掉。在智能体接触到那条信息的那一刻,它就已经知道原因了:我正在做销售工作;我正在处理这家公司;我此刻正在试图了解他们的问题;这条信息来自一次需求调研通话。这个结构在记忆被创建时就已经存在了。那为什么要把它扔掉,之后再让检索系统去重建呢?
这正是我开始思考:记忆或许应该围绕「工作」来组织,而不仅仅是围绕「对话」。大致像这样:
工作类型 → 任务 → 子任务 → 行动
如果我正在调研一个客户,我了解到的东西归属于那次调研。如果我正在调试某个东西,我了解到的东西归属于那次调试。如果我正在规划一次旅行,那些决策和偏好归属于那次旅行。具体的层级结构会有所不同,但原则很简单:当某件事发生时,系统本就应该知道它归属于什么。
但即便如此,也只解决了部分问题。因为记忆还需要理解「变化」。假设一个客户最初告诉我们:成本是我们最大的顾虑。三个月后他们说:现在速度比成本重要得多。一个简单的记忆系统会保留两句话。检索系统会返回与当前问题更相似的那一条。基于时间近因的系统会更倾向于第二条。但真正发生的事情更有意思:他们的优先级变了。有用的记忆不是「成本很重要」和「速度很重要」,而更接近于:成本曾经是优先项,现在速度才是。发生了一些变化。
这个区分无处不在都很重要。一家公司换了 CEO。一项决策被推翻。一个悬而未决的问题被解决。系统需要知道的不只是新信息出现了,还需要理解这条信息是补充了什么、改变了什么、与什么相矛盾、取代了什么,或者仅仅记录了一个事件。
这就开始看起来和搜索非常不一样了。每当有新的事情发生,系统几乎需要主动问:我正在做什么?我刚刚了解到什么?关于这件事我原本知道什么?这改变了什么?我现在应该相信什么?
与此同时,我们并不想抹去过去。如果一家公司换了 CEO,我希望智能体知道现在的 CEO 是谁。但如果我问的是两年前做出某项决策时是谁在执掌这家公司,那么旧信息就很重要。
所以智能体真正需要维护的是两样东西:当前的世界状态,以及我们是如何走到这一步的历史。它们不是相互竞争的「真相版本」,它们回答的是不同的问题。
这也正是我越来越觉得,关于 AI 记忆的讨论过快地跳到了基础设施层面的原因。向量数据库可能有用,知识图谱可能有用,关系型数据库可能有用,巨大的上下文窗口可能有用——但这些只是关于「如何实现记忆」的决策。在那之前还有一层:逻辑系统本身。
在非常简单的层面上,我把它想象成:
我们在做某件事 → 在做的过程中发生了某件事 → 我们理解发生了什么,以及它产生了哪一类信息 → 我们判断它是否改变了我们已有的认知 → 我们更新对当前状态的理解 → 我们保留历史 → 当我们日后再次做某件事时,我们把重要的部分调取回来。
或者更简单地说:
工作 → 事件 → 解读 → 变化 → 状态 → 历史 → 回忆
这和下面的模式截然不同:
对话 → 存储 → 搜索 → 检索
检索依然重要。总会有信息是出人意料地变得有用的,而智能体永远无法预知自己六个月后会需要什么。所以我们绝对需要搜索过去的方式。但或许检索应该运行在一个记忆系统之上,而不是它本身就是那个记忆系统。
这还改变了我对困难的工程问题究竟在哪里的看法。目前大量的关注点都在读取侧——我们如何在正确的时机检索到正确的记忆?但也许
相似文章
AI 智能体记忆机制详解(28 分钟阅读)
本文全面介绍了 AI 智能体记忆机制的技术原理,区分了工作记忆与长期记忆的实现方式,并探讨了上下文管理、基于嵌入的检索以及数据生命周期治理等关键策略。
你认为智能体记忆主要是一个AI问题,还是一个恰好被AI使用的基础设施/数据管理问题?
对智能体记忆主要是一个基础设施/数据管理问题而非AI问题的反思,聚焦于权限、范围、修订历史等实际复杂性。
尝试让智能体记忆跨会话持久化所学的经验
本文反思了AI智能体记忆的复杂性,远超简单的存储问题,强调了诸如判断真实性、优先级变化、区分决策与噪音以及何时恰当地呈现上下文等挑战。
AI记忆应如何表现?
对AI记忆系统现状的分析,认为焦点已从存储更多数据转向定义记忆应如何表现——涵盖治理、可观测性、生命周期管理和互操作性。
关于 AI 智能体的真实内情
一位资深从业者分享了将 25 个以上 AI 智能体部署到生产环境的经验教训,指出记忆、编排和可审计性远比模型选择重要。文章详细介绍了上下文丢失、静默成本循环等常见故障模式,并推荐了包含 Claude Sonnet 4、Pydantic AI 以及 Octopodas 等专用记忆层的技术栈。