<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>OpenKB on KnightLi的博客</title>
        <link>https://www.knightli.com/tags/openkb/</link>
        <description>Recent content in OpenKB on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 17 May 2026 17:15:08 +0800</lastBuildDate><atom:link href="https://www.knightli.com/tags/openkb/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>OpenKB：把文档编译成可持续更新的 LLM 知识库</title>
        <link>https://www.knightli.com/2026/05/17/openkb-llm-knowledge-base/</link>
        <pubDate>Sun, 17 May 2026 17:15:08 +0800</pubDate>
        
        <guid>https://www.knightli.com/2026/05/17/openkb-llm-knowledge-base/</guid>
        <description>&lt;p&gt;OpenKB 是 VectifyAI 开源的 LLM 知识库工具。&lt;/p&gt;
&lt;p&gt;它不是传统意义上“把文档切块、向量化、查询时再拼上下文”的 RAG 系统，而是把原始文档先编译成一个结构化 wiki：有文档摘要、有概念页、有交叉引用，也有后续查询和 lint 检查。换句话说，它更像是一个会持续整理资料的知识库 CLI。&lt;/p&gt;
&lt;p&gt;项目地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/VectifyAI/OpenKB&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;先说结论&#34;&gt;先说结论
&lt;/h2&gt;&lt;p&gt;OpenKB 值得关注的地方有三点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;它把知识库输出成普通 Markdown 文件，而不是锁在某个专用数据库里。&lt;/li&gt;
&lt;li&gt;它用 PageIndex 处理长 PDF，主打无向量数据库的长文档检索。&lt;/li&gt;
&lt;li&gt;它强调“知识编译”，让 LLM 生成摘要、概念页和交叉链接，而不是每次提问都从零检索。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这让 OpenKB 更适合长期积累资料的场景，比如论文阅读、项目文档、公司内部资料、技术规范、产品调研和个人知识库。&lt;/p&gt;
&lt;p&gt;它也不是万能替代品。如果你需要高并发线上问答、复杂权限管理、Web 管理后台、企业级审计和大规模多租户能力，OpenKB 现在更像一个开发者工具和知识库原型，而不是完整企业知识平台。&lt;/p&gt;
&lt;h2 id=&#34;openkb-是什么&#34;&gt;OpenKB 是什么
&lt;/h2&gt;&lt;p&gt;OpenKB 的全名是 Open Knowledge Base。&lt;/p&gt;
&lt;p&gt;它以 CLI 形式工作，把放进知识库的原始文档转换、整理、总结，并生成一套 wiki 文件。官方 README 里的描述很直接：OpenKB 会用 LLM 把原始文档编译成结构化、互相链接的 wiki 风格知识库，并通过 PageIndex 支持无向量数据库的长文档检索。&lt;/p&gt;
&lt;p&gt;支持的输入格式包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PDF&lt;/li&gt;
&lt;li&gt;Word&lt;/li&gt;
&lt;li&gt;Markdown&lt;/li&gt;
&lt;li&gt;PowerPoint&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;Excel&lt;/li&gt;
&lt;li&gt;纯文本&lt;/li&gt;
&lt;li&gt;其他可由 markitdown 转换的格式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;生成后的知识库位于 &lt;code&gt;wiki/&lt;/code&gt; 目录，主要包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.md&lt;/code&gt;：知识库总览&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log.md&lt;/code&gt;：操作时间线&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;：知识库结构和维护说明&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sources/&lt;/code&gt;：转换后的原文&lt;/li&gt;
&lt;li&gt;&lt;code&gt;summaries/&lt;/code&gt;：每份文档的摘要&lt;/li&gt;
&lt;li&gt;&lt;code&gt;concepts/&lt;/code&gt;：跨文档概念页&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explorations/&lt;/code&gt;：保存的查询结果&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reports/&lt;/code&gt;：lint 检查报告&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个设计最大的好处是透明。你可以直接打开 Markdown 文件查看知识库，而不是只能通过一个黑盒检索接口拿答案。&lt;/p&gt;
&lt;h2 id=&#34;它和传统-rag-有什么不同&#34;&gt;它和传统 RAG 有什么不同
&lt;/h2&gt;&lt;p&gt;传统 RAG 常见流程是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把文档切块。&lt;/li&gt;
&lt;li&gt;生成 embedding。&lt;/li&gt;
&lt;li&gt;存进向量数据库。&lt;/li&gt;
&lt;li&gt;查询时召回相关片段。&lt;/li&gt;
&lt;li&gt;把片段塞给 LLM 生成答案。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这个流程很成熟，也很适合问答系统。但它有一个问题：知识本身没有真正沉淀。每次提问都在重新找片段、重新拼上下文、重新生成答案。&lt;/p&gt;
&lt;p&gt;OpenKB 的思路更偏“先整理，再问答”：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;文档进入 &lt;code&gt;raw/&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;短文档通过 markitdown 转成 Markdown。&lt;/li&gt;
&lt;li&gt;长 PDF 通过 PageIndex 生成树状索引和摘要。&lt;/li&gt;
&lt;li&gt;LLM 生成文档摘要。&lt;/li&gt;
&lt;li&gt;LLM 读取已有概念页，创建或更新跨文档概念。&lt;/li&gt;
&lt;li&gt;知识库索引、日志和交叉链接同步更新。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这样做的结果是，新增一份文档不只是多了一个可检索文件，而是可能更新十几个 wiki 页面。知识会被写进概念页里，并和已有资料发生连接。&lt;/p&gt;
&lt;p&gt;这更像人类维护知识库的方式：新资料进来后，不只是存档，还要更新主题页、总结差异、补充引用。&lt;/p&gt;
&lt;h2 id=&#34;pageindex-解决什么问题&#34;&gt;PageIndex 解决什么问题
&lt;/h2&gt;&lt;p&gt;长文档一直是 RAG 和 LLM 知识库里的难点。&lt;/p&gt;
&lt;p&gt;如果直接把长 PDF 切成很多 chunk，容易遇到几个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;章节关系丢失。&lt;/li&gt;
&lt;li&gt;表格、图片和脚注难处理。&lt;/li&gt;
&lt;li&gt;检索片段过碎，答案缺少全局结构。&lt;/li&gt;
&lt;li&gt;上下文窗口再大，也不适合把整本文档塞进去。&lt;/li&gt;
&lt;li&gt;摘要链路过长时，细节容易被压掉。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenKB 使用 PageIndex 来处理长 PDF。按项目说明，PageIndex 会为长文档建立树状索引和摘要，让 LLM 在文档树上推理，而不是直接读取整篇长文档。&lt;/p&gt;
&lt;p&gt;这条路线的重点不是“向量相似度最高的几段文本”，而是让模型利用文档层级结构找到相关内容。对于研究报告、论文、说明书、招股书、合规文档这类长材料，这个思路很有意义。&lt;/p&gt;
&lt;p&gt;OpenKB 默认可以使用开源版 PageIndex 本地运行；如果需要 OCR、复杂 PDF 处理或更快结构生成，也可以配置 &lt;code&gt;PAGEINDEX_API_KEY&lt;/code&gt; 使用 PageIndex Cloud。&lt;/p&gt;
&lt;h2 id=&#34;安装和快速开始&#34;&gt;安装和快速开始
&lt;/h2&gt;&lt;p&gt;OpenKB 可以直接通过 pip 安装：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install openkb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;也可以安装 GitHub 最新版本：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install git+https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;从源码开发安装：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; OpenKB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;创建一个知识库目录：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir my-kb &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; my-kb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;添加文档：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add paper.pdf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add ~/papers/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;提问：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb query &lt;span class=&#34;s2&#34;&gt;&amp;#34;What are the main findings?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;进入交互聊天：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb chat
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你想让知识库自动处理新文件，可以使用 watch 模式：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;之后把文件放进 &lt;code&gt;raw/&lt;/code&gt;，OpenKB 会自动更新 wiki。&lt;/p&gt;
&lt;h2 id=&#34;llm-配置&#34;&gt;LLM 配置
&lt;/h2&gt;&lt;p&gt;OpenKB 通过 LiteLLM 支持多种模型供应商，包括 OpenAI、Claude、Gemini 等。&lt;/p&gt;
&lt;p&gt;初始化时可以设置模型，也可以在 &lt;code&gt;.openkb/config.yaml&lt;/code&gt; 里配置：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;language&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;en&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pageindex_threshold&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;模型名称遵循 LiteLLM 的 &lt;code&gt;provider/model&lt;/code&gt; 格式。OpenAI 模型可以省略 provider 前缀，例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Anthropic、Gemini 这类模型通常写成：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;anthropic/claude-sonnet-4-6&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemini/gemini-3.1-pro-preview&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;API key 放在 &lt;code&gt;.env&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LLM_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_llm_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果启用 PageIndex Cloud，再补充：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PAGEINDEX_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_pageindex_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;常用命令&#34;&gt;常用命令
&lt;/h2&gt;&lt;p&gt;OpenKB 的命令很适合开发者使用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;openkb init&lt;/code&gt;：初始化知识库。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb add &amp;lt;file_or_dir&amp;gt;&lt;/code&gt;：添加文件或目录。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb remove &amp;lt;doc&amp;gt;&lt;/code&gt;：移除文档，并清理相关 wiki 页面、图片、注册表和 PageIndex 状态。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb query &amp;quot;question&amp;quot;&lt;/code&gt;：对知识库进行一次性提问。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb chat&lt;/code&gt;：进入多轮对话。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb watch&lt;/code&gt;：监听 &lt;code&gt;raw/&lt;/code&gt; 目录并自动更新。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb lint&lt;/code&gt;：检查知识库结构和内容健康状态。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb list&lt;/code&gt;：列出已索引文档和概念。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb status&lt;/code&gt;：查看知识库统计信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其中 &lt;code&gt;openkb chat&lt;/code&gt; 比 &lt;code&gt;openkb query&lt;/code&gt; 更适合连续探索。它支持会话恢复、会话列表和删除，也支持在聊天中使用 slash commands，比如 &lt;code&gt;/status&lt;/code&gt;、&lt;code&gt;/list&lt;/code&gt;、&lt;code&gt;/add &amp;lt;path&amp;gt;&lt;/code&gt;、&lt;code&gt;/save&lt;/code&gt;、&lt;code&gt;/lint&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;为什么-markdown-wiki-很重要&#34;&gt;为什么 Markdown wiki 很重要
&lt;/h2&gt;&lt;p&gt;很多知识库工具的麻烦在于迁移成本。&lt;/p&gt;
&lt;p&gt;一旦资料进入专有数据库、专有索引或专有格式，你就很难直接审查、修改、备份和迁移。OpenKB 把结果写成普通 Markdown，这让它天然适合和现有工具配合。&lt;/p&gt;
&lt;p&gt;最直接的用法是用 Obsidian 打开 &lt;code&gt;wiki/&lt;/code&gt; 目录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;摘要页可以直接阅读。&lt;/li&gt;
&lt;li&gt;概念页可以用 &lt;code&gt;[[wikilinks]]&lt;/code&gt; 互相连接。&lt;/li&gt;
&lt;li&gt;图谱视图可以看到知识之间的关系。&lt;/li&gt;
&lt;li&gt;查询结果可以保存到 &lt;code&gt;explorations/&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; 可以定义知识库维护方式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这让 OpenKB 不只是一个问答工具，也可以变成个人或团队的知识整理流水线。&lt;/p&gt;
&lt;h2 id=&#34;适合哪些场景&#34;&gt;适合哪些场景
&lt;/h2&gt;&lt;p&gt;OpenKB 特别适合这些场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;论文和技术报告阅读。&lt;/li&gt;
&lt;li&gt;项目文档整理。&lt;/li&gt;
&lt;li&gt;产品调研资料库。&lt;/li&gt;
&lt;li&gt;开源项目源码外的文档知识库。&lt;/li&gt;
&lt;li&gt;公司内部规范、会议纪要和说明文档整理。&lt;/li&gt;
&lt;li&gt;个人 Obsidian 知识库自动维护。&lt;/li&gt;
&lt;li&gt;长 PDF、PPT、Word 和网页资料的结构化沉淀。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你经常面对一堆文档，却不只是想“问一句得到答案”，而是希望资料能逐步变成可浏览、可复用、可追踪的知识库，OpenKB 的方向就很对。&lt;/p&gt;
&lt;h2 id=&#34;使用时要注意什么&#34;&gt;使用时要注意什么
&lt;/h2&gt;&lt;p&gt;第一，OpenKB 依赖 LLM 质量。&lt;/p&gt;
&lt;p&gt;摘要、概念页和交叉链接都由模型生成。模型越强，知识编译质量越稳定；模型能力不足时，概念抽取、冲突识别和跨文档综合都会打折扣。&lt;/p&gt;
&lt;p&gt;第二，成本要提前估算。&lt;/p&gt;
&lt;p&gt;如果一次性导入大量长文档，LLM 调用成本可能不低。建议先用小规模资料集测试，确认输出结构和质量，再扩大导入范围。&lt;/p&gt;
&lt;p&gt;第三，生成的 wiki 仍然需要人工审阅。&lt;/p&gt;
&lt;p&gt;OpenKB 可以整理资料，但不等于自动保证事实完全正确。重要知识库仍然需要人工检查摘要、概念页和引用关系。&lt;/p&gt;
&lt;p&gt;第四，敏感资料要谨慎。&lt;/p&gt;
&lt;p&gt;如果使用云端 LLM 或 PageIndex Cloud，就要注意文档里的隐私、商业机密和合规要求。内部资料最好先确认模型供应商、数据保留策略和访问边界。&lt;/p&gt;
&lt;p&gt;第五，它目前更偏 CLI 工具。&lt;/p&gt;
&lt;p&gt;项目路线图里提到未来会有 Web UI、数据库存储、大规模集合支持和层级概念索引。但在当前阶段，如果团队成员不熟悉命令行，使用门槛仍然存在。&lt;/p&gt;
&lt;h2 id=&#34;和-obsidiannotebooklm企业-rag-的关系&#34;&gt;和 Obsidian、NotebookLM、企业 RAG 的关系
&lt;/h2&gt;&lt;p&gt;OpenKB 和 Obsidian 的关系更像“自动整理层”和“阅读编辑层”。&lt;/p&gt;
&lt;p&gt;Obsidian 适合人来写、改、浏览和建立链接；OpenKB 适合把原始文档批量整理成可以进入 Obsidian 的 wiki。&lt;/p&gt;
&lt;p&gt;OpenKB 和 NotebookLM 的关系则更偏“本地可控”和“开放文件形态”。&lt;/p&gt;
&lt;p&gt;NotebookLM 使用体验更直接，适合把资料丢进去快速问答和生成摘要；OpenKB 更适合开发者把整理结果留在本地目录里，用 Markdown 继续维护。&lt;/p&gt;
&lt;p&gt;OpenKB 和企业 RAG 的关系不是替代，而是补位。&lt;/p&gt;
&lt;p&gt;企业 RAG 更看重权限、审计、服务化、权限隔离、监控和稳定吞吐。OpenKB 更适合构建一个可读、可改、可长期沉淀的知识层。未来如果要做线上问答，也可以把 OpenKB 生成的 wiki 作为更高质量的语料来源。&lt;/p&gt;
&lt;h2 id=&#34;一个推荐工作流&#34;&gt;一个推荐工作流
&lt;/h2&gt;&lt;p&gt;如果你想试 OpenKB，可以按这个顺序来：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;新建一个测试知识库目录。&lt;/li&gt;
&lt;li&gt;先放 3 到 5 份同一主题的文档。&lt;/li&gt;
&lt;li&gt;运行 &lt;code&gt;openkb add&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;打开 &lt;code&gt;wiki/&lt;/code&gt; 查看摘要和概念页。&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;openkb query&lt;/code&gt; 问几个具体问题。&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;openkb lint&lt;/code&gt; 检查知识库健康状态。&lt;/li&gt;
&lt;li&gt;用 Obsidian 打开 &lt;code&gt;wiki/&lt;/code&gt;，看链接图谱是否有意义。&lt;/li&gt;
&lt;li&gt;确认质量后，再导入更大的文档集合。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不要一上来就把几百个文件全丢进去。先看它对你的资料类型是否理解得好，尤其是表格、图片、长 PDF 和多文档概念合并效果。&lt;/p&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;OpenKB 的价值在于，它把 LLM 知识库从“查询时临时拼上下文”往前推了一步：先把资料整理成 wiki，再在 wiki 上问答、聊天、检查和继续维护。&lt;/p&gt;
&lt;p&gt;这条路线不一定适合所有问答系统，但很适合需要长期沉淀的知识工作。Markdown 文件、Obsidian 兼容、PageIndex 长文档处理、多模型支持和 CLI 工作流，组合起来就是一个很适合开发者和研究型用户的知识库工具。&lt;/p&gt;
&lt;p&gt;如果你手上有大量 PDF、报告、网页、论文和项目文档，OpenKB 值得试一下。它未必能马上替代成熟企业知识库，但可以成为一个很实用的资料整理入口：先把文档变成可读、可链接、可追踪的知识，再让 LLM 在这套知识上工作。&lt;/p&gt;
&lt;p&gt;参考链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/OpenKB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openkb.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenKB 项目页面&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://pageindex.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PageIndex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/markitdown&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;markitdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.litellm.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LiteLLM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
