← 返回技术实践

AIAgent

如何把 PDF 变成 AI 知识库?Book to Skill 完整使用教程(2026)

约 9 分钟阅读

笔电工作区上摊开的技术文档与笔记,象征把 PDF 转成 AI 知识库

最后更新于 2026 年 8 月 3 日。技术细节核实自 book-to-skill 官方仓库Agent Skills 开放标准

你买了一本《设计数据密集型应用》或团队内部的架构规范 PDF,读的时候觉得醍醐灌顶,三个月后写代码却想不起第七章讲过什么。常见补救办法都不理想:在 PDF 里全文搜索只能得到页码列表;把整本书贴进 Cursor 对话会迅速吃光上下文;自己整理的 200 行笔记又很少再打开。

Book to Skill 走另一条路:把 PDF(或 EPUB、DOCX、Markdown 文件夹)一次性蒸馏成符合 Agent Skills 标准的结构化技能包。之后在 Cursor、Claude Code 或 GitHub Copilot CLI 里,Agent 只加载与当前问题相关的章节,用作者原话里的框架和术语回答,而不是凭印象编造。

本文按「先理解价值 → 再装环境 → 跑通转换 → 日常调用」的顺序,给出 2026 年可用的完整实操路径。

为什么要把 PDF 变成 AI 知识库

普通 RAG(检索增强生成)把 PDF 切成碎片向量,问什么检索什么。这对 FAQ、合同条款很有效,但对技术书往往不够:书中的价值在于作者命名的框架、决策树和反模式,而不是某一段 512 token 的原文。

Book to Skill 的差异在于结构化蒸馏,而不是简单切块:

  • 提取书名、作者、章节树和核心心智模型;
  • 为每一章生成 800–1,200 token 的实操摘要(含代码示例与对照表,技术书会保留表格结构);
  • 额外生成术语表、模式清单和决策速查表;
  • 主文件 SKILL.md 只放索引与框架,章节文件按需加载

官方基准测试显示:针对真实技术书提问时,相比把整本书塞进上下文,按需加载可节省约 24×–51× 的 Token;整本书转换的一次性成本大约 1 美元量级(以 Claude Sonnet 计价),远低于每次会话重复上传 PDF。

Book to Skill 是什么

book-to-skill 是开源 Python 项目(MIT 协议),同时提供两种形态:

  1. Agent Skill 模式(推荐):克隆到 ~/.cursor/skills/~/.claude/skills/,在对话里执行 /book-to-skill ./my-book.pdf,由 Agent 驱动完整转换流水线;
  2. 纯 CLI 模式pip install book-to-skill 只安装文本提取引擎,不注册斜杠命令。

支持的输入包括 PDF、EPUB、DOCX、TXT、Markdown、reStructuredText、AsciiDoc、HTML、RTF,以及经 Calibre 转换的 MOBI/AZW。也可以指向文件夹或 glob,把多份文档合并成一个统一技能。

Book to Skill 从 PDF 到 Agent Skill 的四步流程示意图
提取 → 结构化分析 → 生成 SKILL.md 与章节文件 → 按需加载,避免整书进上下文

三种方案怎么选

方案优点缺点适合谁
整书贴进对话零配置Token 爆炸、易超限、无法长期复用一次性问答
向量 RAG适合海量文档、可增量更新难保留全书框架与术语一致性企业知识库、客服
Book to Skill保留作者框架;章节按需加载;可版本管理需一次性转换;扫描版 PDF 效果差技术书、规范、Runbook

如果你反复查阅同一本技术书或内部规范,且希望 Cursor 在写代码时自动引用书中的决策规则,Book to Skill 通常是性价比最高的选择。若你已经在用 GitHub MCP Server 连接仓库,可以把「书里的架构原则」和「仓库里的真实代码」放在同一套 Agent 工作流里。

环境准备

转换前建议先跑环境自检:

git clone https://github.com/virgiliojr94/book-to-skill.git
cd book-to-skill
python3 scripts/extract.py --check

--check 会列出各格式所需的提取器是否已安装,并给出缺失时的安装命令。

PDF 提取器怎么选

开始转换时,工具会询问书籍类型:

书籍类型推荐工具安装特点
散文为主、少表格代码pdftotext(Poppler)brew install poppler(macOS)几乎瞬时完成
技术书(代码块、表格、公式)Doclingpip3 install docling约 1.5 秒/页,保留 Markdown 表格

EPUB 推荐 pip3 install ebooklib beautifulsoup4;DOCX 用 python-docx。纯文本与 Markdown 无需额外依赖。

扫描版 PDF(图片页)没有可靠文字层时,任何提取器都会失败——请先 OCR 或换电子版。

安装 Book to Skill

Cursor 用户

git clone https://github.com/virgiliojr94/book-to-skill.git \
  ~/.cursor/skills-cursor/book-to-skill

重启 Cursor 或新开 Agent 会话后,在命令面板搜索 /book-to-skill。若你使用项目级技能,也可放到 .cursor/skills/book-to-skill/ 并与团队共享。

Claude Code 用户

git clone https://github.com/virgiliojr94/book-to-skill.git \
  ~/.claude/skills/book-to-skill

GitHub Copilot CLI 用户

git clone https://github.com/virgiliojr94/book-to-skill.git \
  ~/.copilot/skills/book-to-skill
# 新建技能后执行
/skills reload

跨 Agent 共用时,也可放在 ~/.agents/skills/

完整转换流程

假设你有一本技术 PDF:~/Books/ddia.pdf(《设计数据密集型应用》)。

步骤 1:发起转换

在 Cursor Agent 中输入:

/book-to-skill ~/Books/ddia.pdf designing-data-intensive-apps

第二个参数是技能 slug(可选);省略时从书名自动生成。

步骤 2:选择书籍类型

Agent 会询问 technical 还是 text-heavy。技术书选 technical,触发 Docling 提取以保留代码块与表格。

步骤 3:确认成本预估

转换前会显示 Token 预估与大致费用(完整技能通常约 1 美元/book)。确认后才开始生成,避免误触大额消耗。

步骤 4:等待流水线完成

内部流程为:多格式提取 → 合并全文 → Claude 分析章节结构 → 逐章摘要 → 生成 glossary / patterns / cheatsheet → 写入技能目录。临时文件在 /tmp/book_skill_work/,完成后自动清理。

一本 300–500 页的技术 PDF,Docling 提取可能需要数分钟;生成阶段取决于章节数量与 API 速度。建议在不会休眠的机器上跑——若你常用笔记本合盖中断任务,可考虑在云端 Mac 上完成长转换(见文末)。

生成物长什么样

转换完成后,技能目录结构类似:

~/.cursor/skills-cursor/designing-data-intensive-apps/
├── SKILL.md              # 核心框架 + 章节索引(约 4,000 tokens)
├── chapters/
│   ├── ch01-reliable-scalable-maintainable.md
│   ├── ch02-data-models.md
│   └── ...
├── glossary.md           # 术语表,带章节回链
├── patterns.md           # 技术与设计模式清单
└── cheatsheet.md         # 决策表与速查规则

SKILL.md 的 front matter 遵循 Agent Skills 规范,包含 namedescription,让 Cursor 在相关问题时自动加载该技能。章节文件不会默认全部进入上下文——只有当你问到具体主题时,Agent 才读取对应 chapters/ch05-*.md

日常怎么用

技能就绪后,用法与任何 Cursor Skill 相同:

# 加载核心心智模型
/designing-data-intensive-apps

# 按主题查询(Agent 会定位章节)
/designing-data-intensive-apps replication

# 直接指定章节
/designing-data-intensive-apps ch05

# 查看技能包含哪些章节
/designing-data-intensive-apps what chapters do you have?

写代码时的典型场景:「我要给订单服务加缓存,按 DDIA 的建议,先帮我对照一致性模型和失效策略。」Agent 会读取相关章节与 cheatsheet.md 中的决策表,而不是泛泛而谈。

若你同时配置了 MCP 工具(例如连接 GitHub 查 Issue),可以让 Agent 一边引用书中原则,一边拉取仓库现状——这与 OpenShip 部署排障 类长文档的「书 + 实操」组合思路一致:知识库负责「该怎么想」,工具负责「现在是什么状态」。

进阶用法

合并多份文档

/book-to-skill ~/papers/*.pdf ~/notes/architecture.md team-knowledge

适合把论文、ADR 和会议纪要合成一个团队技能,后续新文档可指向已有技能目录做增量折叠(fold-in)。

仅分析不生成

对大书不确定是否值得全量转换时,可先走 analyze-only 模式预览提取到的框架与章节树,再决定是否生成完整技能。

版本管理与共享

技能目录是纯 Markdown,可纳入 Git 仓库。团队可在 .cursor/skills/ 提交统一的「编码规范」「On-call Runbook」技能,新人克隆仓库即可获得相同知识底座。

与 create-skill 的关系

Cursor 自带的 create-skill 适合手写短技能;Book to Skill 适合已有长文档、需要自动结构化的场景。两者可并存:短流程用 create-skill,技术书用 book-to-skill。

故障排查

现象可能原因处理
提取后章节数为 0PDF 无「Chapter N」式标题Pro Git 等用书名号分节的书需手动指定章节;或换 EPUB
代码块变成乱码误选 text-heavy 提取技术书重装 Docling,重跑并选 technical
/book-to-skill 找不到技能未放入正确目录确认路径为 ~/.cursor/skills-cursor/ 并重启 Cursor
回答仍像幻觉Agent 未加载章节文件明确提问并带上章节 slug;检查 SKILL.md 索引
转换中途失败机器休眠或 API 超时在持续在线环境重跑;查看 /tmp/book_skill_work/ 日志

提取问题优先运行 python3 scripts/extract.py --check;生成问题检查 API 额度与网络代理。

小结

  • 想快速上手:克隆 book-to-skill 到 Cursor skills 目录 → /book-to-skill your.pdf → 技术书选 Docling。
  • 想长期复用:把生成的技能目录纳入 Git,团队共享;新文档用 fold-in 更新。
  • 想省 Token:依赖章节按需加载,不要每次把 PDF 全文贴进对话。

Book to Skill 把「读过但记不住」变成「写代码时随时可问的作者框架」。下一步若你需要在稳定环境中批量转换多本书、或边转换边跑其他 Agent 任务,可以考虑使用持续在线的云端 Mac 工作区,避免本地机器休眠中断长任务。

常见问题

Book to Skill 和向量 RAG 有什么区别?

RAG 按相似度检索文本片段;Book to Skill 先做结构化蒸馏,保留作者命名的框架、反模式和章节索引,再由 Agent 按主题加载整章摘要。前者适合海量非结构化文档,后者适合需要「按书中逻辑思考」的技术书与规范。

必须用 Claude 吗?

转换阶段的结构分析目前由 Claude 驱动(在 Agent 会话中完成)。生成后的技能是标准 Markdown,Cursor 里用任何模型调用都可以;Copilot CLI 与 Claude Code 同样兼容 Agent Skills 格式。

扫描版 PDF 能用吗?

不能可靠使用。book-to-skill 依赖文字层提取;扫描页需先用 OCR 工具处理,或改用出版社提供的 EPUB / 正版电子版。

转换一本书大概多少钱?

官方实测约 1 美元/本(Claude Sonnet 计价,视页数与章节数浮动)。这是一次性成本;之后每次查询只消耗按需加载的章节 Token,远低于重复上传整书。

长任务放在云端 Mac 上,不怕合盖中断

Book to Skill 转换 300 页以上的技术 PDF 时,Docling 提取与多轮 API 生成可能持续数十分钟。把任务放在持续在线的 Mac mini M4 云端节点上,可以避免笔记本休眠、本地环境缺依赖或网络切换导致的中断;转换完成的技能目录还可通过 Git 直接同步到团队仓库。

查看 Kvmkit 云端 Mac 套餐

需要技术支持或选型建议?

在使用 Mac 实例或 AI 开发工作流过程中遇到问题,可先查看帮助中心;下单与计价见定价页。