拆解智能体记忆系统:三个部件与四种记忆的区别

拆解智能体记忆系统:三个部件与四种记忆的区别

_

我们在谈论 AI 智能体的「记忆」时,这个词往往比实际含义更宽泛。大多数「记忆库」构建的,实际上只是用户的自传式信息——他们住在哪里、在做什么决定——而非完整的认知记忆系统。这个概念的收窄,恰好揭示了工程上的核心挑战。

智能体记忆库由三个基本部件构成,理解任何库的文档都可以从这三处入手。

提取器

提取器负责读取对话记录,决定保留什么。通常是一次 LLM 调用,通过提示词或输出 schema 产生提取后的陈述——关于用户、世界或任务的简短抽象事实。

它做出的最关键选择是时机。每一轮消息后都提取,会为无关闲聊付出无用 token;等到会话结束时才提取,解决指代问题所需的上下文已经消失。两种方式各有代价。真正值得问的问题是:这个库丢弃了什么?共指线索(「他」指的是谁)、时间锚点(「昨天」「下周」)、局部消歧上下文,都是常见牺牲品。

在认知层面,提取是一种压缩:从情境化的事件变成去情境化的事实。「用户在周二的咖啡桌上提到更喜欢 TypeScript」被压缩成「用户更喜欢 TypeScript」。压缩的激进程度,是每个库的核心设计决策。

存储

存储层也就是数据库,可能是向量索引(按语义相似度检索)、关系表(按列过滤)或知识图谱(用带类型的边连接)。每条陈述都附带元数据:时间戳、有时是置信度评分、有时指向原始对话的回溯指针。

存储要回答的最难问题不是「放哪里」,而是「新旧矛盾时怎么办」。「用户住在巴黎到四月为止,之后搬到了阿姆斯特丹」——现在两条陈述都显示为当前状态。是覆盖(旧信息作废,不留历史)、追加(都保留,让检索层自己判断)、还是标记旧信息为已过时?无法回答「我上个月相信什么」的存储,算不上记忆系统,只是带时间戳的快照。

检索器

检索器在查询时刻将当前问题转化为搜索,返回最可能相关的陈述。向量相似度是基准做法,在此基础上加关键词搜索,再加重新排序是常见第三层。从结构上说,这就是 RAG——语料库换成用户累积的陈述。有些库还加入时间过滤器(排除已过时的陈述)和预设检查(检测问题本身是否基于过时事实)。

记忆的种类

认知科学经典分类有四种:情景、语义、程序和working memory。工作记忆在智能体中就是上下文窗口,本文暂不讨论。

情景记忆对应特定时间地点的事件——「上周二和 Aleksandra 在 Mostowa 街角的咖啡馆见过」。这种记忆是有日期的、情境化的、个人亲历的,回想它就像重演场景。

语义记忆是世界性的事实,不关联任何具体事件——「柏林是德国首都」「水的沸点是 100°C」。你知道这些,但通常说不清何时学会。

人们日常说的「智能体记忆」大多属于这类。用户更喜欢 TypeScript 最初是一次情景观察——他们在周二说过——但存入存储层时,情境已剥离,只剩下一条关于用户的、直到被推翻前都为真的事实。

程序记忆是会做某事的能力——绑鞋带、骑自行车、键盘快捷键的肌肉记忆。你通常没法准确说出来,但它可靠地支配行为。这是检验库承诺与实现差距的最清晰试金石。

编注:信源为技术博客,聚焦架构设计与认知科学概念对照。材料未涉及具体产品实现细节或行业应用案例。


小米MiMo-V2.5系列大幅降价 对标DeepSeek V4 2026-05-27
一个 Go 语言写的极简网络电台:自己备歌 .opus 文件,IRC 频道里一起听 2026-05-27