OpenKB 开放知识库
把散落文档编译成互相链接的持久化 Wiki,让知识随摄入累积而非每次查询重新推导。
- Star 数
- ★ 4.9k
- 最近更新
- 3 个月前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 69/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · OpenAI API · Claude APIChatGPT(部分支持)
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 研究者在读十几篇论文时,用 openkb add 逐篇摄入,让 LLM 自动维护概念页与实体页,避免每问一次都重新检索原文。
- 不适合
- 希望人工审核或保留手改内容的团队:recompile 会覆盖手动编辑
- 需要处理非 PDF 长文档或超大规模集合的用户:路线图尚未完成
- 源码审查
- 69/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
OpenKB 是 VectifyAI 推出的命令行开源系统,用 LLM 把原始文档编译成结构化、互相链接的 Wiki 式知识库,底层检索由 PageIndex 的无向量、基于推理的树索引提供。它分为两层:负责编译与维护的 Wiki 基础层(openkb init/add/list/status/watch/lint/remove/recompile)和把 Wiki 转化为产出的生成器层(query、chat、visualize、skill new、deck new)。短文档经 markitdown 转成 Markdown 后由 LLM 通读,20 页以上的长 PDF 交由 PageIndex 构建分层树索引,LLM 改为读树,同时原生处理图、表、图片。输出是纯 .md 文件组成的 wiki/ 目录,可直接用 Obsidian 打开查看图谱,也可通过内置的 FastAPI 服务与 Knowledge Workbench 网页界面浏览、上传和流式问答。
openkb init 生成 .openkb/config.yaml 与 wiki 骨架;openkb add 接受文件、目录或 URL,短文档走 markitdown 转 Markdown、长 PDF 走 PageIndex 建树,随后 LLM 依次生成摘要页、读取已有概念页与实体页、做跨文档综合并更新概念与实体、最后更新索引与日志。openkb query 给出带引用的答案并可 --save 落到 wiki/explorations/;openkb chat 提供多轮会话,支持 --resume/--list/--delete 管理会话,会话内可用 /add、/skill、/deck、/lint、/save 等斜杠命令。openkb skill new 从 Wiki 蒸馏出可被 Claude Code、Codex、Gemini CLI 安装的 agent skill,配套 validate/eval/history/rollback;openkb visualize 输出自包含的 3D/思维导图/放射状知识图谱 HTML;openkb deck new 生成单文件 HTML 幻灯片,--critique 走质量评审。模型通过 LiteLLM 调用,provider/model 格式写在 config.yaml,密钥放 .env 的 LLM_API_KEY。
- 研究者在读十几篇论文时,用 openkb add 逐篇摄入,让 LLM 自动维护概念页与实体页,避免每问一次都重新检索原文。
- 需要长期跟踪某个领域的分析师,把 openkb watch 挂在 raw/ 目录上,新下载的 PDF 落盘即自动编译进 Wiki。
- 希望在 Obsidian 里已有知识体系的人,直接把生成的 wiki/ 当 vault 打开,用 [[wikilinks]] 与图谱视图浏览概念连接。
- 要把团队知识分发给其他 Agent 的工程师,用 openkb skill new 产出一个可安装到 Claude Code、Codex 或 Gemini CLI 的只读 skill。
- 面向扫描版或超大 PDF 的场景,配置 PAGEINDEX_API_KEY 走 PageIndex Cloud 获得 OCR 与更快的结构生成。
- 需要在自己的应用里查询知识库的开发者,安装 openkb[web] 后启动 openkb-web,通过 FastAPI 服务与 /docs 交互式文档接入。
如何安装或部署这个 Agent?
需要 Python 环境与 pip。基础安装:pip install openkb;也可用 pip install git+https://github.com/VectifyAI/OpenKB.git 装 GitHub 最新版,或 git clone 后 pip install -e . 做可编辑安装。网页界面与 REST API 需额外 extras:pip install "openkb[web]"。模型密钥写在项目目录的 .env 文件里,形如 LLM_API_KEY=your_llm_api_key;使用 chatgpt/*、github_copilot/* 这类 OAuth 设备流订阅制提供方时无需 API key。若要启用 PageIndex Cloud(扫描件 OCR、更快结构生成),在同一 .env 中再加 PAGEINDEX_API_KEY。
如何使用这个 Agent?
mkdir my-kb && cd my-kb 建目录,运行 openkb init 初始化(此时选模型,如 anthropic/claude-sonnet-4-6 或 gpt-5.4)。随后 openkb add paper.pdf、openkb add ~/papers/ 或 openkb add https://arxiv.org/pdf/2509.11420 摄入内容。提问用 openkb query "What are the main findings?",连续交互用 openkb chat(会话内 /help 看全部斜杠命令)。产出侧可运行 openkb skill new my-expert "Reason like an expert on <your-topic>"、openkb visualize、openkb deck new my-deck "An intro deck on <your-topic>"。网页版:pip install "openkb[web]" 后执行 openkb-web,浏览器打开 http://127.0.0.1:7566/ 进入 Knowledge Workbench;默认本地无鉴权,对外开放前应设置 OPENKB_API_TOKEN。前端二次开发可 cd frontend && npm install && npm run dev。
这个 Agent 有哪些优点和局限?
- 知识以 wiki/ 目录下的纯 Markdown 与 [[wikilinks]] 落地,天然兼容 Obsidian,图谱可视化与文本编辑器都能直接打开,不存在厂商私有格式锁定。
- 长文档走 PageIndex 的分层树索引而非向量库,README 明确宣称不需要 Vector DB,检索是让 LLM 在索引上推理,扫描件还可选 PageIndex Cloud 的 OCR 补足。
- 模型层经 LiteLLM 抽象,README 列出 OpenAI、Claude、Gemini 以及 chatgpt/*、github_copilot/* 等 OAuth 订阅制提供方,切换成本主要体现在改 config.yaml 的 provider/model 字段。
- 生成器与基础层分离,同一份 Wiki 可产出带引用的答案、多轮会话、可视化图谱、可分发 skill 和 HTML 幻灯片,知识只编译一次可反复复用。
- 核心流程强依赖 LLM 调用,摄入、查询、技能蒸馏都要消耗模型额度,文档没有给出成本估算或离线兜底方案。
- 长 PDF 的准确检索依赖 PageIndex,openkb query 的引用质量与建树质量强绑定,扫描件在本地开源版下还需另配云端能力。
- 知识编译时 LLM 会改写概念页,recompile 会覆盖手工编辑,README 用 --dry-run 提示了这一风险,但缺少版本化或人工审核环节。
- wiki/AGENTS.md 是 LLM 维护 Wiki 的指令手册,修改结构约定需要理解该文件,存在一定上手门槛。
- 项目路线图中非 PDF 格式的长文档、嵌套目录、层次化概念索引、数据库存储均未完成,大规模集合场景仍需等待。
这个 Agent 与同类方案有什么区别?
:Karpathy 的手工工作流:短文档由 LLM 直读,长文档遇上下文限制与 context rot,输入靠网页剪藏生成 .md,实体抽取靠手工;OpenKB 用 markitdown 做格式统一的短文档入口,用 PageIndex 树索引处理长文档,输入覆盖 PDF、Word、PPT、Excel、HTML、文本、CSV、Markdown 与 URL,实体(人物、组织、地点、产品)自动抽取并保持同步,输出除 Wiki 外还含 Skill Factory 与 agent CLI 集成。
传统 RAG:README 指出传统 RAG 每次查询都从零重新发现知识、不累积;OpenKB 一次性编译成持久 Wiki,交叉引用预先存在,矛盾会被标记。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| OpenKB 开放知识库 当前 | 69 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 4.9k | 3 个月前 | Python | Codex · Claude Code · OpenAI API · Claude API |
| DeepTutor 终身个性化辅导系统 | 68 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 57k | 1 天前 | Python | Codex · Claude Code · OpenAI API · Claude API |
| SwarmVault | 75 · 表现良好 | 命令行工具免费 + 模型费 | ★ 733 | 4 个月前 | TypeScript | Codex · Claude Code |
| LLM Wiki | 74 · 存在缺口 | Agent 插件 / 技能免费 + 模型费 | ★ 1.5k | 14 天前 | Python | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
SKILL 明确将 wiki 内容视为不可信数据,限制读取路径并避免擅自执行写入命令;工具测试还展示了路径逃逸拒绝。CLI 通过环境变量读取密钥,README 说明 API 默认无认证、需设置令牌后再对外暴露。用户确认和写操作边界有说明,但编译、删除和 Web 上传等影响范围较大,所给材料未完整展示各操作的确认机制,因此未给满分。
配置与依赖版本有明确约束,CI 配置覆盖 lint、类型检查、测试及前端构建;材料也列出写入锁、暂存发布和回滚相关机制。README、配置及代码对配置文件路径描述存在差异(README 为 .openkb/config.yaml,测试夹具使用旧式 .openkb/config.yaml,代码片段称配置层级化),材料不足以完整核对;错误提示示例有限,故扣分。
README 覆盖文档整理、长文检索、问答、聊天、技能和演示稿等具体场景,并说明格式、提供商和本地/云 PageIndex 选择。技能明确适用内容与排除项,且可在多种代理 CLI 使用;但具体环境限制和能力边界分散在指南中,未见全面兼容矩阵。
README 以安装、快速开始、架构、命令、配置及集成组织内容,提供多个示例目录和配置参考;Apache-2.0 有许可证文件,项目版本由 VCS 标签生成,CI 与发布流程也有说明。路线图列出尚未完成事项;但样本未给出完整变更日志或清晰的维护责任承诺,仓库与人员信息不能单独证明实际责任安排。
产品将资料编译成可链接、可持续更新的 Markdown 知识库,并提供带引用查询、聊天、图谱、技能和演示稿等可直接使用的输出,目标价值清楚。依赖 LLM,可能涉及 API 成本;生成内容需要人工判断,材料未提供典型运行成本或质量基准,因此成本收益评估不完整。
README 的命令和架构主张有 CLI、依赖配置、技能说明及测试样例部分对应;测试文件提供可读的行为断言,但本评审不据此宣称已执行。样本中存在设计文档式说明与实现片段的交叉佐证,也有只由 README 宣称的能力;叙述通常可区分功能说明与路线图,但缺少完整覆盖使分数保守。
- API 默认关闭认证;对外开放前应配置 OPENKB_API_TOKEN。
- 处理敏感文档前,确认所选 LLM 提供商的数据处理方式;材料显示内容会交给 LLM 编译或查询,但未详述保留政策。
- README 描述 recompile 会覆盖手工编辑,remove 会清理相关页面;执行前使用 dry-run 并备份重要资料。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Hotfix to avoid openai InputTokensDetails breaking change. What's Changed fix(deps): pin openai==2.44.0 to avoid InputTokensDetails breaking change by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/191 Full Changelog: https://github.com/VectifyAI/OpenKB/compare/v0.4.4...v0.4.5在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix(converter): move keep_data_uris to convert call and fix lint by @RussellLuo in https://github.com/VectifyAI/OpenKB/pull/165 * feat(mutation): route serial add mutations through coordinator by @gwokhou in https://github.com/VectifyAI/OpenKB/pull/156 * fix(agent): make parallel_tool_calls configurable to fix Amazon Bedrock query/chat (#175) by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/177 * feat: upgrade pageindex sdk and compile concurrency configurable by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/174 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix(lint): don't hide same-stem orphans behind qualified links by @jichaowang02-lang in https://github.com/VectifyAI/OpenKB/pull/147 * fix(compiler): strip cache_control for non-Anthropic providers by @Aldominguez12 in https://github.com/VectifyAI/OpenKB/pull/154 * feat: add serial crash-safe mutation recovery by @gwokhou in https://github.com/VectifyAI/OpenKB/pull/142 * perf(mutation): don't snapshot the whole blob store on every add by @KylinMountain in https://github.com/VectifyAI/OpenKB/pull/155 …在 GitHub 查看 ↗
常见问题
它必须用向量数据库吗?
可以接哪些模型,需要什么凭证?
我手改过 Wiki 页面,重新编译会不会被覆盖?
长 PDF 处理不好怎么办?
生成的 skill 和网址界面能给别人用吗?
谢谢反馈,我们会据此改进页面。