Openclaw + llm-wiki Skill 打造个人知识库
Windows 环境下 Openclaw + llm-wiki Skill 打造个人知识库
一、两种方案,先看清再选
1.1 方案一:Obsidian + Claude Code——自己写菜谱请厨师做饭
📌 方案详情:关于方案一的完整实战,见昨天公众号文章 《Obsidian + Claude Code 搭建 LLM Wiki 新型个人知识库》,本文仅做对比,不再展开。
这条路的核心思路是:Obsidian 管数据,Claude Code 干重活。
你在 Vault 里建好 raw/、wiki/、outputs/ 三个文件夹,把 Karpathy 的 Gist 喂给 Claude Code,让它生成一份 CLAUDE.md 或 AGENTS.md 作为「说明书」,之后用Prompt 指挥 AI。
Obsidian 提供了原生的双向链接、知识图谱、1500+ 插件生态,Claudian 把 Claude Code 直接嵌进侧边栏,做到「一个窗口完成所有操作」。
这条路的优点是灵活可定制、知识结构随你设计、图谱可视化成熟;代价是要先懂 Obsidian、LLM Wiki 思想、Prompt 写作,以及 Schema 规范——学习曲线稍陡。
1.2 方案二:Agent + Skills——点外卖,别人做好半成品
这条路的核心思路是:Agent 是大脑,Skill 是工具包。
Agent 本身只懂对话;做实事靠 Skills(技能插件)。一个 Skill = 一个完整的「知识库建设 + 维护」工作流。
代表性项目是 GitHub 上的 sdyckjq-lab/llm-wiki-skill,基于 Karpathy 的方法论,一个 Skill 同时支持 4 个 Agent 平台:Claude Code、Codex、OpenClaw、Hermes。装完只需对 Agent 说一句「帮我消化这篇:<链接>」,整套 Ingest / Query / Lint 流程自动跑起来。
这条路的核心优势:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/lint 一键体检 |
|
|
|
|
一句话总结:方案一 ≈ 自己写菜谱请厨师做饭,方案二 ≈ 点外卖——别人已做好半成品,你只需下单。
1.3 怎么选?
- 第一次接触个人知识库
选方案二,30 秒上手,跑起来最重要 - 想深度定制、玩 Obsidian 插件生态
选方案一,灵活可改 - 已经在用 Claude Code / Codex
两个方案都能选,但方案二更省心
💡 本文后续内容针对方案二 + OpenClaw 平台 + Windows 11 环境展开,如果你符合上面任意一条,继续往下看就对了。
二、准备工作:5 分钟把环境搭好
2.1 你电脑上要有的(全部已装)
|
|
|
|
|---|---|---|
| OpenClaw |
|
|
| Node.js | D:\Program Files\nodejs\node.exe
|
|
| Python |
python 和 python3) |
|
| uv | C:\...\astral-sh.uv_...\uv.exe |
|
| Git |
|
|
2.2 按需补齐(没有就装一下)
|
|
|
|
|---|---|---|
| jq |
|
winget install jqlang.jq |
| bun
|
|
winget install Oven-sh.Bun
|
2.3 ⚠️ PowerShell 编码问题(必看,否则必踩)
Windows 11 自带的 PowerShell 5.1 默认:
-
console code page: 936(GBK) $OutputEncoding:ASCII-
Python 子进程 sys.stdout.encoding:GBK
直接影响:跑 bash install.sh 时中文输出 + hook JSON 全部乱码。比如 openclaw skills list 会输出 涓汉鐭ヨ瘑搴? 这种鬼字。
修复方案(三选一):
方案 A(推荐):用仓库自带的 install.ps1,自动把 console / $OutputEncoding / PYTHONIOENCODING 设为 UTF-8。
方案 B:手动设置后再跑
chcp 65001[Console]::OutputEncoding = [System.Text.Encoding]::UTF8$OutputEncoding = [System.Text.Encoding]::UTF8$env:PYTHONIOENCODING = 'utf-8'bash install.sh --platform openclaw
方案 C(终极方案):升级到 PowerShell 7+
winget install Microsoft.PowerShell# 之后用 pwsh 跑就行,默认 UTF-8
三、安装 Skill:走 OpenClaw 自家 git install
3.1 为什么我们不直接跑 install.sh
install.sh 是任意 bash 代码,仓库 README 自承:
「第三方 Skill 只有显式安装并启用后才作为受信任本地代码运行。」
对 GitHub 第三方 skill,走 OpenClaw 自己的 git-install 机制是「信任 GitHub 仓库代码,但不执行任意 bash」的折中——只读取 SKILL.md、scripts/、hooks/,不触发 install 脚本里的任意代码。
3.2 标准安装(踩坑版)
按理说,OpenClaw 官方推荐的做法是:
# 1. clone 到临时目录$tmp = "$env:TEMP\llm-wiki-skill-src"if (Test-Path $tmp) { Remove-Item $tmp -Recurse -Force }git clone --depth 1 https://github.com/sdyckjq-lab/llm-wiki-skill.git $tmp# 2. 让 OpenClaw 装本地目录openclaw skills install $tmp
但 OpenClaw 2026.6.11 这个版本有个稳定 bug——openclaw skills install 走 stage-install 流程时,在 rename 这一步稳定 EPERM 失败:
Installing to C:\Users\lgzhu\.openclaw\workspace\skills\llm-wiki…failed to install skill: Error: EPERM: operation not permitted,rename '...\skills\.openclaw-install-stage-XXXX' -> '...\skills\llm-wiki'
已确认:git: URL 和本地目录路径都中招,--global 装到 C:\Users\lgzhu\.openclaw\skills\ 也中招,跟 hot reload watcher / 杀毒 / 残留目录无关,不是临时性问题,重试 5 次都失败。
3.3 手动复制(推荐)——绕开 EPERM bug
既然官方 stage-install 有问题,那就绕过它,直接用 PowerShell 的 Copy-Item 把仓库复制到 OpenClaw 的 skills 目录。OpenClaw 的 chokidar watcher 会自动发现这个目录,不需要手动重载或重启 agent。
$src = "C:\Users\lgzhu\AppData\Local\Temp\llm-wiki-skill-src"$dst = "C:\Users\lgzhu\.openclaw\workspace\skills\llm-wiki"# 清掉旧安装if (Test-Path $dst) { Remove-Item $dst -Recurse -Force }# 复制(注意是 Copy-Item,不是 git clone)Copy-Item -Path $src -Destination $dst -Recurse -Force# 删掉 .git(skill 目录里不应该有 .git)Remove-Item "$dst\.git" -Recurse -Force# 验证 OpenClaw 自动发现了openclaw skills list | Select-String "llm-wiki"# 应该看到: ✅ ready | llm-wiki | ... | openclaw-workspace
💡 复制完成后 OpenClaw 的 chokidar watcher 自动发现,不需要手动重载。
3.4 验证装好了
# 1. 看 skill 在不在openclaw skills list | Select-String "llm-wiki"# 2. 看健康状况openclaw skills check# 3. 看 SKILL.md 是不是能被读Get-Content "C:\Users\lgzhu\.openclaw\workspace\skills\llm-wiki\SKILL.md" -TotalCount 15
期望:skill 状态 ✅ ready,没有 missing requirements,出现在「Ready and visible to model」列表。

