Skip to content

2811jh/kb-wiki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kb-wiki

npm version license node skills

LLM 自动维护的持久化研究知识库 skill —— 你只负责提供资料和提问,LLM 负责构建整个知识库。


快速安装

方式一:通过 Skills CLI 安装(推荐)

npx skills add 2811jh/kb-wiki

方式二:手动安装(如果 Skills CLI 不可用)

git clone https://github.com/2811jh/kb-wiki.git ~/.agents/skills/kb-wiki

安装完成后,在对话中输入以下命令初始化知识库:

/setup

核心理念:llm-wiki 三层架构

kb-wiki 基于 llm-wiki 理念构建,将知识库分为三层:

your-wiki/
├── Schema.md          ← Schema 层:告诉 LLM 如何工作(可自定义演进)
├── raw/               ← 原始资料层:只读,LLM 从这里读取来源
│   ├── articles/      ← 文章、访谈记录
│   ├── papers/        ← 学术论文
│   ├── assets/        ← 图片等媒体文件
│   └── data/          ← 数据文件
└── wiki/              ← Wiki 层(LLM 完全掌控)
    ├── entities/
    ├── concepts/
    ├── sources/
    ├── synthesis/
    ├── .cache/        ← 文件转换缓存(自动管理)
    ├── index.md
    └── log.md

类比:Obsidian = IDE,LLM = 程序员,Wiki = 代码库。你打开 Obsidian 实时浏览,LLM 在后台编辑维护。


功能一览

命令 功能 说明
/setup 初始化知识库 创建目录结构、配置 qmd、生成 Schema.md
/ingest <文件或内容> 导入新资料 自动更新 10-15 个 wiki 页面
/query <问题> 查询知识库 混合搜索 + 综合答案 + 可选归档
/lint 健康检查 检测矛盾、孤立页面、缺失引用等 7 项
/status 查看状态 显示知识库统计和 qmd 索引状态

工作流示意图

┌─────────────────────────────────────────────────────────────────────┐
│                        kb-wiki 工作流全景                            │
└─────────────────────────────────────────────────────────────────────┘

  首次使用                    日常使用(循环)
  ───────                    ──────────────

  ┌──────────┐         ┌──────────────────────────────────────────┐
  │  /setup   │         │                                          │
  │  初始化   │         │   ① 用户放入资料         ② 用户提问      │
  │  知识库   │         │      ↓                      ↓           │
  └────┬─────┘         │  ┌────────┐            ┌─────────┐      │
       │               │  │/ingest │            │ /query  │      │
       ▼               │  │导入资料│            │查询知识 │      │
  创建目录结构          │  └───┬────┘            └────┬────┘      │
  编译 qmd             │      │                      │           │
  生成 Schema.md       │      ▼                      ▼           │
  下载 AI 模型         │  ┌─────────────┐    ┌──────────────┐    │
       │               │  │ LLM 自动执行 │    │ qmd 混合搜索  │    │
       ▼               │  │             │    │ BM25 + 向量   │    │
  ✅ 知识库就绪         │  │ · 创建摘要页 │    │ + LLM 重排序  │    │
                       │  │ · 更新实体页 │    └──────┬───────┘    │
                       │  │ · 更新概念页 │           │           │
                       │  │ · 标注矛盾   │           ▼           │
                       │  │ · 强化交叉引用│    ┌──────────────┐    │
                       │  │ · 修订综合结论│    │ LLM 综合答案  │    │
                       │  │ · 更新索引   │    │(带引用+置信度)│    │
                       │  └───┬─────────┘    └──────┬───────┘    │
                       │      │                      │           │
                       │      ▼                      ▼           │
                       │   wiki/ 持续增长      可选归档到         │
                       │   知识复利 📈         synthesis/        │
                       │                                          │
                       └──────────────────────────────────────────┘
                                      │
                              每 5 次 ingest
                                      │
                                      ▼
                               ┌────────────┐
                               │   /lint     │
                               │  健康检查   │
                               │             │
                               │ · 矛盾检测  │
                               │ · 孤立页面  │
                               │ · 缺失引用  │
                               │ · 数据空白  │
                               └────────────┘
用户做的事(很少)              LLM 做的事(很多)
─────────────                 ────────────────
📁 把资料放进 raw/             📝 读取 → 理解 → 写 10-15 个 wiki 页面
❓ 问问题                      🔍 搜索 → 综合 → 生成带引用的答案
👀 在 Obsidian 中浏览          🔧 维护交叉引用、标注矛盾、修订结论
                              📊 定期健康检查 → 发现知识空白

首次使用:/setup 流程

