Skip to content

LLM Wiki:把读过的文档编译成自维护的知识库

攒了半年的论文、公众号文章和会议记录,想让模型帮忙回答一个跨越多份材料的综合问题——常见做法是把文件传进对话框,模型现场检索片段、现场拼装;下次换个问题,一切从头再来,没有任何东西沉淀下来。LLM Wiki 把顺序反过来:LLM 读完一份新文档后,立即把理解写进一个由 Markdown 页面组成的维基——更新实体页、修订主题综述、标记与旧结论的冲突。之后提问时,模型站在一份已经组织好、互相链接的知识上回答,而且这份知识随每次导入持续变厚。

这套做法来自 Andrej Karpathy 公开的 llm-wiki 模式文档:原始版本是一页写给 Agent 看的设计稿,靠复制粘贴驱动。nashsu/llm_wiki 将这套模式实现为一款跨平台桌面应用(Tauri v2 加 React),补上了摄取队列、知识图谱、向量检索、浏览器剪藏和本地 API。理解成本因此从"每次提问"前移到了"导入文档"的那一刻;代价是每份文档都要消耗一次真实的 LLM 调用。值不值这个前移,读完下文可以自己判断。

GitHub 仓库信息

信息内容
项目标题LLM Wiki
项目描述一款跨平台桌面应用:LLM 阅读你的文档,增量构建并持续维护一个有组织、互相链接的持久知识库,免去每次提问都从头检索拼装。
GitHub 仓库nashsu/llm_wiki
官网地址未知(已检索但未找到可靠官网)
主要开发语言TypeScript 70.68%、Rust 25.56%、JavaScript 3.32%(GitHub Languages,2026-09-20)
开源许可证GPL-3.0(GitHub metadata 因自定义版权头显示 NOASSERTION)
最近代码更新2026-08-25(GitHub pushed_at,核对日期:2026-09-20)

LLM Wiki 改变了哪一步

一座 LLM Wiki 知识库就是磁盘上的一个普通目录,分三层:raw/sources/ 存放你导入的原始文档,LLM 只读不改,是可核对的事实底座;wiki/ 完全归 LLM 所有,实体页、概念页、来源摘要、综述全部由 LLM 生成和维护;schema.mdpurpose.md 提供规则与方向——前者定义页面类型和结构约定,后者记录这份知识库为何存在、关心哪些问题;仓库文档说明 LLM 在每次摄取和提问时都会读取 purpose.md,提问的上下文里还会带上 index.md 作为导航。日常操作围绕三个动作展开:Ingest(消化新来源)、Query(基于 wiki 提问)、Lint(体检链接与页面健康)。

对普通用户,这层设计换来两个具体好处。生成的 wiki 目录本身就是一个 Obsidian 库(应用会自动写入 .obsidian/ 配置),你可以随时用 Obsidian 打开,逐页核查 LLM 写了什么——不必信任黑盒,链接、frontmatter、原文引用都在眼前。同时每份生成页都带 sources: [] 字段回指原始文件,答案能一层层追到你亲手导入的那份 PDF。

摄取:分析与生成分成两轮

导入文档是价值发生的现场。LLM Wiki 把一次摄取拆成两个连续的 LLM 调用:第一轮只做分析,抽取来源里的关键实体、概念、与已有 wiki 的关联和矛盾;第二轮拿着这份分析结果去生成和更新页面。仓库文档称这一步拆分显著改善了生成质量——先想清楚再动笔,避免模型一边读一边写时的顾此失彼。

Mermaid 流程图
查看源码
flowchart LR
    A[raw/sources 原始文档] --> B{SHA256 与上次相同?}
    B -->|是| C[跳过 不消耗 token]
    B -->|否| D[第 1 轮 LLM 分析<br/>实体 概念 关联 矛盾]
    D --> E[第 2 轮 LLM 生成<br/>实体页 概念页 来源摘要]
    E --> F[更新 index.md log.md overview.md]
    E --> G[Review 项 留给人判断]

围绕这条主线,队列和缓存替用户兜底:摄取按 SHA256 哈希跳过内容未变的文件;任务串行处理并持久化到磁盘,应用崩溃或重启后队列可恢复,失败任务自动重试至多三次,活动面板实时显示进度并可取消。

格式覆盖按材料类型分档(README 格式表):PDF、DOCX、PPTX、XLSX、EPUB/MOBI、Org mode、网页剪藏和批量 URL 做结构化提取,转成 Markdown 后进摄取管线,复杂排版的 PDF 可选接 MinerU(云端 API 或本机部署)做深度解析,失败时回退内置解析器;图片支持原生预览,PDF 内嵌图还能提取出来、由视觉模型生成事实性说明并参与搜索;音视频则在应用内直接播放。递归导入文件夹时保留目录结构,并把路径作为分类线索交给 LLM;raw/sources/ 还可以开启外部目录监听,你在应用外增删改文件,队列同步跟进。

知识图谱替你把窟窿找出来

wikilink 交叉引用只是起点,LLM Wiki 在链接之上建了一个相关度模型,图谱用四种信号给页面两两打分:

信号权重含义
直接链接×3.0页面之间有 [[wikilink]]
来源重叠×4.0两页的 sources[] 引用了同一份原始文档
Adamic-Adar×1.5两页共享的邻居页,其连接数参与加权计算
类型亲和×1.0同类型页面(实体对实体、概念对概念)加分

权重最高的信号是"来源重叠"——两个页面出自同一份原始材料,在相关度里比一条直接链接更有分量。图谱进一步用 Louvain 算法自动聚出知识社区并给每个社区算内聚分,然后基于结构给出两类可操作的洞察:跨社区、跨类型的"惊人连接",以及孤立页、稀疏社区这类"知识缺口"。缺口卡片可以直接一键发起 Deep Research:LLM 结合 overview.mdpurpose.md 拟定研究主题和检索词,经确认对话框(主题与检索词可编辑)后,通过 Tavily、SerpApi 或自建的 SearXNG 做多查询网络搜索,把综合结果写回 wiki 并再次摄取。发现缺口、发起研究、结果回流成新知识,这个闭环是纯聊天式文档问答给不了的。

提问:检索管线与模型路由

一次提问的检索分多阶段:先做分词搜索(中文按双字切分,标题命中加分,同时搜 wiki 和原始来源),再可选地叠加向量语义检索,然后用图谱把排名靠前的页面按相关度扩展出关联页,最后在预算控制下组装上下文——窗口从 4K 到 1M 可调,wiki 页、历史、索引、系统提示按比例分配。答案要求按编号引用具体页面,回答质量因此可抽查。向量检索默认关闭,开启后嵌入走任意 OpenAI 兼容的 /v1/embeddings 端点、存进内嵌的 LanceDB;仓库文档给出的一项基准是召回率从 58.2% 提到 71.4%,这属于来源声明,实际收益取决于语料和问题类型。

模型配置按项目走:OpenAI、Anthropic、Google、Ollama 和自定义端点五种 provider,Chat 与 Ingest 可以路由到不同模型——仓库文档只声明了这条独立路由,"便宜模型摄取、强模型回答"的成本搭配需要自己实测。聊天运行时位于 Rust 后端的 Agent 里,可调用 wiki/来源/图谱/网页检索等工具,生成的文件落在 agent-workspace/ 供预览;外部 shell 命令需要显式批准。应用还兼容 SKILL.md 格式的 Agent Skills,可在对话里用 /skill 选择启用。

适合谁,不适合谁

持续为某个主题积累材料、又希望沉淀物是自己磁盘上可读可查的 Markdown 的人,最能吃到这套设计的红利:研究者管理文献、读书人建伴读 wiki、个人成长记录者整理日记与笔记,仓库的场景模板(Research、Reading、Personal Growth、Business、General)就是按这些人群预配置的。