四、使用 Skill:三句话让 AI 帮你建知识库
4.1 初始化第一个知识库
在 OpenClaw 对话窗口说:
帮我初始化一个知识库
skill 会引导你:
-
选择知识库根目录(建议放 C:\Users\lgzhu\knowledge\<name>\或workspace\knowledge\) -
自动生成目录结构 + 模板 + purpose.md(研究方向) -
在 index.md注册,创建log.md操作日志
初始化后目录长这样:
你的知识库/├── raw/ # 原始素材(不可变)│ ├── articles/ # 网页文章│ ├── tweets/ # X / Twitter│ ├── wechat/ # 微信公众号│ ├── xiaohongshu/ # 小红书│ ├── zhihu/ # 知乎│ ├── pdfs/ # PDF│ ├── notes/ # 笔记│ └── assets/ # 图片等附件├── wiki/ # AI 生成的知识库│ ├── entities/ # 实体页(人物/概念/工具)│ ├── topics/ # 主题页│ ├── sources/ # 素材摘要│ ├── comparisons/ # 对比分析│ └── synthesis/ # 综合分析│ └── sessions/ # 对话结晶├── purpose.md # 研究方向与目标├── index.md # 索引├── log.md # 操作日志├── .wiki-schema.md # 配置└── .wiki-cache.json # 素材去重缓存
4.2 消化素材——一句话入 wiki
最常用的指令是「消化」:
帮我消化这篇: <链接>帮我消化这个 PDF: <路径>帮我消化这段文字: <粘贴>
skill 会自动:
-
从 raw/读取或自动提取内容(支持 PDF / Markdown / HTML / 网页 / X / 公众号 / YouTube / 知乎) -
分析 → 生成实体页 / 主题页 / 素材摘要 -
用 [[双向链接]]互联 -
标注置信度: EXTRACTED/INFERRED/AMBIGUOUS/UNVERIFIED -
写入 .wiki-cache.json(SHA256 去重,已处理过的素材自动跳过)
例如,下载了一篇网页文章,保存为 2026-07-08-network-architecture-ip-cloud-ai-continuum.md,然后让 OpenClaw「跑一次完整 ingest,让知识库从空库变成有 1 个 source + 几个 entity + 1 个 topic 的起步状态」。

💡 核心优势:知识「编译一次,持续维护」,而不是每次查询都从原始文档重新推导。
这个知识库可以用 Obsidian 打开,可以直观地查看和搜索知识库内容。

