博客 / WEEKLY #001

把记忆带到下一个 Agent

记忆存在哪家服务里,换工具时就得向哪家讨还。一套自己持有的文件系统让个人上下文可以在多个 Agent 之间迁移,但同步、备份与多模态素材仍是没走完的路。

用了一年的 AI 助手,记得你的项目、写作习惯和常聊的话题。这时出现一个更好用的 Agent,面对的问题不是“要不要换”,而是“带不走”。记忆长在原来的产品里,换工具等于失忆一次。

记忆的归属问题

云端产品的记忆保存在服务端,绑定在账号上。这带来两个麻烦:一是记忆的质量取决于产品愿不愿意做好,做得不好,用户没有别的办法;二是产品与模型本身会变化,数据交出去之后未必拿得回来——今天好用的服务,之后可能改版、调整或关停,而下一个更好用的,读不到这边攒下的东西。

一种应对思路是维护本地的 Memory 和本地上下文,并预期会出现专门的产品把这件事做好。这是对产品方向的判断,尚待验证,但它指向一个立场:个人上下文应该有一份独立于任何聊天窗口、任何产品的存放处。

一套文件系统做底座

已经有人把这种存放处做成了文件系统:数据库加文档,Memory 就是一堆文件。这大概是最不时髦、也最难被任何一家公司锁死的形态——文件在哪里、是什么格式、能不能打开,都一目了然。

同步是第一个要解决的问题。把这套文件同步到 GitHub 私有仓库是一种选择,但实践中的问题很具体:文件数量多而碎,仓库很快变得臃肿;更麻烦的是多模态素材——经常和图像、视频打交道的人,没法把这些东西放进 Git。于是另一种做法出现了:写一个挂载,让本地 Memory 自动同步到家里的 小米智能存储,不经过任何第三方服务。

需要说明的是,这是一项个人实践,不是一套经过验证的通用架构。它证明的是“个人可以持有自己的上下文”;至于文件该用什么结构、同步频率怎么定、多种素材如何索引,都还没有标准答案。

工具会换,组织方式可以留下

文件形态的记忆库有一个容易被低估的好处:它可以整体搬家。

一次实际的迁移尝试是把为 Obsidian 开发的一批插件交给 Agent,迁到另一个运行环境里:由 Agent 判断哪些功能与笔记无关、自行去掉,然后一次性迁完。工具换了,积累下来的东西——插件、目录结构、组织习惯——跟着走。这套 Memory 文件夹的组织方式,最初就是从 Obsidian 的笔记文件夹延续下来的;软件可以换,组织方式不依附于任何一款软件。

所谓 Memory,落到实现上就是“一个由 Markdown 和 Git 组成的东西”,或者说,就是文件。越是接近普通文件,迁移成本越低,被单一产品绑架的可能性越小。

记忆里该放什么,交给谁用

一份实际在运转的 Memory 大致分几类:自己的项目、发出的作品和内容、形成的认知,还有生活上的记录。健康数据也在其中,每天定时同步一次,写回 Memory,之后再基于这些数据做分析和可视化。

这套文件系统的另一个用途,是让多个 Agent 共享同一份上下文。一种做法是把几个模型的用量同时装进一台虚拟机,让它们看着安排:谁写得动就谁写,闲着也是一种浪费。任务不再绑定某个特定模型或产品——因为上下文在文件系统里,任何一个 Agent 接进来都能读到。可迁移性改变的因此不只是“换工具”,还有“同时用几个工具”的方式。

同步不等于备份

最后要分清两件事。同步解决的是“每个地方都有最新的一份”,备份解决的是“丢了还能找回来”。自动同步到 NAS 的文件,如果 NAS 只有一块盘,坏一次就全没了;高频读写还会实打实消耗硬盘的寿命——已有重度使用者因为每天写入大量原生数据,把硬盘用到报废的个例。

收集也不等于可靠记忆。往 Memory 里塞东西很容易,塞进去的东西是否还能被找到、是否已经过时、是否值得保留,需要另一次整理。把记忆带到下一个 Agent,靠的不是把文件拷贝过去这个动作,而是一套持续维护、随时可以交出去的资料库——它属于你,才谈得上跟着你走。

相关资料