1
0

OpenWiki 使用教程:让 Codex、Claude Code 与 Hermes 共享一个 LLM Wiki

2026-08-11
文章摘要
|

OpenWiki 使用教程:让 Codex、Claude Code 与 Hermes 共享一个 LLM Wiki

本文更新于 2026-08-11,实测版本为 OpenWiki 0.3.2。项目仍处于快速迭代期,后续命令和界面可能变化,请以官方仓库为准。

很多人把“AI 知识库”理解成:上传一批文件,提问时让模型临时找几段相关内容。这是典型的 RAG 思路。Karpathy 提出的 LLM Wiki 不太一样:它让 AI 把原始资料持续编译成一套可读、可链接、可修订的 Markdown Wiki。新资料到来时,不只是增加一个向量索引,而是更新主题页、人物页、对比页、索引和变更记录。[4]

LangChain 的 OpenWiki,则把这个想法做成了可以安装运行的开源 CLI:它既能为代码仓库生成持续更新的工程文档,也能把 Notion、Gmail、Slack、X、网页搜索、Hacker News 和本地 Git 仓库等来源整理成个人知识库。[2]

本文基于官方仓库、npm 包、CLI 实测和公开规范,给出一套从安装、生成、接入 Notion、跨 Agent 使用,到自动更新和排错的完整教程。

一、先说结论:OpenWiki 解决的到底是什么问题

LLM Wiki 的重点不是“搜索更快”,而是让知识产生复利:

  • 原始资料保留为证据;
  • AI 将资料整理成结构化 Markdown;
  • 不同页面之间建立链接;
  • 新资料会更新旧结论,而不是不断堆积重复摘要;
  • Codex、Claude Code、Hermes 等 Agent 可以读取同一套 Wiki;
  • Wiki 可以进入 Git,获得版本历史、差异对比和回滚能力。

Karpathy 将其概括为三层:不可变的 Raw Sources、由 AI 维护的 Wiki,以及约束目录结构和维护流程的 Schema。他还建议用 index.md 做内容目录、用 log.md 记录每次摄取、查询和维护操作。[4]

OpenWiki 在此基础上提供了可执行实现。当前官方明确区分两种模式:[2]

  • Code 模式:读取当前代码仓库,把文档写入仓库的 openwiki/ 目录;
  • Personal 模式:读取配置好的个人数据源,把知识写入 ~/.openwiki/wiki

如果你是程序员,建议先试 Code 模式;如果你希望把 Notion、邮件、文章和 AI 对话沉淀成“第二大脑”,再配置 Personal 模式。

二、为什么值得为 Agent 单独建立长期知识层

为了确认 OpenWiki 不是停留在概念层的“知识库包装”,本文做了四项独立验证:检查 npm 发布信息与运行要求、阅读官方仓库和生成文档、实际运行 CLI 帮助,以及启动本地可视化服务。实测结果表明,它已经覆盖初始化、增量更新、连接器摄取、跨 Agent 指引和知识图谱浏览等完整环节。

从实际工作流看,OpenWiki 最值得关注的不是某一个界面,而是以下四个机制:

  1. 把知识从单次对话中剥离出来。 Codex、Claude Code、Hermes 或其他 Agent 只要能读取文件,就能复用同一批 Markdown,不再把重要背景锁在某个模型的聊天记录里。
  2. 把一次性摘要改成增量维护。 新资料到来后,系统会尝试修订已有主题和关联关系,而不是无限堆积互不相干的摘要。
  3. 让知识保持可审阅。 最终产物是普通 Markdown,可以人工检查、修改、提交 Git、对比差异和回滚。
  4. 同时服务代码与个人资料。 Code 模式面向项目文档,Personal 模式面向 Notion、邮件、网页和本地仓库,两者都可以成为 Agent 的长期上下文。[2]

截至本文写作时,npm 上的 OpenWiki 最新版是 0.3.2,采用 MIT 许可证,并要求 Node.js 22 或更高版本。[2][3] 这说明它仍是快速迭代中的早期工具,生产使用时应固定版本,并在升级前检查 Changelog。

还需要注意 OKF 版本差异:OpenWiki README 当前写明输出 Open Knowledge Format v0.1,而 Google 官方 OKF 规范仓库目前已经更新到 v0.2。使用者不必手工修改生成文件,但在与其他 OKF 工具互操作时,应先确认双方支持的版本。[2][5]