4.3 查询——让 AI 帮你回忆知识库
直接对 OpenClaw 提问即可,skill 会从 wiki/index.md 出发,沿双向链接 + 摘要,拼出综合回答:
「Transformer 与 Mamba 的区别?」
回答里每段都标注来源(source: [[...]]),能追到原始素材。如果回答有保存价值:
把这个回答存到 wiki 里
skill 会把这次回答沉淀到 wiki/synthesis/,自动建立双向链接。反复查询 = 知识不断积累,临时思考变成永久资产。
4.4 健康检查——别让错误复利
Karpathy 自己说过一句狠话:「当输出被归档回去时,错误也会复利。」 这意味着 AI 写错的内容如果不修正,下一轮问答会基于错的继续。所以每月跑一次体检:
帮我做一次知识库健康检查
会跑两个层面:
- 脚本层
(需要 jq):孤立页面 / 断链 / index 一致性 - AI 层
:矛盾 / 交叉引用
五、故障排查:这 5 个坑我都替你踩过了
5.1 openclaw skills install EPERM rename 失败(稳定复现)
症状:见 §3.2 的报错。
状态:OpenClaw 2026.6.11 自家 stage-install 流程的稳定 bug。绕路:走 §3.3 的「手动复制」流程。
5.2 PowerShell 中文乱码
openclaw skills list 输出 涓汉鐭ヨ瘑搴? 这种鬼字 → 见 §2.3 的编码修复方案 A/B/C。
5.3 可选提取器没装
如果消化微信公众号 / X / YouTube / 知乎时,提示「提取器未启用」,不要直接跑 install.ps1 --with-optional-adapters(它会改 ~/.openclaw/ 全局配置,等同于执行任意 install.sh 代码)。
替代方案:手动跑对应提取器:
# 微信公众号uv tool run wechat-article-to-markdown <url># X / Twitter / 网页bunx baoyu-url-to-markdown <url># YouTube# 复制字幕粘贴
5.4 健康检查报「jq 缺失」
winget install jqlang.jq# 重启 PowerShell 让 PATH 生效
5.5 知识库目录权限
skill 用 PowerShell 跑 mkdir / cp / python 时,知识库目录不能在 OneDrive 同步路径下(OneDrive 锁会冲突)。建议放:
C:\Users\lgzhu\knowledge\
(主用户目录,不在 OneDrive 下) D:\knowledge\
(数据盘,不在 OneDrive 下) workspace\knowledge\
(在 workspace 内,不在 OneDrive 下)
六、升级 / 卸载:速查命令卡
# ========== 装 ==========$src = "C:\Users\lgzhu\AppData\Local\Temp\llm-wiki-skill-src"$dst = "C:\Users\lgzhu\.openclaw\workspace\skills\llm-wiki"if (Test-Path $src) { Remove-Item $src -Recurse -Force }git clone --depth 1 https://github.com/sdyckjq-lab/llm-wiki-skill.git $srcif (Test-Path $dst) { Remove-Item $dst -Recurse -Force }Copy-Item -Path $src -Destination $dst -Recurse -ForceRemove-Item "$dst\.git" -Recurse -Force# ========== 验 ==========openclaw skills list | Select-String "llm-wiki"openclaw skills check# ========== 升 ==========cd $env:TEMP\llm-wiki-skill-src; git pull# 然后跑上面的「装」流程的后半段# ========== 卸 ==========Remove-Item "C:\Users\lgzhu\.openclaw\workspace\skills\llm-wiki" -Recurse -Force# 知识库本身不会被删,那个是你自己的数据# ========== 清理临时 clone ==========Remove-Item "C:\Users\lgzhu\AppData\Local\Temp\llm-wiki-skill-src" -Recurse -Force
七、安全备忘
- 仓库自承
「第三方 Skill 显式安装并启用后才作为受信任本地代码运行」——我们手动复制 + 让 OpenClaw 自动发现,等价于显式启用。 -
当前安装的版本是 main分支当前快照,未固定到具体 tag。如果对版本稳定性敏感,可以 clone 后手动git checkout v3.6.33再复制。 -
如果哪天 openclaw skills verify报 link invalid,大概率是origin.json跟lock.json的installedAt漂几 ms 触发严格相等比对失败,手动对齐时间戳即可,不需要重装。
八、写在最后
整套系统的核心组件其实只有一个 Skill:llm-wiki-skill(一行命令起步,跨 4 个平台)。装好之后你就在 OpenClaw 聊天窗口说话就行,三句话搞定一切:
-
一句话建一个知识库: 帮我初始化一个知识库 -
一句话把一篇文章变成 wiki: 帮我消化这篇 -
一句话检查一次系统: 帮我做一次健康检查
参考链接
-
llm-wiki-skill 仓库:https://github.com/sdyckjq-lab/llm-wiki-skill -
OpenClaw 文档:https://docs.openclaw.ai/cli/skills
夜雨聆风