不适合的情况同样清楚。LLM Wiki 定位个人桌面工具,没有账号体系和多人协作;Issue 区有人提议增加 Server 模式做团队知识库(#194,该请求已关闭),如果你需要的是团队协作的 RAGFlow 类产品,这个仓库不是目标。成本上,每份文档都要真金白银的 token:一个 咨询 50 万–80 万量级飞书文档性能的开放 Issue 也提醒超大语料需要先小规模评估。对隐私敏感的用户反而多一层选择——接 Ollama 本地模型即可全程离线推理,代价是效果受本机硬件限制。

最短有效体验

以下流程来自仓库文档(README 的 Installation 与 Quick Start 章节),本次写作没有把这份流程在机器上装出来跑过。目标是完成一次能体现核心价值的操作:导入几份同主题文档,看着 wiki 长出来,再提一个跨文档问题。

前置条件:一台 macOS、Windows 或 Linux 桌面机;一个可用的 LLM API key(OpenAI、Anthropic、Google 任一兼容端点,或本机 Ollama)。

  1. Releases 下载安装包。核对日期内最新为 v0.6.11(2026-08-25),macOS 分 Apple Silicon 与 Intel 两种 .dmg,Windows 为 .msi,Linux 提供 .deb.AppImage
  2. 启动后新建项目,选一个场景模板。
  3. 进入 Settings 配置 LLM provider 与模型,Chat 与 Ingest 可分别选择。
  4. 进入 Sources,导入 3–5 份同主题文档(PDF、DOCX 或 Markdown 均可)。
  5. 观察 Activity Panel:文件逐个进入两步摄取,生成实体页与概念页,overview.md 随进度更新。
  6. 在 Chat 里问一个需要综合多份材料的问题,检查回答引用的页面编号。

可观察的成功信号:图谱视图里能看到新节点和连线;Review 面板出现需要你判断的条目。常见卡点在 Issue 区都有真实案例,处置办法以各 Issue 的讨论结论为准:接入 OpenAI、Kimi、MiniMax 等端点时全部报 analysis failed(#46,已关闭);macOS 从 Dock 启动应用时 Claude Code CLI provider 提示 claude not found,而同一个命令在终端里可用(#86,已关闭);把 Ollama 配成局域网地址后应用侧连接失败(#79,已关闭)。

浏览器剪藏与 Agent 接入

Chrome 扩展(extension/ 目录,Manifest V3)负责网页进库:开发模式加载解压扩展后,一键把当前页面经 Readability 抽取正文、Turndown 转成 Markdown,投递给本机应用并自动触发摄取,快捷键是 Alt+Shift+L(macOS 为 Command+Shift+L)。

对 Claude Code、Codex 这类编程 Agent,仓库提供了两条标准接口。应用内置 127.0.0.1:19828 的本地 HTTP API(Settings → API + MCP 中启用并生成 token),暴露混合检索、文件读取、图谱遍历、Review 管理、来源重扫等端点;mcp-server/ 是把同一 API 面包装成的 MCP 服务器,构建后在设置页可复制本机路径的客户端配置。MCP 工具继承本地安全模型:默认只连回环地址(可用 LLM_WIKI_API_BASE_URL 覆盖)、文件读取走应用的路径白名单、令牌用环境变量传递而不写进命令行参数(mcp-server/README.md)。官方另备一个现成的 Agent Skill,一条命令装入 Claude Code / Codex:

bash
npx skills add https://github.com/nashsu/llm_wiki_skill.git --skill llm-wiki

该 Skill 默认只读、引用 wiki 页面路径,且只在明确点名 LLM Wiki 时触发。

从源码构建与运行

想改界面或跟进未发布功能时,按 README 的构建说明准备 Node.js 20+、Rust 1.88+ 和 protoc(macOS brew install protobuf,Linux sudo apt install protobuf-compiler,Windows choco install protoc),然后:

bash
git clone https://github.com/nashsu/llm_wiki.git
cd llm_wiki
npm install
npm --prefix mcp-server ci && npm run mcp:build   # mcp-server/dist 会打进 Tauri 资源
npm run tauri dev      # 开发运行
npm run tauri build    # 产出安装包

仓库自带 macOS/Windows/Linux 的 CI 构建工作流,个人试用建议直接用 Release 安装包,把源码方式留给定制需求。

数据、迁移与清理

一座知识库的磁盘结构决定了数据归属(README 项目结构):

text
my-wiki/
├── purpose.md              # 目标、关键问题、研究范围
├── schema.md               # 页面类型与结构规则
├── raw/sources/            # 原始文档(不可变)
├── raw/assets/             # 本地图片资源
├── wiki/                   # LLM 生成层:index、log、overview、
│                           #   entities、concepts、sources、queries…
├── agent-workspace/        # Agent 生成文件的位置(未列于 README 结构图)
├── .obsidian/              # 自动生成的 Obsidian 配置
└── .llm-wiki/              # 会话历史、Review 条目等应用状态

删除一份来源会级联清理:对应的摘要页移除,被多来源共享的实体页只从 sources[] 里摘掉这一项,index.md 与失效 wikilink 同步更新。项目整体支持 ZIP 导出/导入,跨设备迁移后可从现有页面确定性地重建索引。全部内容是明文 Markdown,备份就是复制目录。需要留意的是 GPL-3.0 许可证:自用与分享文档没有障碍,但分发修改版应用要遵守 copyleft 义务。

限制与下一步

这套架构的软肋与优点同源。wiki 是 LLM 写的,就会错——Review 系统、引用编号和 Obsidian 兼容都是在给错误兜底,但核查责任仍在使用者;摄取质量与模型能力强相关,弱模型加超大语料的组合成本可观。桌面形态决定了没有服务端权限模型,本地 HTTP API 虽然只绑回环地址,同机进程仍可访问,开启"无 token 本地访问"前要想清楚这一点。

下一步最有信息量的动作,是拿自己真实的 5–10 份文档跑一遍上面的最短体验,再故意问一个跨两份材料、答案互相矛盾的问题,观察 Review 与图谱如何呈现冲突——这比任何评测数字都更能说明 LLM Wiki 适不适合你的知识库。

参考资料

全部公开文章由同一个站点构建和发布。