LLM维基

R
ryan j
April 14, 2026

使用大型语言模型(LLMs)构建个人知识库的模式。

这是一个想法文件,设计用于复制粘贴到您自己选择的LLM代理(例如OpenAI Codex、Claude Code、OpenCode / Pi等)。它的目标是传达高层次的想法,但您的代理将与您合作构建具体细节。

核心理念

大多数人使用LLMs和文档的经验看起来像RAG:您上传一组文件,LLM在查询时检索相关的片段并生成答案。这是可行的,但LLM在每个问题上都是从头重新发现知识。没有积累。问一个微妙的问题,需要综合五个文档,LLM每次都必须找到并拼凑相关片段。没有任何积累。NotebookLM、ChatGPT文件上传和大多数RAG系统都是这样工作的。

这里的想法不同。LLM不是仅仅在查询时从原始文档中检索,而是逐步建立并维护一个持久的维基——一个结构化、相互关联的markdown文件集合,坐落于您和原始来源之间。当您添加一个新源时,LLM不仅仅是为了以后检索而对其进行索引。它会阅读、提取关键信息,并将其整合到现有的维基中——更新实体页面,修订主题摘要,标记新数据与旧声明的矛盾,加强或挑战不断发展的综合体。知识只需编译一次,然后保持最新,而不是在每次查询时重新推导。

这是关键的区别:维基是一个持久的、复合的文物。交叉引用已经存在。矛盾已经被标记。综合已经反映出您所阅读的一切。随着您添加每个来源和提出每个问题,维基不断丰富。

您从来不(或很少)自己编写维基——LLM负责编写和维护所有内容。您负责源头、探索和提出正确的问题。LLM承担所有繁重的工作——总结、交叉引用、归档和记账,使知识库在时间的推移中真正有用。实际上,我一侧打开LLM代理,另一侧打开Obsidian。LLM根据我们的对话进行编辑,我实时浏览结果——跟踪链接,检查图形视图,阅读更新的页面。Obsidian是IDE,LLM是程序员,维基是代码库。

这可以应用于许多不同的上下文。以下是一些例子:

  • 个人:跟踪自己的目标、健康、心理、自我提升——归档日记条目、文章、播客笔记,随着时间的推移构建一个结构化的自我图景。
  • 研究:深入探讨一个主题数周或数月——阅读论文、文章、报告,并逐步构建一个全面的维基和不断发展的论点。
  • 阅读一本书:在阅读时归档每一章,为角色、主题、情节线程及其连接构建页面。到最后,您会有一个丰富的伴随维基。可以想象粉丝维基,比如Tolkien Gateway——数千个相互关联的页面涵盖了角色、地点、事件、语言,由志愿者社区多年建立。您可以在阅读时个人构建类似的东西,让LLM进行所有交叉引用和维护。
  • 商业/团队:由LLM维护的内部维基,通过Slack线程、会议记录、项目文档、客户通话进行更新。可能有人在这个过程中审核更新。维基保持最新,因为LLM进行团队中无人愿意做的维护工作。
  • 竞争分析、尽职调查、旅行计划、课程笔记、爱好深度研究——任何您希望随着时间积累知识并希望其有条理而不是零散的事情。

架构

有三个层次:

原始来源——您策划的源文件集合。文章、论文、图像、数据文件。这些是不可变的——LLM从中读取但不修改。这是您的真实来源。

维基——LLM生成的markdown文件目录。摘要、实体页面、概念页面、比较、概述、综合。LLM完全拥有这一层。它创建页面,在新来源到达时更新它们,维护交叉引用,并保持所有内容一致。您阅读它;LLM编写它。

模式——一个文档(例如CLAUDE.md用于Claude Code或AGENTS.md用于Codex),告诉LLM维基的结构、约定以及在摄取来源、回答问题或维护维基时遵循的工作流程。这是关键的配置文件——它使LLM成为一个有纪律的维基维护者,而不是一个通用的聊天机器人。您和LLM随着时间的推移共同演变,以便搞清楚什么适合您的领域。

操作

摄取。您将一个新来源放入原始集合中,并告诉LLM处理它。一个示范流程:LLM读取源,和您讨论关键要点,在维基中撰写摘要页面,更新索引,更新维基中相关的实体和概念页面,并向日志添加一条条目。一个单一的源可能会影响10-15个维基页面。就个人而言,我更喜欢逐一摄取来源并保持参与——我阅读摘要,检查更新,并指导LLM强调重点。但您也可以在较少监督的情况下批量摄取多个来源。您可以自己开发适合您风格的工作流程并在模式文档中加以记录,以便未来的会话使用。

查询。您对维基提出问题。LLM搜索相关页面,读取它们,并综合出一个带有引用的答案。答案可以根据问题采取不同的形式——一个markdown页面、一个比较表、一个幻灯片(Marp)、一个图表(matplotlib)、一个画布。重要的洞见是:好的答案可以作为新页面归档回维基。您要求的比较、分析、您发现的连接——这些都是有价值的,不能在聊天记录中消失。这样,您的探索在知识库中增加,就像摄取的来源一样。

