两个反直觉的事实
聊 AI Agent 的"记忆",先给你两个反直觉的事实。
第一个:市面上 90% 的人对 Agent 记忆的理解是——"模型记不住?接个向量数据库,把聊过的全塞进去"。这个思路是错的,而且错得很典型。
第二个:据技术圈对 ChatGPT 记忆系统的逆向推测(Karpathy 等人有公开讨论,注意——这不是 OpenAI 官方文档,我们只把它当"业内最认真的猜测"),这个全球最大 AI 产品的记忆架构里,向量数据库根本没有出场。
行业标杆用的是什么?说出来你可能会笑:记账、建档案、写前情提要——一套数据库圈玩了三十年的老手艺。
这是我们「AI 新概念背后的老原理」栏目的第三篇。前两篇说过:Agent 新框架的地基是 40 年前的老配方,git worktree 是老工具等来了新场景。今天这篇的判断是:Agent 的记忆,不是存储问题,是治理问题——而数据治理这本账,数据库圈已经记了三十年。
"外挂硬盘"思路错在哪
先把错误思路解剖清楚。
把记忆理解成"外挂硬盘"的人,衡量记忆能力的标准是"存了多少 G"。但真正的标准应该是:"历史"到"当前决策"的通道是否通畅。类比一个真实员工:他的价值不是把公司十年的文件都背下来,而是遇到具体问题时,能从历史里精准提出最有用的那份证据。
纯向量数据库做记忆,有两个致命缺陷:
缺陷一:模糊匹配干不了精确活。 一个买车 Agent 需要确认用户预算。向量库的做法是从历史对话里扒一堆和"预算""钱"相关的长篇大论,扔给模型自己猜——啰嗦且易错。正确做法朴素得多:结构化字段 User_Budget = 8万,要用的时候直接查,一击命中。
缺陷二:时间盲区。 用户昨天说"预算 5 万",今天说"涨到 8 万"。向量库相当于把两张纸条扔进同一个箱子,模型抓出来分不清先后——它可能拿着 5 万的旧纸条,给用户推荐错一整个价位段的车。
记住这两个缺陷,因为下面两道"老配方"正好一一对症。

老配方一:银行的账本
生产级的 Agent 记忆系统,核心是三件套——Ledger(账本)、Views(视图)、Policy(策略)。
每一件都是老朋友:
- Ledger(原始账本):append-only、只增不改,记录所有读写动作。这就是银行流水——银行从不"修改"你的余额,只往流水里追加一笔笔交易,余额是流水算出来的结果。数据库圈的近亲叫 binlog / CDC。
- Views(派生视图):把死板的底层数据转成模型能直接用的形态——知识图谱、时间线、用户小传。这就是数据库的物化视图:底层一张流水表,上层按需要投影出各种好用的"看法"。
- Policy(控制策略):系统的大脑,决定何时查资料、何时记一笔、何时主动遗忘。这就是数据库的调度器。
三件套里最容易被忽视、又最致命的是 Policy——没有它,记忆系统会在几天内变成一个"巨大的数据垃圾场":什么都记,什么都检索,什么都舍不得删,最后什么都找不到。
注意这个结构对缺陷一的回应:明确的业务属性(预算、偏好、身份)进结构化档案,模糊的对话上下文才走摘要——分层,而不是一锅端。

老配方二:数仓的拉链表
再看缺陷二——时间盲区。这个问题有个专门的解法,叫双时态(bi-temporal):给每条记忆同时打两个时间戳——Valid Time(这件事在现实世界里何时生效)和 Transaction Time(这条记录何时被写进系统)。
用一个经典案例看它怎么工作。系统记录"张三是 A 公司总监",半年后张三跳槽去了 B 公司:
- ❌ 留两条记录但不区分 → 模型把"过去事实"当"当下真相",幻觉
- ❌ 直接删旧记录 → Agent 失忆,"张三去年在哪"答不出来
- ✅ 双时态:两条记录各带生效区间。问"张三现在在哪"→ 取生效中的那条 → B 公司;问"张三去年在哪"→ 取覆盖去年的那条 → A 公司
现在揭底:这套机制不是 AI 时代的发明。它在数据仓库领域以 SCD(缓变维) 的名字存在了三十多年,Kimball 在《The Data Warehouse Toolkit》里写成了教科书分类——其中 SCD Type 6,俗称拉链表,和 bi-temporal 几乎一一对应:数仓叫 Effective Date / Expiration Date,Agent 圈叫 Valid Time。
换句话说:今天 Agent 记忆圈最前沿的"时间感"方案,是数仓工程师三十年来每天都在维护的东西——只是换了个英文名,又火了一次。

标杆的克制:ChatGPT 的四层记忆
回头看开头那个反直觉事实。技术圈推测的 ChatGPT 记忆架构一共四层(再次强调:逆向推测,非官方):会话元数据(时区、设备,用完即弃)→ 用户结构化档案卡(职业、偏好、预算,JSON 表格,随时覆盖更新)→ 近期对话摘要(像美剧的"前情提要",不存原文)→ 滑动窗口(当前上下文,超限就丢最老的)。
这套架构最值得学的不是任何一层的技术,而是整体的克制:明确的走档案,模糊的走摘要,过期的果断丢弃——每一层都在做"该记什么、不该记什么"的治理决策,而不是无脑存储。
这也解释了为什么"接个向量库"的方案总让人失望:它把治理问题当成了存储问题来解。
收尾:这本账,数据人记了三十年
把三段合起来看:账本(Ledger ↔ 银行流水/CDC)、拉链表(bi-temporal ↔ SCD)、分层治理(四层架构 ↔ 数据分层)——Agent 记忆的每一块核心拼图,都能在数据工程的旧世界里找到原型。甚至"元数据管理"这门数据治理的老学问,和三件套的对应关系也严丝合缝。
这是本栏目的判断第三次得到验证:AI 时代的"新",多数不是发明,而是旧答案与新问题的重新匹配。
最后给一个可能被忽略的推论。如果你是数据仓库、数据治理背景的工程师——那些你以为在 AI 时代"过时"了的手艺:SCD、CDC、元数据管理、分层建模——正在 Agent 基础设施圈被重新发明、重新定价。你不缺新技能,你缺的可能只是一次"旧手艺、新战场"的翻译。 这个话题值得单独写一篇,先按下不表。
评论