编程 book-to-skill:5000Star,把一本书编译成AI可复用的Skill,支持9种文档格式和布局感知提取:开源项目实践

2026-09-05 19:02:10

book-to-skill:5000Star,把一本书编译成AI可复用的Skill,支持9种文档格式和布局感知提取

我们每天接触的知识载体太多了:PDF 电子书、EPUB、DOCX 文档、团队内部的 Markdown 笔记……这些文件都会面临一个同样的问题,那就是翻了好几遍就是记不住。

你想让 AI 帮你记住它们,但是格式五花八门,有的甚至连标题都没有。更麻烦的是不同的格式提取效果差别很大:纯文字的书籍可以瞬间提取,但是技术书籍里边的表格、代码块却全部丢失。

最近在 GitHub 上刷到了一个叫做 book-to-skill 的项目,可以支持9种不同的文档格式,并且会对技术书籍进行布局感知提取,已经有5000个 Star 了。

这是目前所知的比较聪明的让 AI 学会一本书的方法。并不是让你读得更好,而是让 AI 学会这本书,直接学会书中的结构。

实际使用体验

用 Open Code 命令来执行 /book-to-skill E:\code\pdf\py.pdf,模型用的是 DeepSeek。给的是 Python 算法的 PDF,选择对应类型后它就开始识别提取了。等了3分钟之后解析完毕就可以提问了,相关的章节都已经找到了,可以继续追问。

把书编译成一个完整的Skill文件

那么编译出的是什么呢?看下实际生成的文件结构。

01 核心框架文件SKILL.md 包含了心智模型和章节索引。这是平时加载的核心部分,当你提出一个问题时,它会去读取相应章节的内容。

02 按需加载的章节文件chapters/ 目录里每章对应一个文件,每章大约1000 tokens(1 token 约等于半个汉字)。一本400页的书差不多有20万 tokens。book-to-skill 采用按需加载机制,启动时只读取 SKILL.md,只有当你询问具体内容时才会去加载相关章节文件。如果每次对话都把整本书塞进上下文,成本会非常高。

03 术语表、模式库glossary.md 按照字母顺序排列出所有的术语和章节索引。patterns.md 收集所有的技术、算法和设计模式。

04 决策速查表cheatsheet.md 相当于一本书的"导航页",把重要框架、决策规则和常见反模式集中整理起来,需要时可以直接定位到相关内容。

05 9种格式的支持:格式支持很全:PDF、EPUB、DOCX、MOBI/AZW/AZW3 五种电子书格式,再加上 TXT、Markdown、reStructuredText、AsciiDoc、HTML、RTF 等一共9种。

和直接给PDF有什么区别

直接把 PDF 文件给 DeepSeek,是它用来做搜索,在原文里找到关键词并告诉你所在页码范围。book-to-skill 是提取,在编译的时候把作者花几年时间建立起来的框架、命名、心智模型都抽取出来。

你可以看到,当问到"Python递归算法"的时候,得到的回答是"这本书上有关于递归算法的章节",而不会是一堆页码。

效率对比

官方给出的对比是:103页的技术书籍,用普通的文本提取工具(pdftotext)只需要0.1秒就可以完成,但是表格和代码块全部丢失了。而用布局感知工具(Docling)则需要花费164秒的时间,花的时间多了一些,但是保留了48个表格和36个代码块,关键信息都被保留了下来。

如何使用

直接打开 Open Code 然后说:

帮我安装 https://github.com/virgiliojr94/book-to-skill

当然,Claude Code、Codex 这些也可以。在 Open Code 中直接调用:

~/path/to/your-book.pdf/book-to-skill
/your-book-slug replication 查询主题
/your-book-slug ch05 深入章节

注意事项

章节识别并不是万能的,一般要看到像"Chapter 1"或者罗马数字这样的明显的章节标志。《Moby-Dick》这样的裸标题排版,或者《Pro Git》这样的文档,可能无法正确拆分成章节。

对于技术 PDF,直接提取文本容易丢失标题层级和文档结构,因此建议用 Docling 按技术文档模式来解析。第一次用的时候可能会踩到一个坑:拿一本章节标题不符合规范的书来测试,结果整本书的内容被当作一章。后来才发现要使用 technical 模式,虽然速度慢一些,但是结构比较完整。

以前想要让 AI 帮自己读一本书的话,只能把 PDF 塞进上下文里,或者搭建一个 RAG。即使跑通了,每次对话都会消耗很多的 Token,而 AI 一般只能给出零散的信息,不能完整地解释整本书的结构。

book-to-skill 的思路不同,它是把一本书先编译成可以复用的 Skill。之后提问的时候,只需要用很少的 Token 就可以调用到书中知识结构了。拿到的不是某几页的内容片段,而是一本书完整的思维框架。这样以后遇到问题,就不用反复翻 PDF 找答案了。

开源地址:https://github.com/virgiliojr94/book-to-skill

推荐文章

程序员茄子在线接单