给 AI 一本变更日志:我写了一个 Obsidian 插件
现在使用 AI Agent 管理 Obsidian 仓库已经司空见惯了。剪藏归档、整理临时文件、索引的维护,以及各种各样的文档类的管理,我都已经交由给 Agent 打理了。不管是 Claude 还是 kimi 还是 Codex,他们进到我的仓库目录,就能知道我的管理规范等各种要求,非常的方便。
但有个问题比较麻烦:AI 不知道我改了什么。
比如我昨天把一篇笔记补充一些内容,今天让它"把那篇笔记整理一下",它会拿着三天前的认知去改我刚写好的内容。它会用着旧的错误的认知去更改掉我刚刚写入的内容,它甚至不知道我什么时候改的。
为什么现有的办法都怪怪的
最笨的办法是每次开工前让它全库扫描。几千篇笔记,扫一次几分钟还消耗了一堆 token,而且它扫完也分不清哪些是我最近改的。
尝试使用过git。仓库确实有 obsidian-git 在自动备份,但 Vault Backup: 2026-07-27... 这种信息,对于 AI 来说太冗杂了,它只需要知道最新的变更就行。
社区插件也找过一圈。结果基本都是记录下 AI 修改了哪些笔记,而这些变更内容是给人看的。我想要的是,人在 AI 不知道的时候修改了自己的知识库,再让 AI 进行管理的时候,AI 能够知道,在它上一次变更前,我作为这个仓库的实际管理者,又实际上修改了什么内容。似乎当下并没有这样的插件。
那只能自己写一个了。
插件做了什么
一句话:给 vault 装了个行车记录仪。
每次增删改、重命名,插件都记成一行 JSON:哪个文件、什么操作、增删了几行。存在一个 changelog.jsonl 里。另外维护一个游标文件,每个 AI 各记各的"读到哪了"。
AI 开工前读一次日志,取游标之后的事件,几秒钟就知道我这段时间动了哪些文件、动了多少。该打开哪篇深读它自己判断。
几个我觉得还算关键的设计:
文件即接口。日志就是 vault 里的普通文件,任何 AI 只要有文件读写能力就能用,不用 MCP、不用 API。
平台同步比对。启动时跟上次快照进行比对,不论是手机上的修改,还是 iCloud 同步,都能进行补充,重命名也能靠内容哈希认出来。
合并同文件改动。编辑过程中同一个文件可能存了十几次,对于 AI 来说,我修改了多少次根本不重要,重要的是,它上一次读到跟它即将要读到的差异是什么,历史上的修改是不需要的。因此,读取时合并成一条"累计改了 +N/-M 行"。
AI 怎么发现它?插件启用时会自动把一段读取协议写进 vault 根目录的 AGENTS.md 和 CLAUDE.md——这是当下各个 coding agent 约定俗成都会读的文件。装完插件,零配置,AI 下次进来自己就知道去读了。
开发过程
插件基本是 AI 开发流程的又一次实操:我负责定方向和验收,AI 写码。
值得记的是审查环节抓出来的东西。三轮子代理审查加一轮终审,最有价值的发现是一个我自己绝对会漏的坑:iCloud 可能把存序号的文件同步回旧版本,导致事件编号被复用,AI 会静默漏掉变更。修法是一行取 max,但想不到就是想不到。
所以这套"AI 写码 + 多轮独立审查"的组合,像比如人自己去开发,效率上真的提效很多,而且想得更加全面。AI 不只是快,它真的会在你自以为想清楚了的地方挑出毛病。
现状
插件叫 Vault Change Feed,可以在社区插件市场中搜到。
链接:
- 社区市场:https://community.obsidian.md/plugins/vault-change-feed
- GitHub:https://github.com/kains2866/vault-change-feed
觉得有用欢迎 star,也可以请我喝杯咖啡(笑)。如果你也在用 AI 管知识库,希望你能用用这个插件,方便你跟 AI 共同的更好的管理知识库。