很多人在使用 Claude Code、Copilot CLI 或其他 AI Agent 时,会遇到一个很现实的问题:
模型知道很多通用知识,但不知道你手里的那本书。
例如你正在开发分布式系统,希望 Agent 按照一本技术书中的方法来分析架构。
普通做法可能是:
找到 PDF
↓
上传给 AI
↓
重新寻找章节
↓
把相关内容塞进上下文
↓
提问
每换一个问题,又要重新进行一次类似操作。
virgiliojr94/book-to-skill 提供了另一种思路:
技术书 / 文档
↓
book-to-skill
↓
结构化 Agent Skill
↓
Agent 按需读取章节
也就是说,它不是简单把一本书做成摘要,而是把资料整理成 Agent 能长期复用的知识结构。

book-to-skill 最终会生成什么?
转换一本书以后,通常会得到:
~/.claude/skills/书名/
│
├── SKILL.md
│
├── chapters/
│ ├── ch01-xxx.md
│ ├── ch02-xxx.md
│ └── ...
│
├── glossary.md
├── patterns.md
└── cheatsheet.md
不同文件承担不同任务。
SKILL.md
保存:
- 核心框架;
- 关键思维模型;
- 章节索引;
- Topic Index。
Agent 启动 Skill 时优先读取这一部分。项目给出的典型核心大小大约为 4K Token。
chapters/
保存拆分后的章节内容。
例如:
chapters/
├── ch01-introduction.md
├── ch02-data-models.md
├── ch03-storage.md
└── ch04-encoding.md
Agent 不需要把所有章节一次性放进上下文,而是在问题需要时再读取对应文件。
glossary.md
主要保存:
- 专业术语;
- 定义;
- 所在章节。
patterns.md
用于整理:
- 技术模式;
- 算法;
- 方法;
- 设计原则;
- Anti-pattern。
cheatsheet.md
更偏向:
什么时候用 A?
什么时候不要用 B?
方案 C 有什么限制?
这种快速参考内容。
为什么比直接把整本书丢给 AI 更合适?
一本技术书可能几十万 Token。
如果每次提问都加载整本书:
Book
↓
200K Tokens
↓
模型搜索相关内容
↓
回答
不仅上下文消耗很高,还会产生大量无关信息。
book-to-skill 的方式更接近:
SKILL.md
约 4K
+
相关章节
约 1K
↓
回答
项目自己的基准测试显示,在针对单个章节或问题的场景中,相比直接把整本书放进上下文,输入 Token 可以减少约 24~51 倍;具体效果会随着书籍结构和问题而变化。
它和 NotebookLM / RAG 有什么区别?
如果你的需求是:
我有 500 本书
我要搜索它们全部
大型知识库或 RAG 会更加合适。
book-to-skill 更适合:
我正在真正使用这一本书
希望 AI 长期按照它的方法工作
例如:
Designing Data-Intensive Applications
转换完成以后,可以把里面的:
- Replication;
- Partitioning;
- Consistency;
- Storage Engine;
变成 Agent 可以随时引用的方法。
项目 README 本身也明确表示,它更偏向"深入使用一本书",而不是大型资料库的全文检索替代方案。
现在已经不只是 Book
虽然名字叫:
book-to-skill
但项目目前已经支持:
单个文件
文件夹
Glob
多来源集合
例如:
~/company-docs/
├── architecture.md
├── api.md
├── database.md
├── deployment.md
└── security.md
可以把这一整个目录整理成统一 Skill。
这样它实际上也可以用于:
- 企业技术文档;
- 项目架构说明;
- 开发规范;
- API 文档;
- 运维手册;
- 产品资料。
支持哪些文件格式?
当前项目支持包括:
- PDF;
- EPUB;
- DOCX;
- TXT;
- Markdown;
- reStructuredText;
- AsciiDoc;
- HTML;
- RTF;
- MOBI;
- AZW / AZW3。
MOBI、AZW 等部分电子书格式需要额外安装 Calibre。
因此如果本身有比较多技术电子书,可以统一放在:
/data/books/
再逐步转换成 Skill。
需要服务器吗?
严格来说:
不需要。
book-to-skill 是本地转换工具。
官方安全说明明确指出,它:
- 读取你指定的文件;
- 把 Skill 写到对应目录;
- 不会主动上传文件;
- 不会"phone home";
- 不会启动网络服务。
所以个人电脑完全可以直接使用。
但是如果日常已经使用:
Claude Code
Codex
Copilot CLI
Git
Docker
组成远程 AI 开发环境,那么把 book-to-skill 一起部署到 Linux 服务器会比较方便。
为什么适合远程开发服务器?
一个长期 AI 开发环境可以设计成:
Linux Server
│
├── Claude Code
├── GitHub Copilot CLI
├── Python
├── Git
│
├── /data/books
│
├── /data/docs
│
└── ~/.claude/skills
这样可以获得几个便利:
多设备共享
办公室电脑:
SSH
↓
服务器
回家以后换另一台电脑:
SSH
↓
还是同一套 Skills
不需要重新转换书籍。
Agent 和资料放在同一环境
例如:
~/projects/backend
开发项目。
同时:
~/.claude/skills/ddia
保存技术书 Skill。
Agent 在写代码时就可以随时参考对应知识。
批量处理不会占用个人电脑
某些复杂文档解析速度可能较慢。
把转换工作放到远程服务器运行,就不会长期占用日常电脑。
服务器配置怎么选择?
book-to-skill 本身不是高负载程序。
资源主要消耗在:
- 文档提取;
- PDF 解析;
- Docling;
- Python;
- Agent 本身。
基础使用
建议:
2 核 CPU
4GB 内存
40GB SSD
适合:
- 少量 PDF;
- EPUB;
- Markdown。
日常开发环境
建议:
4 核 CPU
8GB 内存
80GB SSD
适合:
- 多本技术书;
- Claude Code;
- Git;
- Python;
- Node.js。
大型文档环境
建议:
8 核 CPU
16GB 内存
150GB+ SSD
适合:
- 大量 PDF;
- 多个 Agent;
- Docling;
- Docker。
实际配置主要看资料规模。
莱卡云适合放在哪一层?
如果准备搭建一套长期在线的 AI 开发环境,可以把莱卡云服务器作为 Linux 主机的一种候选。
例如:
莱卡云 Linux Server
│
├── Claude Code
├── book-to-skill
├── Git
├── Python
│
├── 技术书
├── 项目文档
└── Agent Skills
服务器本身主要承担:
- 文件存储;
- 文档转换;
- Agent 运行;
- 项目代码;
- 开发工具。
如果已经使用其他 Linux VPS、自建服务器或者 NAS,也可以采用相同架构。
对于个人使用,可以先从:
2 核 4GB
或者:
4 核 8GB
开始,再根据资料数量和转换速度调整。
Ubuntu 准备环境
更新系统:
apt update
apt upgrade -y
安装常用工具:
apt install -y \
git \
curl \
python3 \
python3-pip \
python3-venv \
poppler-utils
其中:
poppler-utils
提供 PDF 文本提取相关工具。
检查:
python3 --version
pdftotext -v
安装方式一:直接安装 Agent Skill
这是如果你使用:
- Claude Code;
- Copilot CLI;
- Amp;
更推荐的方式。
当前项目文档特别强调:
git clone 到 Skills 目录
和:
pip install book-to-skill
是两个不同的安装路径。
前者会注册 Agent Skill,后者只安装独立提取 CLI。
例如 Claude Code:
mkdir -p ~/.claude/skills
cd ~/.claude/skills
然后:
git clone \
https://github.com/virgiliojr94/book-to-skill.git
完成以后:
~/.claude/skills/book-to-skill/
就会存在 Skill。
官方还提供更轻量的安装方式
项目当前 README 给出的手动方式是:
mkdir -p ~/.claude/skills/book-to-skill/scripts
下载 Skill:
curl -o ~/.claude/skills/book-to-skill/SKILL.md \
https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/SKILL.md
再下载提取脚本:
curl -o ~/.claude/skills/book-to-skill/scripts/extract.py \
https://raw.githubusercontent.com/virgiliojr94/book-to-skill/master/scripts/extract.py
之后即可在 Claude Code 中使用 /book-to-skill。
安装方式二:独立 CLI
如果只需要文档提取功能,可以创建 Python 环境:
python3 -m venv ~/book-to-skill-env
启用:
source ~/book-to-skill-env/bin/activate
安装:
pip install book-to-skill
需要注意:
pip install book-to-skill
不会自动把 /book-to-skill 注册到 Claude Code。
这个差异在项目最新 Changelog 中已经专门进一步说明。
转换第一本书
假设:
/data/books/ddia.pdf
在 Claude Code 中执行:
/book-to-skill /data/books/ddia.pdf
也可以自定义 Skill 名:
/book-to-skill /data/books/ddia.pdf ddia
最终生成:
~/.claude/skills/ddia/
以后可以直接:
/ddia replication
询问 Replication 相关内容。
Agent 会读取相关章节,而不是把整本书重新塞进上下文。
可以处理一个目录
假设:
/data/project-docs/
里面有:
architecture.md
api.md
deployment.md
security.md
可以把整个目录作为输入。
这特别适合把:
企业内部技术文档
整理成 Agent Skill。
一个实用的目录规划
远程开发机可以设计成:
/data/
├── books/
│ ├── ddia.pdf
│ ├── clean-code.epub
│ └── system-design.pdf
│
├── documents/
│ ├── api/
│ └── architecture/
│
└── projects/
Skills:
~/.claude/skills/
├── book-to-skill/
├── ddia/
├── clean-code/
└── company-architecture/
这样比较容易维护。
普通 PDF 和技术 PDF 怎么选解析方式?
book-to-skill 的核心架构分为两部分:
Extractor
↓
Python
Generator
↓
Agent / SKILL.md
Extractor 负责确定性地提取文本和元数据,之后 Agent 再把内容编译为 Skill。
普通文字类 PDF 可以优先使用较轻的解析方式。
如果包含大量:
- 表格;
- 代码块;
- 多栏排版;
- 技术布局;
可以考虑使用更完整的文档解析工具。
不过更复杂的解析方式通常速度也会明显变慢,所以没有必要所有资料都采用最高成本模式。
为什么不建议把整个 Skill 全部加载?
生成 Skill 之后,一个重要理念就是:
按需加载。
例如:
SKILL.md
↓
找到 Topic
↓
读取 ch07
↓
回答
而不是:
所有 chapters
↓
全部读入上下文
否则就失去了结构化 Skill 的意义。
项目性能文档把这一点称为降低"Discovery Loop Tax"。
安全方面需要注意什么?
book-to-skill 会解析:
PDF
EPUB
DOCX
HTML
RTF
因此如果文件来源未知,本质上仍然属于:
Untrusted Document Parsing
项目自己的安全文档也明确把文档解析代码列为主要攻击面之一。
建议:
- 使用普通 Linux 用户;
- 不使用 root 运行;
- 不让处理环境读取 SSH 私钥;
- 不挂载生产密钥;
- 限制文件目录;
- 对陌生文件使用隔离环境。
项目还支持按请求安装缺失依赖,因此处理未知文件时,也不建议无条件开启自动安装功能。
资料版权也需要注意
比较合适的资料包括:
- 自己编写的文档;
- 自己依法购买和使用的电子书;
- 公司授权内部资料;
- 开源许可文档;
- 公有领域作品。
Skill 生成以后,也不建议未经授权公开传播受版权保护书籍的大段原始内容。
是否需要 Docker?
个人使用:
不一定。
一个普通 Linux 用户环境就可以:
Claude Code
+
book-to-skill
+
Python
+
books
如果做团队内部文档自动转换,则可以进一步设计:
上传服务
↓
任务队列
↓
隔离 Worker
↓
book-to-skill
↓
Skill Output
这样更适合多人使用。
部署总结
virgiliojr94/book-to-skill 更准确的定位不是传统知识库,也不是普通 PDF 摘要工具,而是一个**"文档 → Agent Skill 编译器"**。
它把书籍和资料提炼为:
核心框架
+
章节
+
术语
+
Pattern
+
Cheatsheet
之后由 Claude Code、Copilot CLI、Amp 等 Agent 按需读取。
如果只是偶尔转换一本书,本地电脑已经足够;如果希望长期保存大量 Skill、远程运行 Agent,或者把项目文档和技术资料统一放进开发工作流,可以准备独立 Linux 环境。
莱卡云可以作为这种远程 AI 开发环境的一种候选,用于运行 Claude Code、book-to-skill、Python、Git 以及保存技术资料;已有其他 Linux 云服务器或自己的开发机也可以采用同样方式。
对于个人用途,2 核 4GB 可以起步,日常同时使用 Claude Code、Node.js 和多个项目时,4 核 8GB 会更加合适。相比单纯提高服务器配置,更值得关注的是资料整理方式、Skill 按需加载、文档安全隔离、Git 管理和备份。