智能体的记忆存在哪里比较稳
我把记忆从文件搬进数据库试了半个月,最后又搬回了文件。智能体的记忆存在哪里比较稳,我的答案是纯文本文件更稳,数据库只在两个条件下才值得上——这个结论是搬来搬去试出来的,不是查文档查出来的。
智能体的记忆存在哪里:先说稳不稳取决于什么
我中途把一批记忆从文件挪进了本地数据库,理由是查询方便。
用了两周发现一个问题:数据库坏了,我打开文件什么都看不见。 而文件坏了大不了是一行乱码,剩下的还在。
对一个人跑的 Agent 来说,「出事时能看到全部内容」比「查询快」值钱得多。这是我在「智能体的记忆存在哪里比较稳」这件事上,最后选文件的原因。
智能体的记忆存在哪里比较稳:我的文件方案长什么样
不是一份大文件,是三层目录结构。
第一层放稳定事实:我是谁、什么背景、团队配置。第二层放当前状态,更新最频繁。第三层按时间追加历史结论,只加不删。
关键不是分几层,是路径写死。 路径一变,AI 每次开工都得重新找,等于没记忆。我立项到第 7 轮迭代才把路径固定下来,前面的反复改路径是最浪费的一段时间。
数据库什么时候才值得上
只有两种情况我会考虑数据库。
第一种是条目量到了一定程度,用文件翻找已经明显拖慢速度。第二种是需要多进程同时读写同一份记忆,文件锁处理起来容易出错。
除了这两条,我都用文件。理由很实在:文件能直接 grep、能 diff、能塞进版本管理,出问题我肉眼就能定位。
数据库的价值在执行效率,代价在可观测性。一个人干活,我优先保可观测性。
别把两件事混在一个地方
我踩过一个坑:把「身份事实」和「任务进度」写在同一个文件里。
后果是任务进度更新一次,整个文件就重写一次,身份的稳定内容跟着一起震荡,AI 每次读到的东西都不一样。
稳的东西和不稳的东西必须分开。 身份层可能几个月不动,进度层一天改几次,放一起就是互相干扰。
同理,历史结论也不要和当前状态混——历史是只追加的,当前状态是反复覆盖的,两种写入方式本身就不兼容。
稳定性真正取决于什么
搬完这轮之后我想明白一件事:存储位置只占一小半,另一大半取决于读取规则。
同一个文件,有没有规定「什么时候读」,效果差很远。我的规矩是开工先读第一、二层,涉及历史判断再翻第三层。
这套三层文件怎么落地,我写在 一个人怎么给 AI 装上记忆。如果连读都没读,存得再稳也是白存。
一张自查:现在稳不稳
- 记忆文件坏了一行,你能不能看懂剩下的内容?
- 换个 AI 工具,这份记忆能不能原样搬过去?
- 关掉会话重开,它还需要你重新自我介绍吗?
- 你现在能说清「最新版在哪」吗?
最后一条最重要。说不清最新版在哪,就等于没有记忆。
常见问题
Q:智能体的记忆存文件还是数据库更好?
A:一个人用,我推荐纯文本文件,理由是出事时能直接看懂。条目量很大或需要多进程并发读写时,再考虑数据库。
Q:记忆用数据库是不是更专业?
A:不是。数据库赢在查询效率,输在可观测性。单人场景里,能打开文件一眼看清内容,价值更高。
Q:换工具之后记忆要怎么迁移?
A:用文件就几乎没有迁移成本,拷过去就行。要改的只是「让它怎么读」这一步,内容本身不用动。智能体的记忆存在哪里比较稳,说到底取决于你出事时能不能看懂它。
相关阅读
本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。
完整代码、踩坑清单与最新进展,都在公众号。
📱 关注公众号「西米分享」