实测让AI coding agent读整个1.4MB笔记库成本高昂,通过预先生成9KB的笔记地图索引,将大多数问题拦截在第一层检索,使每次查询从~35KB降至~1KB,节省约150倍上下文。
我的 Obsidian 笔记库约 1.4 MB 的 markdown 文件(包含笔记、项目和一个收件箱),我一直让编程 Agent(Claude Code / Cursor 这类)在里面工作:搜索、总结、起草。我第一个测量到的数据改变了我搭建整套系统的方式:一个读完整本笔记库的 Agent 并不是在详尽工作,它只是在被淹没。
每个打开的文件都要消耗 context。读取足够多的文件后,真正的问题就埋在了那些根本无关的文件底下。三个简单的修复方案,每个都在我的实际环境里测量过:
一个小脚本遍历笔记库,每条笔记输出一行:标题、主题、大小、最近修改时间。这张索引图 ~9 KB,却代表了 ~1.4 MB 的内容——回答"这里有什么、在哪里"这个问题的效果相同,但 context 消耗减少约 150 倍。它是生成的,不需要人工维护:我在大量编辑后会重新运行脚本,因为一张过时的地图比没有更糟——它会自信地断言那些已经不再为真的事情。
在我的环境里,每个问题的测量成本:
对索引做 keyword 查找:~0.5 KB
返回摘录并附带 file → section 路径的排名片段搜索:~1 KB
获取目标文件的提纲:~1.1 KB
完整读取该文件:~35 KB
大多数问题死在第二个台阶上,永远不用付那 35 KB 的代价。具体的工具不重要,重要的是"把所有文件都读一遍"对大多数问题来说是最昂贵的答案。
读取是免费的;写入是有门槛的。在笔记库根目录放一个简洁的 AGENTS.md,写明:索引是前门,Agent 可以读取任何内容,未经询问不得写入——文件夹所有权要明确(我的笔记 vs. 它可以使用的暂存区)。这一条才是阻止助手在你睡梦中悄悄重组你知识库的关卡。
第一部分一个下午的 Python 就能搞定(遍历文件夹、提取首标题 + 摘要 + 大小 + 修改日期,每条笔记一行)。第二部分做好才是麻烦的那个——按词项稀有度排名并返回 section 路径,需要真正迭代才能不再返回垃圾结果。第三部分就只是一个文本文件。
我最终把这一切打包成了一款产品——笔记库启动包(notes/people/projects/inbox,带示例笔记讲解每个文件夹的用法)、两个工具、规则文件、一个 10 分钟教程和一本关于这个方法的小电子书,包含一个"不要做什么"章节——作为一款 US$15 一次买断的模板。产品链接在下方。上述三个想法完全可以用你自己的脚本实现——建好你自己的索引就完成了 90%。
Second Brain Starter — US$15 one-time
很高兴回答关于测量方法的问题,或者这个方案在哪些场景下会失效。
本文首次发布于 Oroboro Labs——本篇为规范版本;原文包含完整的方法笔记。