乐于分享
好东西不私藏

OpenKB:把文档编译成会自我生长的知识维基

OpenKB:把文档编译成会自我生长的知识维基

OpenKB:把文档编译成会自我生长的知识维基

2026 年 4 月,开源项目 OpenKB(Open LLM Knowledge Base)正式发布。它把 Andrej Karpathy 提出的一个概念变成了开箱即用的工具:让 LLM 自动把原始文档编译成带摘要、概念页、实体页和交叉引用的 wiki 知识库,并且持续维护、自动更新——知识像复利一样随时间累积,而不是每次提问都从头推导。

OpenKB 由 VectifyAI(PageIndex 团队)开发,Apache 2.0 开源,目前已在 GitHub 上获得超过 3400 颗星。项目地址:https://github.com/VectifyAI/OpenKB

为什么不是传统 RAG?

传统 RAG 每次查询都要"从零发现"知识:切片、向量化、检索、拼装上下文——每次提问都重来一遍,什么都不会积累下来。

OpenKB 的思路完全不同:它把知识一次性编译成持久的 wiki,之后持续保持更新。交叉引用早已存在,文档间的矛盾会被标记出来,综合回答反映的是所有已消费过的内容,而不是某一次检索的临时拼凑。

官方主页上的描述很直白:https://openkb.ai

核心特性一览

  • 广泛的格式支持
    :PDF、Word、Markdown、PowerPoint、HTML、Excel、CSV、纯文本、URL 等都能摄入
  • 长文档扩展
    :基于 PageIndex 树索引,长文档也能精准、无向量、上下文感知地检索
  • 原生多模态
    :不仅读文字,还理解和检索图表、表格、图片
  • 编译式 wiki
    :LLM 把文档编译成摘要页、概念页、实体页和交叉链接,并保持同步
  • Query 与 Chat
    :一次性提问或基于 wiki 的多轮对话,会话可持久化、可续接
  • Skill Factory
    :从 wiki 中蒸馏出可分发、可复用的 Agent 技能
  • OKF 就绪
    :wiki 页面遵循 Google Open Knowledge Format 规范,便于知识共享
  • Obsidian 兼容
    :wiki 就是带交叉链接的纯 Markdown 文件,可直接用 Obsidian 打开看图谱
  • 知识工作台(Web UI)
    :自带网页界面,可在浏览器中浏览知识库、上传编译文档、流式问答

架构:两层设计

OpenKB 分为两层:底层是wiki 基础层,负责编译和维护知识;上层是生成器层(query / chat / Skill Factory 等),把编译好的知识转化为有用的产出。

短文档 vs 长文档

不同长度的文档走不同的处理管线:

环节
短文档
长文档(PDF ≥ 20 页)
转换
markitdown → Markdown
PageIndex → 树索引 + 摘要
图片
内联提取(pymupdf)
由 PageIndex 提取
LLM 读取
全文
文档树
结果
摘要 + 概念
摘要 + 概念

短文档由 LLM 直接全文阅读;长 PDF 则由 PageIndex 处理成层级树索引,LLM 读树而不是读全文,从而实现长文档的准确、可扩展检索。

知识编译流程

每添加一个文档,LLM 会执行:

  1. 生成该文档的摘要页
  2. 读取已有的概念页和实体页
  3. 创建或更新概念,做跨文档综合
  4. 创建或更新实体页(人物、组织、地点、产品)
  5. 更新索引和日志

一份文档可能触及 10 到 15 个 wiki 页面。知识不断累积:每份新文档都在充实既有 wiki,而不是孤立地躺在那里。

快速上手

安装只需一条命令:

pip install openkb

基础使用流程:

# 1. 创建知识库目录并初始化
mkdir my-kb && cd my-kb
openkb init

# 2. 添加文档(文件、目录、URL 都支持)
openkb add paper.pdf
openkb add ~/papers/                          # 添加整个目录
openkb add https://arxiv.org/pdf/2509.11420   # 或从 URL 抓取

# 3. 提问
openkb query "What are the main findings?"

# 4. 或者交互式聊天
openkb chat

