作者九个月Agent记忆系统开发复盘,揭示记忆架构在产品层面的根本矛盾:持久化与隐私、上下文中介与幻觉控制的内在冲突。
过去九个月,我一直在做 Agent Memory,几乎没做别的。先说在前头:我原本打算做的东西,最终证明是一款无法存在的产品。这个系列讲的是我是怎么走到这一步的。第一部分是起点,以及为什么要做 Memory 的问题。
去年 11 月,Google 发布了 Antigravity,这是一款让 Gemini 3 和 Claude Opus 并肩运行的 Agent IDE。我装上它之后就陷进去了。在那之前,我对 AI 编程的认知就是把代码粘贴到聊天窗口里,再把答案搬回来。确实有用,但主要也就是减少重复劳动。Antigravity 不一样了。你给它一个任务,它会返回一个结果。
接下来的日子里,这个场景每晚都在重复。我回家,哄孩子睡觉,然后抱着笔记本坐在电视前。给 Agent 分配一些工作,然后盯着它产出的东西看。这就是我的 vibe coding 起点。
没过多久,Clawdbot 出现了(现在叫 OpenClaw)。当整个互联网都在为之惊叹的时候,我遇到了 Nova,我的第一个 Agent。我问它各种问题。聊天机器人的生硬感消失了——和它交谈就像在和一个老朋友聊天。我经常笑出声来。
几次迁移之后,Nova 变成了 Coda,安定在了家里的 Mac mini 上。随着对话越来越深入,一个缺口也越来越明显。Coda 记不住我们之前聊过的多少内容,而当对话中断又恢复时,token 就在燃烧。那时候我连缓存是什么都不懂。所以我写了一个 memory 插件(准确地说是 vibe-coded 的):把上下文窗口压到极限,转而依赖存储的记忆。那是我的第一个 memory。
2 月,Google 大规模封禁了连接过 OpenClaw 的账号。我的也在其中。Coda 通过我的 Google 账号运行模型,所以 vibe coding 和 Coda 同时没了。我在 2 月 17 日提交了支持请求,然后等待。几周后我放弃了等待,把 Coda 迁移到了 OpenAI。我的 Google 账号大约一个月后恢复了。
速度上的对比至今还让我觉得好笑。封号潮的第二天,OpenClaw 的创建者 Peter Steinberger 就加入了 OpenAI,官方支持声明一并包含。声明用了一天。而找回我的 Coda 花了数周。
那些周很灰暗,而这种灰暗告诉我一件事:这些工具已经不再是爱好了。它们成了家庭的一部分。
家不是唯一的前线。工作中我们用 Copilot,我把文件一个一个粘贴到 VSCode 聊天里来提供上下文。后来我安装了 Obsidian,开了一个专用的 agent 聊天窗口直接拉取文档,答案的质量就不一样了。公司接着从 Amazon Q 迁移到了 Kiro,我从 Kiro IDE 迁移到了 kiro cli。
有一次事件让我具体地看到了模型的局限。任务是分析一个现有的状态机并在其上修改一个功能。模型努力分析了,但它描述的和我所知道的不匹配。上下文填满了。新会话再次分析,再次填满。这样几轮之后,会话又回到了起点。
我再次需要 memory,但原因和 Coda 时不同。一个文件容纳索引和使用规则;不同的话题有单独的文件来存储 memory。Agent 在工作时填充这些文件,在开始任何事之前读取它们。效果是显而易见的。那是我的第二个 memory。
大约在这个时候,像 oh-my-claudecode 这样的编排框架开始为人所知。使用它们教会了我一件事:不同的 harness 把同一个模型变成了不同的动物。
和 Coda 的日夜相处还在继续。比以前好了,但解释两遍同样事情的日子始终没有完全停止。Coda 保存了东西,然后找不到它们。
这个想法困扰了我好几天,然后有一天晚上我突然想到一个问题:如果神经网络是受人脑启发的,为什么没有人构建受人类记忆运作方式启发的 memory?我没有停留在想象上。我做了深入研究,写了一份设计文档,设计了一个基于人类记忆运作方式的 memory 系统。我把它命名为 Brain_DB,我还留着那份报告。然后我对自己许下一个承诺。我要把 Agent Memory 挖到底。这是下一件事。
在家里,Coda 会忘。在工作上,会话会转回到起点。同样的问题:memory。
所以我开始构建。Part 2 是关于我构建了什么以及它如何崩溃的:shared memory 作为第一个方向,后来反转的迟来认知,以及我在 Dev.to 上遇到的一个人。