发布日期:2026-08-17|适用版本:book-to-skill v1.4.0|目标读者:开发者与知识工作者

book-to-skill 是 Virgilio Junior 于 2026 年开源的文档转换工具,用于把技术书、文档目录或多份资料整理成符合 Agent Skills 开放标准的结构化技能。它先在本地提取 PDF、EPUB、DOCX 等文件,再生成按需加载的 SKILL.md、章节文件、术语表和速查表;官方 2026 年基准显示,回答单个问题时约加载 5,000 Token,相比整本塞入上下文可减少 24 至 51 倍。本文说明安装、转换、验证、更新及版权边界,并给出文本型 PDF 与技术型 PDF 的工具选择方法。

book-to-skill 是把一本书或一组结构化文档转换为 Agent Skill 的开源工具,核心价值是让智能体按问题加载相关章节,而不是每次重新读取整份文档。

book-to-skill 会生成什么

book-to-skill 生成的是可检索、可按需加载的知识结构,而不是一篇普通摘要。 转换结果遵循 Agent Skills 的 SKILL.md 结构,可被支持该开放标准的智能体宿主识别。

典型输出包含:

文件

用途

官方给出的典型规模

SKILL.md

核心心智模型和章节索引

约 4,000 Token

chapters/ch01-*.md

分章知识,按问题加载

每章约 1,000 Token

glossary.md

术语及章节引用

约 1,500 Token

patterns.md

技术、算法和设计模式

约 2,000 Token

cheatsheet.md

决策表和快速规则

约 1,000 Token

这种结构适合技术书、内部运行手册、架构决策记录、研究论文集合和设计规范。它不适合需要逐字引用原文、严格保持版式或依赖大量扫描图像的任务。

为什么不直接把 PDF 放进上下文

把整本 PDF 放进上下文操作简单,但会重复消耗 Token,并让相关章节与无关内容共同竞争注意力。 book-to-skill 把一次性的整理成本放在转换阶段,后续查询只加载核心索引和命中的章节。

根据项目官方 performance.md 在 2026 年公布的测试:

  • 244 页的《Think Python 2》包含 119,264 Token;按需查询约使用 5,000 Token,约为整本输入的 1/24。

  • 371 页的《Working Backwards》包含 175,253 Token;按需查询约使用 5,000 Token,约为整本输入的 1/35。

  • 256,287 Token 的《AI Engineering》在目标问题查询中约使用 5,000 Token,约为整本输入的 1/51。

这些数字是项目维护者用 tiktokentools/discovery_tax.py 测得的项目基准,不代表所有书籍、模型或问题都能得到相同比例。

如何安装 book-to-skill

最短安装路径是通过跨智能体 Skills CLI 添加官方仓库,手动安装则应放入当前宿主对应的技能目录。 官方 README 截至 2026 年 8 月给出的命令如下:

npx skills add virgiliojr94/book-to-skill

以 Claude Code 的目录结构为例,也可以手动克隆:

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

不同宿主的目录并不相同:GitHub Copilot CLI 使用 ~/.copilot/skills/,跨智能体或 Amp 场景通常使用 ~/.agents/skills/。安装前应以所用宿主的最新文档为准。

如何把技术书转换成 Skill

一次可靠的转换包含环境检查、资料分类、执行转换、验证输出和试问五个步骤。 不要直接处理来源不明或无权使用的电子书。

  1. 检查提取器是否齐全:

     python3 scripts/extract.py --check
  2. 判断 PDF 类型。以文字为主的书可使用 pdftotext;包含代码、表格和公式的技术书更适合 Docling。扫描版 PDF 必须先做 OCR。

  3. 在智能体中执行转换:

     /book-to-skill ~/Documents/books/example.pdf example-book
  4. 检查生成目录是否包含 SKILL.mdchapters/glossary.mdpatterns.mdcheatsheet.md

  5. 用书中一个明确主题试问,例如:

     /example-book replication

如需把多篇论文和笔记合并为一个技能,可以一次传入多个路径:

/book-to-skill ~/papers/paper1.pdf ~/notes/export.txt unified-research

文本型 PDF、技术型 PDF 和扫描件怎么选

提取器应按文档结构选择:速度优先选文本提取,结构保真优先选 Docling,扫描件先做 OCR。 官方 2026 年对一份 103 页技术 PDF 的测试显示,pdftotext 用时约 0.1 秒,但没有保留表格和代码块;Docling 用时约 164 秒,保留了 48 个表格和 36 个代码块。

文档类型

建议工具

主要取舍

文字型 PDF

pdftotext

快,但可能压平复杂结构

技术型 PDF

Docling

较慢,可保留代码与表格

扫描型 PDF

OCRmyPDF 后再提取

必须先建立文本层

EPUB

ebooklib + Beautiful Soup

章节结构通常较完整

DOCX

python-docx

适合内部文档和规范

扫描件可先执行:

ocrmypdf input.pdf output.pdf

如何更新、共享和管理生成的 Skill

已有 Skill 可以通过 fold-in 模式加入新资料,但第三方版权书籍生成的技能应保持私有。 更新命令把新资料路径和现有技能目录同时传入:

/book-to-skill ~/articles/new-paper.pdf ~/.claude/skills/project-knowledge

项目 v1.4.0 支持在转换后选择发布到 GitHub,默认创建私有仓库;只有明确输入 public 才会创建公开仓库。公开发布前必须确认源材料属于自有内容、内部授权材料或允许再分发的开放许可内容。

团队还需要考虑素材存储和技能分发。资料量较大时,可以把原始文档与生成产物分层存放;例如七牛云的对象存储 Kodo 可保存原始文件和版本化产物,而 LinSkills 可作为 OpenClaw 技能的发现入口。无论使用哪种平台,访问权限都应继承源文档的保密等级。

book-to-skill 的限制与风险

book-to-skill 降低的是重复检索成本,不能保证回答永不出错,也不能替代版权与安全审查。 实际使用时应关注以下边界:

  • 章节识别依赖文档目录和标题结构,格式异常时可能需要人工调整。

  • 云端模型处理提取文本时,数据仍受对应模型服务商的数据条款约束。

  • 生成内容是结构化衍生笔记,不意味着获得了公开传播原书内容的权利。

  • 从未知文档生成技能可能把提示注入或工具调用标记带入指令层,应在启用前检查生成文件。

  • 版本升级可能改变命令、输出结构或发布流程,应核对官方 Changelog。

截至 2026 年 8 月 17 日,GitHub API 显示该项目有 22,238 Star、2,348 Fork 和 28 个开放 Issue,最新正式版 v1.4.0 发布于 2026 年 8 月 10 日。这些指标说明关注度较高,但不能替代对代码、安全性和维护质量的独立评估。

常见问题

Q:book-to-skill 支持哪些格式?

官方文档列出的格式包括 PDF、EPUB、DOCX、TXT、Markdown、reStructuredText、AsciiDoc、HTML、RTF,以及需要 Calibre 支持的 MOBI、AZW 和 AZW3。不同格式需要的可选提取器不同。

Q:转换后的 Skill 会自动上传原始 PDF 吗?

不会。项目说明提取过程在本地运行,工具本身不上传原始文件;但若后续由云端模型分析提取文本,数据处理仍遵循模型服务商的条款。

Q:扫描版 PDF 为什么无法转换?

扫描版 PDF 往往只有页面图像,没有可提取的文本层。应先用 OCRmyPDF 等工具生成文本层,再把 OCR 后的文件交给转换器。

Q:生成的 Skill 可以公开分享吗?

只有在拥有传播权限时才适合公开。第三方版权书籍生成的技能应保持私有;自有文档、已授权内部材料和开放许可内容也必须遵守各自的许可范围。

Q:book-to-skill 能完全消除幻觉吗?

不能。按需加载真实章节能减少缺少依据时的猜测,但回答质量仍受提取准确度、生成结构、模型能力和问题表达影响,关键结论应回查原文。

结论

book-to-skill 的关键思路是把“反复读整本书”改为“一次结构化、后续按需加载”,适合经常被查询的技术资料和内部知识库。官方 GitHub 仓库与性能文档提供了安装、格式支持和 Token 基准;在生产使用前,还应验证提取质量、安全边界和版权许可。

本文内容基于 2026 年 8 月 17 日的 GitHub API、项目 README、Usage 与 Performance 文档,项目仍在快速迭代,建议使用前核对最新 Release 和 Changelog。

参考资料