三、安装前准备

1. 检查 Node.js

OpenWiki 要求 Node.js 22 或更高版本:[3]

node --version
npm --version

如果 Node 版本低于 22,建议通过 NodeSource、nvm 或系统包管理器升级。升级后重新打开终端,再次检查版本。

2. 安装 OpenWiki

npm install -g openwiki

检查是否安装成功:

openwiki --help

本文在 Node.js v22.23.2 下实际运行了 openwiki@0.3.2 --help,命令正常返回 Code、Personal、Auth、Ingest、Cron 和 Visualize 等指令。

如果你暂时不想全局安装,也可以先用 npx 测试:

npx -y openwiki@0.3.2 --help

四、最简单的用法:给代码仓库生成 Wiki

进入一个 Git 项目:

cd /path/to/your-project
openwiki code --init

也可以省略 code,因为默认就是代码模式:

openwiki --init

第一次运行会让你选择模型提供商、模型和认证方式。配置完成后,OpenWiki 会分析仓库,并把文档写入:

your-project/
├── openwiki/
│   ├── index.md
│   ├── INSTRUCTIONS.md
│   └── ...
├── AGENTS.md
└── CLAUDE.md

OpenWiki 会在根目录的 AGENTS.mdCLAUDE.md 中维护自己的标记区块,用来提醒 Codex、Claude Code 等编程 Agent 优先读取 Wiki;它只改写自己的区块,保留你在文件里的其他项目指令。[2]

生成中文 Wiki

openwiki code --init --language zh-CN

语言参数会影响生成文档,代码、文件名和标识符仍保持原样。[2]

自定义文档重点

编辑:

openwiki/INSTRUCTIONS.md

可以写入类似要求:

重点记录:
- 项目架构和关键数据流
- 部署、回滚与故障排查
- 数据库表和 API 路由
- 容易踩坑的环境变量
- 重要设计决策及其原因

不要记录:
- node_modules
- 构建产物
- 临时日志

这个文件由你控制,正常更新时 OpenWiki 不会覆盖它。[2]

排除隐私文件和无关目录

在项目根目录创建 .openwikiignore

.env
.env.*
secrets/
node_modules/
dist/
build/
*.log

它采用类似 .gitignore 的规则。被忽略的路径不会被 OpenWiki 主动读取和扫描,但其他可见文件仍可能间接提到这些模块,所以它不能替代真正的密钥隔离。[2]

五、更新已有 Wiki

代码变化后运行:

openwiki code --update --print

--print 表示执行一次、输出结果后退出,适合脚本和 CI。OpenWiki 会比较已有文档与新代码,在有变化时更新 Wiki;没有变化时尽量保持 no-op,避免定时任务制造无意义提交。[2]

也可以直接给出更新重点:

openwiki code --update --print \
  "优先更新认证流程、数据库迁移和部署文档"

六、个人模式:把 Notion 等资料变成第二大脑

初始化个人知识库:

openwiki personal --init

默认输出目录是:

~/.openwiki/wiki

连接器抓取的原始数据和清单通常保存在:

~/.openwiki/connectors/<connector>/raw/

模型凭据和 OAuth Token 保存在本机:

~/.openwiki/.env

这些文件不要提交到 Git,也不要发送给别人。[2]

使用 ChatGPT 登录,而不是单独填写 OpenAI API Key

官方提供了 openai-chatgpt Provider,可通过浏览器登录 ChatGPT,并使用当前订阅中包含的 Codex 用量:[2]

OPENWIKI_PROVIDER=openai-chatgpt openwiki personal --init

命令会打开 auth.openai.com。如果在远程服务器上运行,它也会打印登录地址。登录完成后,OpenWiki 会保存访问令牌和刷新令牌。刷新令牌应当视同密码保护。

如果你更愿意用 API Key,也可以在首次向导里选择 OpenAI、Anthropic、Gemini、OpenRouter、Bedrock、GitHub Copilot 或 OpenAI-compatible Provider。OpenAI-compatible 模式可连接 Ollama、LM Studio 和自建网关。[2]

七、接入 Notion

先运行 OAuth:

openwiki auth notion

它会打开 Notion 授权页面。授权时应只选择确实需要进入 Wiki 的页面或工作区,不建议一开始就开放全部公司资料。

查看 OpenWiki 从 Notion MCP 发现了哪些工具:

openwiki auth tools notion

开始摄取:

openwiki ingest notion

如果配置了多个来源,可以运行:

openwiki ingest all

摄取流程不是简单地把每个 Notion 页面复制成 Markdown,而是先保存来源数据,再让 Agent 抽取主题、人物、任务、决策和关联关系,最后合并到个人 Wiki 中。[2]

建议第一次只授权少量测试页面,检查以下内容后再扩大范围:

  • 原始资料是否抓取完整;
  • Wiki 是否把不同项目混在一起;
  • 人名、时间和结论是否有来源依据;
  • 私密页面是否被错误纳入;
  • 增量更新是否重复生成同一主题。

八、让 Codex、Claude Code 和 Hermes 共享同一个知识库

Code 模式

Code 模式最省事。OpenWiki 会自动维护项目根目录的 AGENTS.mdCLAUDE.md 提示区块。Codex 读取 AGENTS.md,Claude Code 读取 CLAUDE.md,因此它们会知道 Wiki 的位置。[2]

Personal 模式

个人 Wiki 位于项目目录之外,需要在各 Agent 的项目指令中显式登记路径。例如在 AGENTS.md 增加:

## Shared LLM Wiki

Before answering questions that depend on prior research or personal context:
1. Read `~/.openwiki/wiki/index.md` first.
2. Search relevant Markdown pages under `~/.openwiki/wiki/`.
3. Prefer the compiled wiki for orientation, then inspect raw sources when provenance matters.
4. Do not overwrite the wiki manually unless the task explicitly asks for maintenance.

CLAUDE.md 中也可加入同样规则。Hermes Agent 则可以在相关任务中直接读取 ~/.openwiki/wiki/index.md,再按主题搜索 Markdown 文件。

这里的关键不是某个 Agent “接管”知识库,而是所有 Agent 都把同一个 Markdown 目录当作长期知识层。这样换模型、换终端甚至换编辑器时,知识仍然保留。

九、可视化浏览 Wiki

代码 Wiki:

openwiki visualize

个人 Wiki:

openwiki visualize ~/.openwiki/wiki

服务器或不希望自动打开浏览器时:

openwiki visualize ~/.openwiki/wiki \
  --port 4400 \
  --no-open

本文实际对官方仓库自带的 Wiki 运行了可视化命令,程序扫描到 14 个页面和 21 条链接,本地页面返回 HTTP 200。服务默认监听 127.0.0.1,不会自动暴露到公网;但页面中的图谱、Markdown 和 Mermaid 相关前端库会从公共 CDN 加载,因此浏览时仍需要网络。[2]

十、自动更新

GitHub Actions:适合 Code 模式

官方提供了定时工作流示例,核心流程是:完整检出 Git 历史、安装 Node.js 22 和 OpenWiki、执行 openwiki code --update --print,然后创建文档更新 PR。[6]

最容易忽略的是:

with:
  fetch-depth: 0

必须保留完整 Git 历史,否则 OpenWiki 可能找不到上次记录的提交,无法正确计算增量变化。[6]

模型 Key 应保存在 GitHub Actions Secrets 中,不要直接写进 YAML:

env:
  OPENWIKI_PROVIDER: openrouter
  OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
  OPENWIKI_MODEL_ID: your-model-id

GitHub Actions 的 Cron 使用 UTC。比如北京时间每天上午 10 点,对应 UTC 02:00:

on:
  schedule:
    - cron: "0 2 * * *"

Personal 模式

手工增量更新:

openwiki ingest all --print

只执行由调度器管理、当前到期的来源:

openwiki ingest all --scheduled --print

查看、暂停或恢复 OpenWiki 保存的连接器计划:

openwiki cron list
openwiki cron pause all
openwiki cron resume all

在 Linux 服务器上,也可以用系统 Cron、systemd timer 或 Hermes 定时任务调用 openwiki ingest all --scheduled --print。要确保定时进程能读取同一个用户的 ~/.openwiki/.env,并使用正确的 Node 与 OpenWiki 路径。

十一、日常使用工作流

推荐把 OpenWiki 当作“编译器”,而不是聊天机器人:

  1. 收集:把高质量资料加入 Notion、本地仓库或其他连接器;
  2. 摄取:运行 openwiki ingest ...
  3. 审阅:检查新增页面、关键事实和来源;
  4. 提问:让 Agent 先读 index.md,再读取相关主题页;
  5. 回写:把值得长期保留的对比、结论和决策写回 Wiki;
  6. 维护:定期检查重复页面、失效链接、矛盾结论和过期资料;
  7. 版本化:对重要 Wiki 使用 Git,审阅每次差异。

这和 Karpathy 的 Ingest、Query、Lint 三类操作基本一致:摄取资料、基于 Wiki 查询、定期检查知识库健康度。[4]

十二、隐私、安全与常见坑

1. Markdown 在本地,不等于数据完全不出本地

Wiki 文件和连接器缓存可以保存在本机,但如果使用云端模型,模型处理所需内容仍会发送给相应 Provider。高度敏感资料应使用本地兼容模型,或先做好脱敏和权限隔离。

2. 不要提交 ~/.openwiki/.env

它可能包含 API Key、OAuth 访问令牌与刷新令牌。备份时应加密,泄露后要立即撤销和重新授权。[2]

3. 第一次不要摄取全部资料

先用一个小型代码仓库或少量 Notion 页面验证目录结构和输出质量。范围过大时,成本、耗时、重复主题和错误合并都会更难控制。

4. Wiki 不是原始证据

AI 生成的主题页可能概括错误。重要决策必须能够追溯到原始材料。OKF 的目标之一正是让 Markdown 知识具备来源、可信度、新鲜度和生命周期等可追踪信息。[5]

5. 可视化页面默认不是远程管理后台

openwiki visualize 默认绑定本机回环地址。远程使用时优先通过 SSH 端口转发访问,不要为了方便直接暴露到公网。

6. 关闭匿名遥测

OpenWiki 默认收集匿名聚合使用事件;官方说明不会收集文件内容、凭据、提示词和模型输出。若仍希望关闭,可设置:[2]

export OPENWIKI_TELEMETRY_DISABLED=1
# 或
export DO_NOT_TRACK=1

十三、适不适合你

OpenWiki 比较适合:

  • 有多个 AI 编程 Agent,希望它们共享项目知识;
  • 代码仓库缺少持续更新的架构和运维文档;
  • 长期研究一个主题,希望知识不断累积;
  • Notion、邮件、网页和项目笔记分散在多个平台;
  • 喜欢 Markdown、Git、Obsidian 这类可控工具。

暂时不适合:

  • 只想临时上传几份 PDF 问一次问题;
  • 不愿意审阅 AI 生成知识;
  • 数据极敏感,却只能使用外部云模型;
  • 资料数量很少,普通文件夹与全文搜索已经够用。

十四、最短上手清单

如果只想今天就试起来,执行:

# 1. 确保 Node.js >= 22
node --version

# 2. 安装
npm install -g openwiki

# 3. 在一个小型代码仓库里初始化中文 Wiki
cd /path/to/test-project
openwiki code --init --language zh-CN

# 4. 浏览图谱
openwiki visualize

# 5. 代码变化后增量更新
openwiki code --update --print

确认 Code 模式符合预期后,再尝试个人模式:

openwiki personal --init
openwiki auth notion
openwiki ingest notion
openwiki visualize ~/.openwiki/wiki

一句话总结:RAG 更像每次提问都去仓库临时找材料;LLM Wiki 更像让 AI 先把材料编成一本会持续修订的书。OpenWiki 的价值,是让这本书成为 Codex、Claude Code、Hermes 和人类都能读取的普通 Markdown。

延伸参考

如果希望直观看一遍 OpenWiki 的个人模式、Notion 授权、增量更新和跨 Agent 调用流程,可以观看这段操作演示。[1]

Sources

[1] https://www.bilibili.com/video/BV1EaN86hEhV — OpenWiki 操作演示(延伸参考) [2] https://github.com/langchain-ai/openwiki — LangChain OpenWiki 官方仓库 [3] https://www.npmjs.com/package/openwiki — openwiki npm 包 [4] https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f — Karpathy: LLM Wiki [5] https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md — Open Knowledge Format Specification [6] https://github.com/langchain-ai/openwiki/blob/main/examples/openwiki-update.yml — OpenWiki GitHub Actions 示例

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论