book-to-skill:把书编译成可以对话的专家
book-to-skill:把书编译成可以对话的专家
你曾经花了三周读完一本书,然后两周后被人问起,你只能说"我记得它很好,但具体……想不起来了"。
这不是你的记忆力问题。这是你和书籍之间的接口问题。
读书的真实成本
认知工作者面对技术类书籍时,有三堵必须撞上的墙:
PDF 搜索只返回页面命中而非推理结论;通用聊天回答会产生幻觉式的章节名;笔记导出后永远不会再次打开。
第三堵墙是最致命的。那些高亮、那些摘录、那些费心整理的读书笔记,在你合上书的那一刻,就开始进入衰减轨道。
你买了这本书,高亮了其中一半,然后两周后忘记了那些框架。重读不是答案——把书变成一个 Claude 可以在你工作时随时调用的 Skill,才是。
这就是 book-to-skill 要解决的问题。
它到底做了什么
用一句话说:book-to-skill 把书面知识转化为可行动的 Agent Skill,提取的是结构而非摘要。书籍蕴含着结晶的专业知识:花费数年发展出来的框架、原则和技巧。这个工具把那些知识提取成 Amp、Claude Code 或其他兼容代理可以反复调用的格式。
但"提取结构"是什么意思?
技能提取作者的命名框架、心智模型、原则、技巧和反模式——保留精确术语——并将其打包为 SKILL.md 加上分章节文件、词汇表、模式参考和速查表。
这与"生成一份摘要"有根本差异:
text
摘要(死的): Skill(活的):
"作者认为深度工作很重要" → /deep-work "optimal session length"
"书中提到了很多实用技巧" → /deep-work "anti-patterns"
"总体来说是一本好书" → /deep-work ch04
→ 每次调用只加载相关章节
核心机制:为什么 Skill 比直接塞 PDF 好
这是很多人第一次接触时会问的问题:我为什么不直接把 PDF 扔进 Claude 的项目上下文?
你可以——但每次对话都要预先消耗全部 token 预算。一本 400 页的书约有 20 万 tokens。使用 Skill 后,只有与你问题相关的章节才会加载——通常是 SKILL.md 核心文件(约 4K tokens)加上你所问的那个章节(约 1K tokens)。其余内容留在磁盘上,直到你需要。
从经济学角度看:
text
方式 A:直接上传 PDF
每次对话消耗:~200K tokens(整本书)
连续 10 次对话:~200 万 tokens 消耗方式 B:book-to-skill
编译一次成本:约 $1 美元(一次性)
每次调用消耗:~5K tokens(按需加载)
连续 10 次对话:~5 万 tokens 消耗
完整编译一本书的成本约为每本 1 美元,远少于每次会话都重新读取 PDF 的费用。
但成本只是一个维度。更重要的是知识质量。
零幻觉的根本原因
当你问 Claude "《深度工作》第 4 章讲了什么",Claude 的训练数据里有关于这本书的大量讨论——但那些讨论是压缩的、平均化的、经过无数转述之后的版本。
对于广为人知的书籍,Claude 有通用知识——但这些知识是压缩的,平均自整个互联网对该书的讨论,可能会产生关于具体引言或章节位置的幻觉。book-to-skill 基于你的实际副本工作。每个框架名称、每个反模式列表、每个章节编号都根植于你提供的文本,没有训练数据漂移,没有幻觉式的章节标题。对于 Claude 完全不了解的书来说尤其出色:小众技术参考书、公司内部文档、近期出版物、翻译作品。
这是 book-to-skill 的知识诚信承诺:你只需输入 /your-book-slug replication,Claude 就会读取对应章节并从实际内容中回答。没有幻觉,不用翻 PDF,书籍成为你工作流的一部分。
完整技术流程:从 PDF 到 Skill
text
输入文件(PDF / EPUB / DOCX / HTML / MD)
│
▼
┌─────────────────────────────────┐
│ Step 0: 格式检测 + 提取工具选择 │
│ ├── 技术类 → Docling (含表格) │
│ ├── 散文类 → pdftotext (极速) │
│ └── EPUB → ebooklib / zipfile │
└────────────────┬────────────────┘
│
▼
┌─────────────────────────────────┐
│ Step 1: 预飞成本估算 │
│ 输出:页数 / 词数 / token 估算 │
│ → 等待用户确认后再继续 │
└────────────────┬────────────────┘
│
▼
┌─────────────────────────────────┐
│ Step 2: 章节识别与结构提取 │
│ ├── 扫描"Chapter N"标题 │
│ ├── 识别命名框架(精确术语) │
│ ├── 提取反模式 / 警告 │
│ └── 构建主题→章节映射表 │
└────────────────┬────────────────┘
│
▼
┌─────────────────────────────────┐
│ Step 3: 并行生成各输出文件 │
│ ├── SKILL.md(核心,~4-5K) │
│ ├── chapters/ch0N.md(按需) │
│ ├── glossary.md(术语表) │
│ ├── patterns.md(框架参考) │
│ └── cheatsheet.md(速查卡) │
└────────────────┬────────────────┘
│
▼
~/.claude/skills/<slug>/
关于 PDF 提取速度,有一个值得知道的数据:在 103 页技术样本测试中,pdftotext 在 0.1 秒内完成(约 2.7 万 tokens),而 Docling 用时约 164 秒,token 数相近,但额外恢复了 48 个表格和 36 个代码块——当结构很重要时,这等待是值得的。
输出文件解剖:每一个文件为何存在
SKILL.md — 大脑的前额叶皮层
这是每次调用时最先加载的文件,约 4-5K tokens。它包含:
YAML frontmatter:name, description, allowed-tools, version 核心框架索引:书中所有命名框架的目录,用作者原始术语 主题→章节映射表:告知 Claude 该读哪个章节文件
SKILL.md 前置——压缩保留前 5000 tokens,最重要内容排在最前面。章节文件是按需加载的——它们在被加载之前不占用 Skill 预算。
关键设计原则:提取结构,而非摘要——捕捉命名框架、精确表述、反模式,而非章节概要。
chapters/ch0N.md — 长期记忆
每章约 800-1200 tokens,只有被询问时才加载。这是系统的精妙之处:启动时只预加载所有 Skill 的元数据(名称和描述)。Claude 只在 Skill 变得相关时才读取 SKILL.md,只在需要时才读取额外文件。
patterns.md — 可复用的操作手册
所有框架的完整版,写作方式是实践者视角:"当 Y 情况时使用 X",而不是"书中解释了 X"。
glossary.md — 精确术语的锚点
这一个文件解决了知识调用中最常见的问题:你记得概念,但记不住作者的原始表述。Skill 把"作者对这个词的精确定义"固化下来,防止你在引用时无意中扭曲含义。
实战操作:从安装到第一次对话
安装(两分钟)
Bash
# 在终端执行:
mkdir -p ~/.claude/skills/book-to-skill/scriptscurl -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
编译第一本书
Bash
# 在 Claude Code 会话中,输入:
/book-to-skill ~/Books/peak-ericsson.pdf# 系统会输出预飞估算:
# 📖 来源:peak-ericsson.pdf(PDF 格式)
# 📄 页数:~340 页 | 词数:~95,000 | Tokens:~127K
# 💰 预计费用:Claude Sonnet 4.5 → ~$0.80
# ⏱ 预计时间:~8 分钟
# 📁 将生成:SKILL.md + 12 章节文件 + 词汇表 + 模式参考
#
# 是否继续?[y/n]
确认后,系统自动完成编译,在 ~/.claude/skills/ericsson-peak/ 生成所有文件。
第一次调用
Bash
# 查看 Skill 包含的章节
/ericsson-peak "what chapters do you have?"# 查询核心框架
/ericsson-peak "deliberate practice components"
# 深入某章
/ericsson-peak ch06
# 查询反模式
/ericsson-peak "anti-patterns and common mistakes"
# 与阅读笔记结合
/ericsson-peak "feedback loop design"
# → 回答来自你实际拥有的这本书,精确,无幻觉
book-to-skill 真正厉害的地方:不只是"书"
虽然名字叫"book",但输入可以是任何结构化散文——同样的提取方式适用于你拥有并会反复阅读的知识:内部文档(架构决策记录、运维手册、入职指南),可以把整个 docs/ 文件夹整合为一个 Skill,边写代码边查询。
更强大的是多源合并能力:
Bash
# 将多篇论文合并为一个统一的 Skill
/book-to-skill ~/papers/paper1.pdf ~/notes/annotations.txt \
unified-cognitive-load-research# 把整个文档文件夹编译为一个 Skill
/book-to-skill ~/workspace/project-docs/ project-knowledge
# 用 glob 模式处理一批书
/book-to-skill "~/Books/learning-science/*.epub" learning-science-stack
# 给已有 Skill 追加新资料(不重新编译)
/book-to-skill ~/articles/new-study-2026.pdf \
~/.claude/skills/learning-science-stack
研究集群——一叠论文加上你自己的笔记,合并为一个统一的 Skill,随新材料到来持续更新。 6 如果你的需求是"我有 80 本书,想跨书搜索",NotebookLM 是正确的工具。book-to-skill 为不同的工作而生:你想在某个特定主题上深入钻研,把多个相关文档(论文、章节、笔记)整合到单一统一的 Skill 中,甚至随时间更新它。
知道什么时候不该用它
诚实地说,book-to-skill 也有边界。
book-to-skill 在你反复回到这些知识时才能发挥优势;如果只是一次性阅读,直接用 PDF Agent 就够了。
还有一个技术限制:该工具需要明确的"Chapter N / Capítulo N"标题来分割书籍;只有章节标题或使用罗马数字的书(以及未用 ebooklib 提取的 EPUB)不能干净地自动分割。
判断要不要编译一本书,用这个简单测试:
text
如果这本书是一个你会反复查阅的框架来源 → 编译
如果这是一本你只打算读一次的叙事类书 → 不需要编译
如果这是公司内部文档、设计规范、技术手册 → 强烈推荐编译
一次编译,永久调用:真实的复利路径
一本书编译完成后,它的价值不是线性的,而是随着使用次数增加而复利增长的:
text
第 1 次调用:
/ericsson-peak "deliberate practice definition"
→ 获得精确的原书定义,用于写作第 5 次调用:
/ericsson-peak "feedback requirements"
→ 核查某个具体论断是否有书中支撑
第 10 次调用(与另一本书对比):
/ericsson-peak "mental representations"
/newport-deep-work "attention residue"
→ 发现两书中一个从未被明说的隐藏联系
第 N 次调用(六个月后):
一个新问题出现,/ericsson-peak 给出的回答
仍然是原书的精确框架,没有漂移,没有遗忘
这是 book-to-skill 与所有其他阅读工具的根本差异:书的价值不会随时间衰减,而是随调用次数增加而累积。
不是阅读工具的升级,是与书籍关系的重构
框架变得可调用,词汇表变得可搜索,章节按需加载。
但这背后是一个更深的转变:
你和一本书的关系,从"我读过它"变成了"我随时可以精确调用它的任何部分"。
这不是效率的提升。这是知识从消费品变成了生产工具。
一本被编译成 Skill 的书,不再是一个你访问过的地方——它成为你认知工具箱里一个永远在线的专家。
你问它,它用原书的框架和术语回答你。没有扭曲,没有遗忘,没有幻觉。
我是【一只阿木木】——公开建造我的 AI 第二大脑。
普通人如何用 AI 搭建自己的知识操作系统?
一个程序员出身的知识工作者,公开记录自己如何用 AI 工具搭建个人知识系统、把读过的书和做过的项目变成可复用资产的全过程。
欢迎加入行动营👇获取更多Obsidian + AI数字大脑实践
我相信:在 AI 时代,每个普通人都该拥有一个自动生长的知识系统
欢迎关注【一只阿木木】🌊