运行 /setup 后,LLM 将引导你完成:

  1. ✅ 检测 Node.js(需 ≥ 22)+ Python(需 ≥ 3.10,可选)
  2. 🔧 编译 qmd 搜索引擎(从内嵌源码自动编译,无需手动安装)
  3. 🌐 配置 HuggingFace 镜像(中国大陆用户自动设置)
  4. 📝 输入知识库名称(如:ux-research
  5. 📂 选择知识库位置(默认桌面,或自定义路径)
  6. 🏗️ 自动创建完整目录结构 + 生成 Schema.md
  7. 🔗 配置 qmd 搜索集合
  8. 📥 预下载 AI 搜索模型(向量语义搜索 + LLM 重排序,约 1.3GB,可选)
  9. 📦 安装文件转换依赖(支持 Excel/Word/PPT/PDF,可选)
  10. 🎉 输出欢迎信息和使用指南

核心工作流示例

导入资料(Ingest)

# 将文章放入 raw/articles/,然后告诉 LLM:
/ingest raw/articles/user-interview-2024-03.md

# LLM 会自动:
# ✓ 读取并理解资料
# ✓ 在 wiki/sources/ 创建摘要页面
# ✓ 更新 wiki/entities/ 中相关用户页面
# ✓ 更新 wiki/concepts/ 中相关概念页面
# ✓ 检查并标注与现有内容的矛盾
# ✓ 强化或修订 wiki/synthesis/ 中的综合结论
# ✓ 更新 wiki/index.md
# ✓ 在 wiki/log.md 追加记录
# ✓ 运行 qmd update 重建索引

查询知识库(Query)

/query 我们的用户在支付流程中最大的痛点是什么?

# LLM 会:
# ✓ 用 qmd 搜索相关页面
# ✓ 综合多个来源给出答案(带引用)
# ✓ 询问是否将洞察归档到 synthesis/

健康检查(Lint)

/lint

# LLM 输出报告,包含:
# ✓ 矛盾论断(如:A 说用户不在意价格,B 说价格是首要因素)
# ✓ 孤立页面(没有入站链接的页面)
# ✓ 缺失交叉引用
# ✓ 过时论断
# ✓ 数据空白建议
# ✓ 推荐探索方向

💡 每导入 5 份资料后,LLM 会自动提醒你运行 /lint


支持的文件格式

格式 扩展名 处理方式 依赖
Markdown .md, .txt 直接读取
CSV .csv 直接读取
Excel .xlsx, .xls 自动转换为 Markdown Python + openpyxl
Word .docx 自动转换为 Markdown Python + python-docx
PowerPoint .pptx 自动转换为 Markdown Python + python-pptx
PDF .pdf 自动转换为 Markdown Python + PyMuPDF
图片 .png, .jpg, .gif, .webp LLM 视觉能力直接查看

📦 转换工具的 Python 依赖在 /setup 阶段自动安装。不需要转换的用户可以跳过。 转换脚本位于 scripts/convert/,每种格式独立一个脚本,方便维护。


推荐工具链

工具 用途 安装
Obsidian 实时浏览 wiki,图谱视图可视化页面关联结构 obsidian.md
Obsidian Web Clipper 浏览器文章一键转 Markdown Chrome / Firefox
qmd 本地 Markdown 搜索引擎(BM25 + 向量),完整源码内嵌在 scripts/qmd/ /setup 时自动编译
Marp 将 wiki 页面转为幻灯片 Obsidian 插件:Marp Slides
Dataview Obsidian 中查询 wiki 数据 Obsidian 插件:Dataview
git 知识库版本控制 git-scm.com,然后 git init 在知识库根目录

Obsidian 配置建议

附件文件夹设置

在 Obsidian 中打开 设置 → 文件与链接,将"附件文件夹路径"设为 raw/assets。这样所有通过 Web Clipper 剪藏或粘贴保存的图片会自动存入 raw/assets/ 目录。

本地下载图片

设置 → 快捷键 中,搜索 "Download",找到 "Download attachments for current file",绑定快捷键(推荐 Ctrl+Shift+D)。剪藏文章后按快捷键,所有远程图片会下载到本地 raw/assets/ 目录,避免 URL 失效。

关于 LLM 与图片

LLM 无法在一次操作中读取含有内联图片的 Markdown 文件。解决方法:让 LLM 先读取文本内容,然后单独查看部分或全部引用的图片以获取额外上下文。虽然略显笨拙,但效果足够好。

图谱视图

打开 Obsidian 的 图谱视图(Graph View),可以可视化浏览 wiki 中所有页面之间的链接关系——哪些页面是枢纽节点、哪些页面相互关联、哪些页面是孤立的。这是观察知识库形状最直观的方式。


与传统 RAG 的区别

传统 RAG kb-wiki
知识形式 原始文档向量索引 LLM 提炼的结构化 Wiki
矛盾处理 原样返回冲突内容 标注并综合矛盾
知识增长 线性堆积 复利式增长(交叉引用强化)
可读性 机器友好 人类可直接阅读
维护者 人类 LLM
查询质量 依赖相似度 依赖语义理解 + 知识综合
输入格式 纯文本/PDF Markdown, Excel, Word, PPT, PDF, 图片

为什么有效

维护知识库最繁琐的部分不是阅读和思考——而是簿记工作:更新交叉引用、保持摘要最新、标注新数据与旧结论的矛盾、在数十个页面间维护一致性。

人类会放弃 wiki,因为维护负担的增长速度快于知识价值的增长速度。

LLM 改变了这个等式:

  • 🤖 不会厌倦:更新第 100 个交叉引用和第 1 个一样准确
  • 🤖 不会遗忘:不会忘记更新某个角落里的引用
  • 🤖 一次触及 15 个文件:单次 ingest 自动更新 10-15 个 wiki 页面

Wiki 之所以能持续保持维护状态,是因为维护成本趋近于零。

分工

  • 🧑 人类的工作:策划来源、引导分析方向、提出正确的问题、思考信息的意义
  • 🤖 LLM 的工作:其他一切

进阶用法

git 版本控制

cd ~/Desktop/ux-research  # 你的知识库根目录
git init
echo "raw/assets/*.mp4" >> .gitignore  # 忽略大文件
git add .
git commit -m "feat: 初始化知识库"

qmd MCP 模式(给 Claude Desktop)

在 Claude Desktop 配置文件中添加:

{
  "mcpServers": {
    "kb-wiki": {
      "command": "qmd",
      "args": ["mcp"],
      "env": {}
    }
  }
}

多人协作

# 共享知识库(推荐方案)
# 1. 将知识库推送到私有 git 仓库
# 2. 团队成员 clone 后各自配置 qmd 集合
# 3. 通过 PR/merge 合并各自的 ingest 内容

许可证

MIT © 2811jh

About

基于 llm-wiki 理念的 LLM 驱动知识库 AI Skill - 让 LLM 自动维护持久化研究知识库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors