今天凌晨,安德烈·卡帕西(Tesla Autopilot、OpenAI早期核心)分享了他把Obsidian作为前端IDE,结合LLM实现几乎全自动的个人知识库构建与维护,整个流程基于本地Markdown文件(纯文本、可移植、无锁仓)。 以下是翻译原文
LLM 知识库
最近我发现一个非常好用的方法:用 LLM 为各种感兴趣的研究课题搭建个人知识库。因此,我近期的大量 token 消耗已经不再主要用于操作代码,而是更多地用于操作知识(以 Markdown 和图片形式存储)。最新一代 LLM 在这方面表现相当出色。具体如下:
数据摄入: 我先将源文档(文章、论文、代码仓库、数据集、图片等)索引到一个 raw/ 目录中,然后用 LLM 增量式地"编译"出一个 wiki——本质上就是按目录结构组织的一组 .md 文件。这个 wiki 包含 raw/ 中所有数据的摘要、反向链接,并将数据归类为不同概念,为每个概念撰写文章,再将它们全部互相链接。要把网页文章转成 .md 文件,我喜欢用 Obsidian Web Clipper 扩展,同时我还设了一个快捷键,把所有相关图片下载到本地,方便 LLM 直接引用。
IDE: 我用 Obsidian 作为"前端 IDE",在里面查看原始数据、编译好的 wiki,以及衍生的可视化内容。需要强调的是,wiki 的所有数据都由 LLM 编写和维护,我几乎不直接动手修改。我还试了一些 Obsidian 插件,用不同方式渲染和查看数据(例如用 Marp 做幻灯片)。
问答: 真正有意思的地方在于——当你的 wiki 积累到一定规模(比如我某个研究方向的 wiki 大约有 100 篇文章、40 万字),你就可以针对这个 wiki 向 LLM 智能体提出各种复杂问题,它会自行去查阅、研究并给出答案。我原以为必须用上花哨的 RAG 方案,但 LLM 在自动维护索引文件和所有文档的简要摘要方面做得相当不错,在这个相对小的规模下,它能比较轻松地读取所有重要的相关数据。
输出: 比起在文本/终端里看答案,我更喜欢让 LLM 为我渲染成 Markdown 文件、幻灯片(Marp 格式)或 matplotlib 图表,然后在 Obsidian 里查看。根据不同的查询需求,你可以想象出许多其他可视化输出格式。很多时候,我会把这些输出"归档"回 wiki 中,为后续查询增强知识库。所以我自己的探索和提问总是在知识库中不断"累积沉淀"。
质量检查(Linting): 我会对 wiki 运行一些 LLM"健康检查",比如查找数据不一致的地方、通过网络搜索补全缺失数据、发现有趣的关联以作为新文章的候选等,从而逐步清理 wiki 并提升整体数据完整性。LLM 非常擅长建议你进一步探索和研究的问题。
额外工具: 我发现自己在不断开发新的数据处理工具。比如我 vibe code 了一个简单粗暴的 wiki 搜索引擎,我自己会直接用(通过 Web UI),但更常见的做法是通过 CLI 把它作为工具交给 LLM,用于处理更大的查询。
进一步探索: 随着仓库不断增长,自然会想到合成数据生成 + 微调,让 LLM 把这些知识"内化"到模型权重中,而不仅仅依赖上下文窗口。
总结: 从若干来源收集原始数据,由 LLM 编译成 .md wiki,再由 LLM 通过各种 CLI 工具进行问答并增量增强 wiki,所有内容都可在 Obsidian 中查看。你几乎不需要手动编写或编辑 wiki,那是 LLM 的领域。我认为这里有巨大的空间做出一款出色的新产品,而不只是一堆拼凑的脚本。