给 AI 一本变更日志:我写了一个 Obsidian 插件
AI agents that manage my Obsidian vault kept editing my notes with stale knowledge because nothing told them what I changed since their last visit. Full rescans are too slow, git backups too noisy, and no community plugin recorded human changes for AI to read — so I wrote one: Vault Change Feed, which logs every edit as a JSONL line plus a per-agent cursor. The log is a plain file any agent can read, renames are matched by content hash, and the plugin writes its own read-protocol into AGENTS.md/CLAUDE.md on install; it's available on the community plugin market.
现在使用 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 只要有文件读写能力就行。
平台同步比对。启动时跟上次快照进行比对,不论是手机上的修改,还是 iCloud 同步,都能进行补充,重命名也能靠内容哈希认出来。
合并同文件改动。编辑过程中同一个文件可能存了十几次,对于 AI 来说,我修改了多少次根本不重要,重要的是,它上一次读到跟它即将要读到的差异是什么,历史上的修改是不需要的。因此,读取时合并成一条"累计改了 +N/-M 行"。
AI 怎么发现它?插件启用时会自动把一段读取协议写进 vault 根目录的 AGENTS.md 和 CLAUDE.md——这是当下各个 coding agent 约定俗成都会读的文件。装完插件,零配置,AI 下次进来自己就知道去读了。
开发过程
插件是 AI 开发流程的一次实操,我负责提供方向、规约、需求说明以及实际验收测试。AI 在此期间负责代码编写以及测试内容。它经过我多轮的子代理跟代码审查,发现了 iCloud 可能会因为同步不及时,将旧文件重新进行同步的情况。解决方式是取 max,保存最新的内容就行。 AI 开发真的是太快了,我只需要说明我的需求,它就吭哧吭哧开始写,比我自己先写可行性、连通性的测试,捣鼓半天要方便多了。它能不能做?能否写出快速原型,一个上午就行了。
现状
插件叫 Vault Change Feed,可以在社区插件市场下载。
链接: