2026年4月22日 2 分钟阅读

让 LLM 帮你”记账”:LLM Wiki 桌面应用上手指南

tinyash 0 条评论

Andrej Karpathy 去年写过一篇 gist,叫 LLM Wiki。核心思路很简单,让 LLM 持续构建并维护一个结构化的 Markdown Wiki,你只负责找资料和提问。

理念是好理念,但落地有个问题。原版是个抽象的方法论文档,你得自己配 Claude Code,自己建目录结构,自己维护一切。

最近我看到一个项目,叫 llm_wiki,是 nashsu 把 Karpathy 的理念做成了一个完整的桌面应用。

跨平台的,macOS、Windows、Linux 都能用。Tauri 写的。

我试用了一下,有点意思。


它跟传统 RAG 有什么不一样

先聊聊传统做法。

你用个 RAG 系统,把文档丢进向量数据库,每次查询的时候检索相关片段。这方式有个问题,每次查询都是从头开始,知识没有积累。

LLM Wiki 不一样。

它让 LLM 持续构建并维护一个结构化的 Markdown Wiki。每次导入新资料,LLM 会创建摘要页、更新实体页和概念页、建立双向链接、更新索引。

知识是复利的。

导入第一篇文章,可能创建 5-8 个文件。导入第十篇的时候,LLM 会更新已有页面,标注跨资料关联,指出不同资料的矛盾观点。

这就像滚雪球。越往后,知识库的价值越大。

Karpathy 原版打了个比方,挺形象的。

Obsidian 是 IDE,LLM 是程序员,Wiki 是代码库。

nashsu 这个版本,把这套方法论做成了开箱即用的桌面应用。


目录结构

LLM Wiki 的目录结构很清晰。

项目根目录/
  raw/                  # 原始资料(LLM 只读)
    assets/             # 图片、附件
    文章标题.md          # 剪藏的文章
  wiki/                 # LLM 维护的知识库
    index.md            # 内容索引目录
    log.md              # 操作日志
    purpose.md          # 知识库的目标和方向(这个版本新增)
    schema.md           # 规则和配置
    source-xxx.md       # 资料摘要页
    实体名.md            # 实体页(工具、产品、人物)
    概念名.md            # 概念页(方法论、模式)
    overview.md         # 全局摘要(每次导入自动更新)

这个版本加了个 purpose.md,挺聪明的设计。

原版只有 schema(知识库怎么运作),没有地方放 why(知识库为什么存在)。purpose.md 就是放目标、关键问题、研究范围、evolving thesis 的地方。

LLM 每次导入和查询都会读这个文件,保持方向感。

页面类型有讲究。

资料摘要页叫 source-{关键词}.md,比如 source-claude-code-n8n-workflow.md

实体页直接用名字,比如 claude-code.mdn8n.md

概念页也是直接用名字,比如 two-layer-automation.md

每个页面都有 frontmatter,记录标签、来源、作者、日期这些信息。


核心功能

1. 两步链式思考导入

原版是一次性导入,LLM 边读边写。这个版本分成了两步,质量明显更高。

第一步(分析):LLM 读资料 → 结构化分析
  - 关键实体、概念、论点
  - 与已有知识库的连接
  - 与已有知识的矛盾和张力
  - 对知识库结构的建议

第二步(生成):LLM 拿分析结果 → 生成 Wiki 页面
  - 带 frontmatter 的摘要页
  - 实体页、概念页带交叉引用
  - 更新 index.md、log.md、overview.md
  - 需要人工审查的项目
  - Deep Research 搜索查询

还有一些增强。

SHA256 增量缓存,文件内容哈希后,不变的自动跳过,省 token 省时间。

持久化导入队列,串行处理,崩溃能恢复,失败自动重试最多 3 次。

文件夹导入,递归导入保持目录结构,文件夹路径作为 LLM 分类上下文(比如 “papers > energy” 帮助分类)。

源追溯,每个生成的 Wiki 页面都有 sources: [] 字段,链接回贡献的原始文件。

2. 知识图谱 + 相关性模型

原版只提到了 [[wikilinks]] 交叉引用,没有图谱分析。这个版本做了完整的知识图谱可视化和相关性引擎。

四信号相关性模型:

信号权重描述
直接链接×3.0通过 [[wikilinks]] 链接的页面
源重叠×4.0共享同一原始来源的页面(通过 frontmatter sources[]
Adamic-Adar×1.5共享共同邻居的页面(按邻居度数加权)
类型亲和×1.0同类型页面加分(实体↔实体,概念↔概念)

图谱可视化用 sigma.js + graphology + ForceAtlas2。

节点颜色按页面类型或社区,大小按链接数缩放。边厚度和颜色按相关性权重(绿色=强,灰色=弱)。悬停交互,邻居保持可见,非邻居变暗,边高亮显示相关性分数。

3. Louvain 社区检测

这个原版没有。用 Louvain 算法 自动发现知识聚类。

自动聚类,根据链接拓扑发现哪些页面自然分组,不依赖预定义的页面类型。

类型/社区切换,可以在按页面类型着色和按发现的知识聚类着色之间切换。

凝聚力评分,每个社区按内部边密度评分(实际边数/可能边数),低凝聚力聚类(< 0.15)标记警告。

4. Graph Insights — 意外连接和知识缺口

系统自动分析图谱结构,展示可操作的洞察。

意外连接:

  • 检测意外关系,跨社区边、跨类型链接、外围↔枢纽耦合
  • 综合意外分数排名最值得注意的连接
  • 可标记为已审查,不再出现

知识缺口:

  • 孤立页面(度数≤1)— 与知识库其他部分连接很少或没有的页面
  • 稀疏社区(凝聚力< 0.15,≥3 页面)— 内部交叉引用弱的知识领域
  • 桥接节点(连接 3+ 聚类)— 连接多个知识领域的关键枢纽页面

交互式:

  • 点击任何洞察卡片,在图谱中高亮对应节点和边
  • 知识缺口和桥接节点有 Deep Research 按钮 — 触发 LLM 优化的研究

5. Deep Research

当 LLM 发现知识缺口时。

用 Tavily API 做 web 搜索,找到相关来源并提取完整内容。

每个主题多个搜索查询,LLM 在导入时生成,针对搜索引擎优化。

LLM 优化的研究主题,从 Graph Insights 触发时,LLM 读 overview.md + purpose.md 生成领域特定主题和查询。

用户确认对话框,研究主题和搜索查询在开始前显示供审查。

LLM 综合发现到 Wiki 研究页面,带与现有 Wiki 的交叉引用。

自动导入,研究结果自动处理提取实体/概念到 Wiki。

6. Chrome Web Clipper

原版提到用 Obsidian Web Clipper。这个版本做了专用的 Chrome 扩展(Manifest V3)。

Mozilla Readability.js 准确提取文章(去掉广告、导航、侧边栏)。

Turndown.js HTML → Markdown 转换,支持表格。

项目选择器,选择剪藏到哪个 Wiki(支持多项目)。

本地 HTTP API(端口 19827),扩展↔应用通信。

自动导入,剪藏内容自动触发两步导入流程。

7. 多格式文档支持

原版专注文本/Markdown。这个版本支持结构化提取,保持文档语义。

格式方法
PDFpdf-extract (Rust) 带文件缓存
DOCXdocx-rs — 标题、粗体/斜体、列表、表格 → 结构化 Markdown
PPTXZIP + XML — 逐页提取带标题/列表结构
XLSX/XLS/ODScalamine — 正确单元格类型、多工作表支持、Markdown 表格
图片原生预览(png, jpg, gif, webp, svg 等)
视频/音频内置播放器
网页剪藏Readability.js + Turndown.js → 干净 Markdown

8. 向量搜索(可选)

这个版本支持可选的向量语义搜索。

通过任何 OpenAI 兼容的 /v1/embeddings 端点嵌入。

LanceDB(Rust 后端)存储,快速 ANN 检索。

余弦相似度找到语义相关页面,即使没有关键词重叠。

结果合并到搜索,提升现有匹配 + 添加新发现。

基准测试,启用向量搜索后整体召回率从 58.2% 提升到 71.4%。


安装

这个版本是桌面应用,不是 Claude Code skill。

系统要求:

  • macOS(ARM + Intel)、Windows、Linux
  • Tauri v2 构建的本地桌面应用

安装方式:

GitHub Releases 下载对应平台的安装包。

  • macOS:.dmg(ARM 和 Intel)
  • Windows:.msi
  • Linux:.deb / .AppImage

或者从源码构建。

git clone https://github.com/nashsu/llm_wiki.git
cd llm_wiki
# 安装 Tauri 依赖,然后构建

初始化:

启动应用,选择或创建项目目录。

应用会自动创建目录结构,包括 raw/wiki/.llm-wiki/ 等。

场景模板可选,Research、Reading、Personal Growth、Business、General,每个预配置了 purpose.mdschema.md

配置 LLM:

设置里配置 LLM 提供商、API key、模型、上下文窗口大小(4K 到 1M tokens)、语言。

支持多提供商 LLM。


界面布局

三栏布局。

左侧:知识树 / 文件树,图标侧边栏切换 Wiki、Sources、Search、Graph、Lint、Review、Deep Research、Settings。

中间:聊天窗口,多对话支持,可创建、重命名、删除对话。

右侧:预览面板,可拖拽调整左右面板大小。

活动面板:实时处理状态,显示逐个文件导入进度。

思考/推理显示:对于输出 <think> 块的 LLM(DeepSeek、QwQ 等),滚动 5 行显示,生成时透明度渐变,完成后默认折叠,点击展开。

KaTeX 数学渲染:全文档支持 LaTeX 数学公式,行内 $...$ 和块级 $$...$$

引用参考面板:每个回复可折叠部分显示使用了哪些 Wiki 页面,按类型分组带图标。


其他特性

多对话支持 — 创建、重命名、删除对话,每个对话独立持久化到 .llm-wiki/chats/{id}.json

可配置上下文窗口 — 滑块从 4K 到 1M tokens,60/20/5/15 分配给 Wiki 页面/聊天历史/index/系统提示。

审查系统 — LLM 在导入时标记需要人工判断的项目,预定义操作类型(创建页面、Deep Research、跳过),LLM 预生成优化的 web 搜索查询。

智能级联删除 — 删除源文件时移除 Wiki 摘要页,相关 Wiki 页面只移除被删除的源,不删除整个页面,index.md 清理,死链 [[wikilinks]] 清理。

国际化 — 英文 + 中文界面。

Obsidian 兼容 — Wiki 目录可直接作为 Obsidian vault 使用,自动生成 .obsidian/ 目录带推荐设置。

跨平台路径处理 — 统一 normalizePath(),反斜杠→正斜杠,Unicode 安全字符串处理。


核心理念

这个项目的 README 里有段话,我觉得说到了点子上。

维护知识库的繁重工作不是阅读和思考,而是记账——更新交叉引用、保持摘要最新、标注矛盾、维护一致性。人类因维护负担增长快于价值而放弃 Wiki。LLM 不会厌倦,不会忘记更新引用,一次操作可以触及 15 个文件。维护成本趋近于零,Wiki 就能持续运转。

人类的工作,是策划资料来源、引导分析方向、提出好问题、思考意义。

LLM 的工作,是总结、交叉引用、归档、记账——其余一切。

这分工挺合理的。

我们以前做不成个人 Wiki,不是不懂方法,不是没有工具,是维护成本太高了。你记十篇笔记还行,记一百篇的时候,光维护链接和更新摘要就能把你累死。

LLM 不觉得累。它一次操作可以触及 15 个文件,更新所有交叉引用,标注所有矛盾,保持所有摘要最新。

维护成本趋近于零,这件事就能持续运转了。

Karpathy 的原版是抽象的方法论,nashsu 这个版本把它做成了开箱即用的工具。


怎么开始

项目地址在这里。

GitHub:https://github.com/nashsu/llm_wiki

注意是下划线,不是横杠。

下载安装包,安装,启动。

配置 LLM 提供商和 API key,选择或创建项目目录,就可以开始了。

导入第一份资料,开始提问,查看知识图谱。

就这么简单。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。