作者发现AI Agent记忆系统失效时无明显报错,提出用Pytest定期审计MEMORY.md的完整性、可追溯性和有效性,防止知识在不知不觉中丢失。
上周我发布了 Verified Memory Vault——一个免费的 Obsidian 知识库,通过一个简单的 CLAUDE.md 启动文件和一个只追加的 MEMORY.md,为 Claude Code、Codex 或 Gemini CLI 提供持久记忆功能。它确实能用。但跑了几周之后,一个事实变得显而易见:
记忆系统不会大声失败。它们在静默腐烂。
没有人会在某个戏剧性的下午一下子删除你 Agent 的大脑。相反:
一条笔记被重命名,三个 [[wikilink]] 随之失效——但几周内谁都不会注意到。
有人(可能是你,也可能是一次"清理"行动中的 Agent)在重写某条记忆时去掉了日期前缀。那条记录现在无法审计:你再也无法判断 Agent 在上周二做那个决策时到底知道什么。
收件箱文件夹堆积了 40 个未分类文件,因为捕获容易、整理麻烦。Agent 每次会话都会把那些垃圾读进上下文。
然后还有戏剧性版本:一次过度热心的清理命令对 MEMORY.md 的一半执行了 git rm,提交通过了,知识就此消失。这不是假设——这是有记录的 Agent 设置报废方式。
一个无法检测上述任何问题的文件夹结构,不是记忆系统。只是一座好心肠的垃圾场。
所以这个知识库附带两个小型 Python 工具。不需要 pip install、不需要 Node、不需要插件——只要有 Python 3,就能跑。
python3 tools/memory_check.py
它从四个维度对知识库健康状况打分(满分 100):
输出是一个分数、一份具体问题的文件列表,以及一个退出码(0 表示健康,1 表示降级)。退出码比听起来更重要:你可以把它接入 CI、cron 作业,或者 Agent 会话循环的末尾,让系统自我审计,而不是依赖你记得去关心。
以下是一次降级运行的输出:
memory_check: 80/100 (DEGRADED)
[links] DEAD: [[weekly-review]] -> no such note (referenced in 01_Daily/2026-08-21.md)
[protocol] MEMORY.md line 14: entry without date prefix
exit code: 1
八十分听起来不错,直到你意识到每一项扣分都是 Agent 会记错或遗漏的一个事实。
如果你把知识库放进 git(应该这么做),这就会变成一个 pre-commit 钩子:
ln -s ../../tools/memory_guard.py .git/hooks/pre-commit
从此以后,任何删除 MEMORY.md 大量内容的提交都会被拒绝:
memory_guard: REFUSED
MEMORY.md: 31 of 44 lines deleted (70%)
Mass deletion of the memory file looks like an accident.
If it really is intentional, split it into smaller commits
with an explicit reason in the message.
这个守卫不会让删除变得不可能——它让删除变成有意的。合法的重构仍然可以工作;只是你再也不会因为一条手滑命令丢失六周的 Agent 记忆了。
你可以用,而且对于某些工作负载来说确实应该。但大多数 Agent 的持久记忆需求比行业宣称的要小:几十条持久事实,不是数百万条。在这个规模上,纯文本 Markdown 胜出,因为:
这个知识库是免费的,采用 CC BY 4.0 许可证(可以商用,只需署名),大约十分钟就能搭建起来:下载、用 Obsidian 打开、让 Agent 指向 CLAUDE.md。
Download Verified Memory Vault v0.9 (ZIP) Source and updates: github.com/secondbrainstarter/verified-memory-vault
如果你想要一个用于自己笔记而非 Agent 记忆的入门系统,配套项目 Second Brain Starter 使用相同的理念——三个文件夹、不需要插件动物园、十分钟内可工作。
有问题、反馈或想法?写邮件到 geld.hamster@gmx.net——每封邮件都会被阅读。