# (可选)把 wiki 变成其他产出
openkb skill new my-expert "Reason like an expert on <your-topic>"  # 可移植的 Agent 技能
openkb visualize                                                     # 交互式知识图谱
openkb deck new my-deck "An intro deck on <your-topic>"              # 单文件 HTML 幻灯片

LLM 配置通过 LiteLLM 支持 OpenAI、Claude、Gemini 等多家提供商,在 .openkb/config.yaml 中用 provider/model 格式指定(如 anthropic/claude-sonnet-4-6),API Key 放在 .env 文件里。订阅制且走 OAuth 设备流的提供商(如 chatgpt/*、github_copilot/*)无需 API Key。

命令全景

第一层:Wiki 基础 —— 编译与维护

命令
说明
openkb init
初始化新知识库(交互式)
openkb add <文件/目录/URL>
添加文件、目录或 URL 并编译为 wiki
openkb list
列出已索引文档和概念
openkb status
显示知识库统计
openkb watch
监听 raw/ 目录,自动编译新文件
openkb lint
运行结构性与知识健康检查
openkb remove <文档>
删除文档并清理其 wiki 页面、图片、注册表
openkb recompile [文档]
对已索引文档重跑编译管线
openkb feedback "消息"
打开预填好的 GitHub Issue 反馈问题

真实的编译产物就放在仓库的 examples 目录里:官方用一篇论文(Attention Is All You Need)跑通了全流程,生成了 1 个摘要页、3 个概念页、9 个实体页,以及一次保存下来的 query 回答。所有页面都用 [[wikilinks]] 相互缝合——这种交叉链接本身就是知识图谱。

第二层:生成器 —— 把 wiki 变成产出

生成器读取编译好的 wiki,产出可用的东西:一个答案、一段对话、一个技能目录。wiki 是底座,生成器是表面。

命令
产出
示例
openkb query "问题"
带引用的 grounded 回答,--save 可存为 wiki 页面
examples/commands/
openkb chat
基于 wiki 的多轮对话,可 --resume 续接
examples/chat/
openkb visualize
自包含交互式知识图谱(3D / 思维导图 / 放射状)
examples/visualize/
openkb skill new <名称> "<意图>"
从 wiki 蒸馏可分发的 Agent 技能
examples/skills/
openkb deck new <名称> "<意图>"
生成单文件 HTML 幻灯片
examples/slides/

Query 与 Chat:向 wiki 提问

openkb query 回答一次性问题,输出带引用;openkb chat 则是持续的交互式会话。聊天中直接输入 / 即可唤起斜杠命令:/add 可以在不离开对话的情况下补充文档,/skill new 直接把当前会话编译成技能,/save 把对话导出为 wiki 页面。

一个真实的 chat 会话长这样:

OpenKB Chat
~/research-kb · anthropic/claude-sonnet-4-6 · session 20260625-143022-a1x
Type /help for commands, Ctrl-D to exit, Ctrl-C to abort the current response.

>>> How do the two papers differ on their use of attention?
Both rely on scaled dot-product attention, but…
  · read_wiki_file(path="concepts/self-attention.md")
  · read_wiki_file(path="summaries/deepseek-r1.md")

>>> /save attention-comparison
Saved to wiki/explorations/attention-comparison-20260625.md

答案都扎根于 wiki:Agent 会读取 concepts/、summaries/、entities/ 下的页面并展示它的工具调用过程。

Skill Factory:放进一本书,出来一个数字专家

这是 OpenKB 最有想象力的功能。openkb skill new 会把 wiki 蒸馏成一个可移植的 Agent 技能(SKILL.md + references/),Claude Code、Codex、Gemini 都能原生安装加载。把一摞论文丢进去,出来的就是一个其他 Agent 可以随时调用的领域专家。

官方示例用一篇 Transformer 论文生成 transformer-attention 技能,并给出质量评估数据:

$ openkb skill eval transformer-attention --save --count 15
Eval set: 30 prompts
Trigger accuracy: 28/30 (93%) — does the description fire on the right questions?
Body coverage:    27/28 (96%) — does SKILL.md actually support what it promises?

技能还支持 validate 结构校验、history 版本历史、rollback 回滚,并自动写入 .claude-plugin/marketplace.json 供分发。

Visualize 与 Deck:让知识看得见、讲得出

openkb visualize 把 wiki 的链接图谱渲染成单文件交互式 HTML,支持 3D 星云、思维导图、放射状三种视图,点击节点可查看详情。官方示例从一篇论文生成 13 个节点、96 条边的图谱。

openkb deck new 则把 wiki 内容生成单文件 HTML 幻灯片:内置 openkb-deck-neon(暗色霓虹玻璃风)和 openkb-deck-editorial(暖色编辑风)两套主题,每套主题都声明了"幻灯片语法"约束(必须含封面和结尾、至少 4 种不同版式、同版式不连排超过 2 张),防止生成结果退化成一堵相同的版式墙。还支持 --critique 让第二遍审查器检查 CSS/UX 问题。

知识工作台(Web UI)与 REST API

OpenKB 自带一个打包好的网页界面,由 REST API 直接伺服在 / 路径:

pip install "openkb[web]"
openkb-web   # 服务 API + Workbench,地址 http://127.0.0.1:7566/

浏览器打开 http://127.0.0.1:7566/ 即可使用。默认关闭鉴权(本地优先),设置 OPENKB_API_TOKEN 环境变量即可要求 Bearer Token。底层是 FastAPI 服务,交互式 API 文档在 /docs,可导入 Postman。

生态集成

  • Obsidian
    :wiki/ 就是带 [[wikilinks]] 的 Markdown 目录,直接作为 Obsidian 仓库打开即可浏览图谱;还能用 Obsidian Web Clipper 把网页文章剪进 raw/。
  • Claude Code
    :OpenKB 自带 SKILL.md,一行命令安装:

`` /plugin marketplace add VectifyAI/OpenKB /plugin install openkb@vectify ``

  • Codex / Gemini CLI
    :分别通过软链接和 gemini skills install 安装。技能只读,不会在你没要求的情况下擅自修改知识库。

与 Karpathy 原方案的对比

维度
Karpathy 的工作流
OpenKB
短文档
LLM 直接读
markitdown → LLM 读
长文档
上下文受限、上下文腐化
PageIndex 树索引
输入来源
Web clipper → .md
PDF、Word、PPT、Excel、HTML、文本、CSV、.md、URL
wiki 编译
LLM Agent
LLM Agent(相同)
实体提取
手动
自动(人物、组织、地点、产品)
问答
在 wiki 上查询
wiki + PageIndex 检索
产出
只有 wiki
wiki + Skill Factory + Agent CLI 集成

技术栈

  • PageIndex:无向量、基于推理的文档索引与检索
  • markitdown(微软):通用文件转 Markdown
  • OpenAI Agents SDK:Agent 框架(通过 LiteLLM 支持非 OpenAI 模型)
  • LiteLLM:多提供商 LLM 网关
  • Click:CLI 框架
  • watchdog:文件系统监听

Roadmap 与展望

官方路线图显示:长文档处理将扩展到非 PDF 格式、支持大规模文档集与嵌套文件夹、面向海量知识库的层级概念索引、数据库后端存储引擎——Web UI 已经完成。整个 PageIndex 开源生态还包括 ChatIndex(长对话记忆的树索引)、ConDB(KV 缓存原生上下文数据库)和 PageIndex MCP。

对知识工作者来说,OpenKB 把"整理知识"这件苦差事交给了 LLM,让知识库像代码仓库一样可以维护、演进、分发。文档地址:https://github.com/VectifyAI/OpenKB

资料来源

https://github.com/VectifyAI/OpenKB

https://pageindex.ai/blog/introducing-openkb

https://github.com/VectifyAI/PageIndex

https://github.com/BerriAI/litellm

https://github.com/microsoft/markitdown

https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing

https://docs.pageindex.ai/open-source

#OpenKB #知识库 #RAG #LLM #开源 #AI #PageIndex #Agent

相关学习资料