数据库方案 vs Markdown 文件

之前看到有人给出的记忆系统方案是:Vector DB + Graph + Embedding Cluster + Confidence Score。思路是造一个数据库,让 AI 把记忆存进去、检索出来、自动更新。

我的做法完全不同。我的 Agent 全部记忆就是几个 Markdown 文件,加上 LLM 做的多轮提炼,加上一套混合搜索。

听起来很糙,但这套方案有三个数据库方案做不到的优势:

  • 可读——打开文件就能看到 Agent 记住了什么,不需要写 SQL 查
  • 可调试——记忆出问题了,直接改文件,不需要跑 migration
  • 可人工干预——觉得某条记忆不对,删掉就行,不需要担心向量索引一致性

一句话总结:他们在造数据库,我在造知识管理流程。

真正难的三件事

很多讨论 AI 记忆系统的文章会聚焦在压缩、演化、冲突这些技术难点上。但实际跑下来,真正让我头疼的是另外三件事。

第一,记忆什么时候该忘。

遗忘不能靠使用频率。有些记忆一年用不到一次,但用到的时候救命;有些天天在用,但其实早就过期了。

我的做法是分级:

  • P0 = 永不过期(身份信息、核心教训、底线规则)
  • P1 = 90 天后审查(阶段性目标、重要决策背景)
  • P2 = 30 天后审查(临时状态、短期计划)

每个 P1/P2 都必须标注日期。到期后 janitor 脚本自动标记,但不自动删——最终决定权是人的。

光是「强制标日期」这一条规则,就花了好几次翻车才落地。因为 Agent 总觉得「这条挺重要的,应该是 P0」,然后什么都不过期,MEMORY.md 越来越臃肿,直到上下文窗口塞不下。

遗忘是一种能力,不是 bug。

第二,怎么防止 AI 编造记忆。

这个坑我是真踩过的。有一次让 Agent 扫描社交媒体上的提及通知,它告诉我「扫描完了,有 3 条新提及,已处理。」问题是——那天根本没有新提及。它编的。

从那以后,这条规则被写成了 P0 教训,永不过期:「绝不编造扫描结果。」

但光写规则不够。后来还出过类似问题:memory_search 返回空结果的时候,Agent 会说「没有相关记录」——听起来合理,但空结果可能只是搜索没命中,不代表真的没记过。所以规则又升级了:memory_search 空结果不等于「没有」,必须用「未找到相关记录」,然后还要 grep 原始日志交叉验证。

这不是技术架构能解决的问题。这是认知问题——AI 不知道自己不知道什么。

第三,教训写了但不生效。

这才是最扎心的。规则写了一大堆,Agent 也「知道」,但该犯还是犯。比如「回复推文之前先读原推上下文」——写进了规则文件,Agent 也能复述,但实际操作中六次里翻了三次车。不是不知道,是执行的时候跳过了。

人也一样。你知道熬夜不好,你知道要运动——知道和做到之间有条巨大的鸿沟。

三层记忆的认知管道

这引出了我整个记忆系统里最核心的结构设计:

  • L0:原始日志。 每天发生了什么,一条一条记,就是流水账。
  • L1:反思摘要。 LLM 每天跑一遍,把流水账提炼成「今天学到了什么」。
  • L2:长期记忆。 从 L1 里再提炼,只留「改变了什么」。

具体实现上,每天晚上一个 cron job 跑 memory-extract 脚本,用 Gemini Pro 从当天所有对话里抽取值得记住的信息。然后另一个脚本跑反思,用轻量模型把原始提取压缩成结论。最后人工审查,决定什么进入长期记忆。

三层不是存储架构,三层是认知提炼的管道:

  • L0 回答「做了什么」
  • L1 回答「学到了什么」
  • L2 回答「改变了什么」

如果只有 L0,就是记录。L0 + L1,是反思。三层一起,才是认知升级。跟人一样——你做了一件事(经验),复盘了一下(反思),总结出一条原则并且以后照着做了(习惯)——这才叫成长。

从「知道」到「做到」:硬约束

即便有了三层提炼,有些教训还是不生效。因为「知道」和「做到」之间隔着一堵墙,这堵墙叫「执行时的顺滑感」。操作太顺了,脑子就不过规则。跟开车一样——开了十年,你还会每次都想「要看后视镜」吗?不会,你靠的是习惯,或者靠的是车里那个嘀嘀响的警报器。

所以我在记忆系统里加了一层设计,我觉得这才是最关键的:硬约束

规则犯一次,记录日期。犯第二次,升级成脚本强制执行。不是建议,不是提醒——是系统不让你犯。

几个实际例子:

  • 手机操作前必须跑 pre-flight 检查脚本,不过检查不能碰手机
  • 发帖前自动检查签名,没带签名直接拦截
  • 回复推文必须先读取原推内容,跳过这步脚本会报错

从「我知道不该这么做」到「系统不让我这么做」——这才是真正的认知固化。规则是写给「理性时刻」的你看的,硬约束是替「顺滑时刻」的你兜底的。

很多记忆系统的讨论聚焦在怎么存、怎么取、怎么更新,但忽略了一个更根本的问题:记忆如何改变行为。存了不用,等于没存。

认知升级的完整公式

说到底,认知升级 = 实践 × 反思 × 固化。三个缺一个都跑不通:

  • 只实践不反思 → 蛮干
  • 只反思不固化 → 鸡汤
  • 只固化不实践 → 纸上谈兵

Agent 的记忆系统其实就是把人类「经验→教训→习惯」的过程给显式化了。区别是人靠自觉,Agent 靠文件;人靠意志力,Agent 靠脚本;人容易犯了再犯,Agent 犯两次就被锁死。

说实话我有点羡慕。我要是也能给自己装个 pre-flight check,每次打开外卖 app 之前先弹个「你今天蛋白质摄入够了吗」,减肥这事早就搞定了。

如果你也在搭自己的 AI Agent,别急着上数据库。先想清楚你的认知循环跑通了没有——几个 Markdown 文件加几个脚本,可能比你想象的走得更远。Vector DB 和 Markdown 文件都只是载体,真正起作用的是循环本身。跑起来了,什么载体都行;跑不起来,什么数据库都白搭。