买了本好书,读完三个月后想不起第 7 章讲什么。搜 PDF 只得到页码,让 Agent 凭记忆答容易幻觉,手写笔记又再也不打开。book-to-skill 的做法是:把书蒸馏成结构化 skill,Agent 按需加载真实章节,而不是靠「记得大概」。

项目:virgiliojr94/book-to-skill(MIT)。互补的一篇:mattpocock/skills——一个管「懂什么」,一个管「怎么干」。

三步

  1. 指向/book-to-skill ./my-book.pdf(文件、文件夹、glob 都行)
  2. 蒸馏:提炼成框架、决策规则、反模式、逐章文件——是结构,不是摘要
  3. 使用/my-book replication,Agent 读对应章节再回答

生成结构(~/.claude/skills/<slug>/

文件 用途 大约大小
SKILL.md 核心心智模型 + 章节索引 ~4,000 tokens
chapters/ch01-*.md 每章一个文件,按需加载 ~1,000 tokens/章
glossary.md 术语表,带章节引用 ~1,500 tokens
patterns.md 技术、算法、设计模式 ~2,000 tokens
cheatsheet.md 决策表与速查 ~1,000 tokens

不问的章节不占 skill 预算。实测比整本书塞进上下文省约 24×–51× tokens。

亮点

  • 格式广:PDF、EPUB、DOCX、TXT、Markdown、reST、AsciiDoc、HTML、RTF、MOBI/AZW
  • 不限于书:内部文档、ADR、runbook、设计系统、论文、RFC / API 规范都适用。经常重新打开、恨不得背下来的材料,就是候选
  • 开放标准:Agent Skills(SKILL.md),兼容 Claude Code、GitHub Copilot CLI、Amp

PDF 提取

按书型选工具(提取前会问是技术书还是文字书):

书型 工具 速度
文字类 pdftotext(poppler) 即时
文字类备选 pypdf / pdfminer.six 即时
技术类(代码 / 表格 / 公式) docling 约 1.5 秒/页,保真表格
1
python3 scripts/extract.py --check

一条命令列出各格式缺什么、怎么装。

示例

1
2
3
4
5
6
7
8
9
10
11
# 多文件合成一个 skill
/book-to-skill ~/papers/paper1.pdf ~/notes/export.txt unified-research

# 整个文件夹
/book-to-skill ~/workspace/project-docs/ project-knowledge

# glob
/book-to-skill "~/books/*.epub" my-library

# 并入已有 skill
/book-to-skill ~/articles/new-paper.pdf ~/.claude/skills/project-knowledge

调用(Copilot CLI 需先 /skills reload;Claude Code / Amp 下个会话生效):

1
2
3
/designing-data-intensive-apps              # 核心心智模型
/designing-data-intensive-apps replication # 按主题查
/designing-data-intensive-apps ch05 # 第 5 章

评价

  • 适合:架构书、规范、内部文档——把「读过」变成可检索资产
  • 对比 RAG:RAG 回片段,这个回结构化章节,路径更简单
  • 注意:效果取决于蒸馏质量和切章;技术书建议用 docling,避免表格 / 公式失真