检查。定期请LLM对维基进行健康检查。查看:页面之间的矛盾、被新来源取代的过时声明、没有入站链接的孤立页面、提到的重要概念但没有自己页面、缺失的交叉引用、可以通过网络搜索填补的数据缺口。LLM擅长建议调查的新问题和寻找的新来源。这在维基增长时保持了健康。

索引和日志

两个特殊文件帮助LLM(和您)在维基增长时导航。它们服务于不同的目的:

index.md是内容导向的。它是维基中所有内容的目录——每个页面列有链接、一行摘要,和可选的元数据,如日期或来源数量。按类别组织(实体、概念、来源等)。LLM在每次摄取时更新它。在回答查询时,LLM首先读取索引以查找相关页面,然后深入研究。这在中等规模下效果相当不错(约100个来源,数百个页面),并避免了嵌入基础的RAG基础设施的需求。

log.md是按时间顺序的。它是一个以附加方式记录发生过什么和何时发生的——摄取、查询、检查的日志。一个有用的小贴士:如果每个条目以一致的前缀开头(例如## [2026-04-02] 摄取 | 文章标题),日志就可以用简单的unix工具解析——grep "^## \[" log.md | tail -5给您最后5条条目。日志提供了维基发展的时间线,并帮助LLM理解最近发生了什么。

可选:CLI工具

在某个时刻,您可能希望构建一些小工具,以帮助LLM更高效地操作维基。维基页面的搜索引擎是最明显的一个——在小规模下,索引文件就足够,但随着维基的增长,您希望有适当的搜索。qmd是一个不错的选择:这是一个针对markdown文件的本地搜索引擎,带有混合BM25/向量搜索和LLM重新排序,所有操作均在设备上。它有CLI(因此LLM可以调用它)和MCP服务器(因此LLM可以将其用作本地工具)。您还可以自己构建一些简单的东西——LLM可以帮助您在需要时快速编写一个简单的搜索脚本。

小贴士和技巧

  • Obsidian Web Clipper是一个浏览器扩展,可以将网页文章转换为markdown。非常有用,可以快速将来源放入您的原始集合中。
  • 本地下载图像。在Obsidian设置→文件和链接中,将“附件文件夹路径”设置为一个固定目录(例如raw/assets/)。然后在设置→热键中,搜索“下载”以找到“为当前文件下载附件”,并绑定到一个热键(例如Ctrl+Shift+D)。剪辑文章后,按下热键,所有图像将下载到本地磁盘。这是可选的,但有用——它允许LLM直接查看和引用图像,而不是依赖可能失效的URL。请注意,LLMs不能在一次操作中直接读取具有内联图像的markdown——解决方法是让LLM首先读取文本,然后单独查看一些或所有引用的图像以获得更多背景。这有点笨拙,但效果足够好。
  • Obsidian的图形视图是查看维基结构的最佳方式——什么与什么相连,哪些页面是中心,哪些是孤立的。
  • Marp是一个基于markdown的幻灯片格式。Obsidian有一个插件可以使用。可用于直接从维基内容生成演示文稿。
  • Dataview是一个Obsidian插件,可以对页面前置数据运行查询。如果您的LLM向维基页面添加YAML前置数据(标签、日期、来源数量),Dataview可以生成动态表和列表。
  • 维基不过是markdown文件的git仓库。您可以免费获得版本历史、分支和协作。

为什么这样有效

维护知识库的乏味部分不是阅读或思考——而是记账。更新交叉引用、保持摘要最新、标记新数据与旧声明之间的矛盾、在数十个页面之间保持一致。人们放弃维基是因为维护负担的增加速度超过了其价值。LLMs不会感到无聊,不会忘记更新交叉引用,还可以一次处理15个文件。维基保持维护,因为维护成本几乎为零。

人类的工作是策划来源、指导分析、提出好问题,以及思考这一切的意义。LLM的工作是其他所有事情。

这个想法在精神上与Vannevar Bush的Memex(1945)相关——一个个人、策划的知识存储,文档之间具有关联路径。布什的愿景比网络变成的东西更接近这一点:私人的、主动策划的,文档之间的连接与文档本身一样有价值。唯一无法解决的部分是由谁来维护。LLM处理这个问题。

备注

本文档故意抽象。它描述了思想,而不是具体实现。确切的目录结构、模式约定、页面格式、工具——所有这些都将取决于您的领域、您的偏好和您选择的LLM。上述提到的一切都是可选的和模块化的——挑选有用的,忽略无用的。例如:您的来源可能是纯文本的,因此您根本不需要图像处理。您的维基可能足够小,以至于索引文件就是您所需的一切,不需要搜索引擎。您可能不关心幻灯片,仅希望有markdown页面。您可能希望具有完全不同的输出格式。使用它的正确方式是与您的LLM代理共享并共同努力实例化一个适合您需求的版本。该文档的唯一任务是传达模式。您的LLM可以自行解决其余问题。

来源: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f