⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/book-to-skill-personal-knowledge/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

读完就忘这件事,它换了个解法

你买过一本很好的技术书,认真读完,三个月后你甚至想不起来第七章讲过什么。

于是只剩三个笨办法。

搜 PDF,得到一列页码,还得一页页点进去找。直接问 AI,它给你一个听起来很对的答案,但你分不清那是书里写的还是它编的。自己记笔记,最后得到一份两百行、再也不会打开的文档。

GitHub 上有个项目叫 book-to-skill,想换第四条路。把书「编译」成一个技能,装进你的编码助手,你要用哪一章,它就去取哪一章。

它四个多月长到 3 万多个 Star,MIT 许可,最近还在更新。

仓库首页,右上角展示截图时的 Star 数

截图右上角展示了当时的 Star 数,最新数字可以到仓库查看。

Booklin 巫师把书页变成有序结构

它的官方吉祥物是个紫袍巫师,叫 Booklin。书页散成星点,落成整齐的方格。

先看清楚它到底吐出来什么

它转出来的不是摘要,也不是读书笔记。官方的原话是「是结构,不是总结」。

跑完一遍,你拿到一个技能目录,五类文件。

  • SKILL.md,核心心智模型加章节目录表,约 4,000 token,常驻;
  • chapters/ch<NN>-*.md,一章一个文件,每个约 1,000 token,按需加载;
  • glossary.md,术语表,约 1,500 token;
  • patterns.md,技巧、算法与设计模式,约 2,000 token;
  • cheatsheet.md,决策表与速查规则,约 1,000 token。

有个细节值得单独拎出来。章节文件在你没问到它之前,不占用技能预算。

网上的示意图常把索引画成独立的 INDEX 文件、把模式画成目录,实际目录表就在 SKILL.md 里,五类里只有 chapters 是目录。

官方真实技能结构

一章一章地取,别整本书往里倒

看它怎么用一次,就懂了。

拿 DDIA 举例。你敲一句 /ddia replication,它会先读入口文件的索引,发现复制是第五章,然后只把第五章加载进来,基于原文回答你。想深挖某一章,直接 /ddia ch05。

整个过程里,那本书的全文没进过对话。真正占上下文的,只有入口文件加当前这一章。

从提问到只加载第五章的取用流程

第一道岔路藏在「技术书」三个字里

转换开始前它会先问一句,这本是技术书还是文字书?

因为两条路的解析工具不一样,而这个选择决定的是保真度,不是速度。

文字为主的书走 pdftotext,几秒钟跑完,出来的是一大段纯文本。技术书走另一个叫 Docling 的工具,慢一些,一页大概一两秒,但表格和代码块能原样保留成 markdown。

官方拿一本 103 页的技术 PDF 做过对比。pdftotext 花了 0.1 秒,但书里 48 张表和 36 个代码块一个都没留下;Docling 花了 164 秒,表和代码块都在。

约 1640 倍的耗时差别听着吓人,可技术书丢了表格和代码,转出来就不是那本书了。

两条解析路径

同一个技能,可以养四遍

除了默认的完整转换,它还有另外三种用法。

  • 只分析不生成,先出一份分析报告,看看这本书能提出什么结构;
  • 从笔记生成,手上已有整理好的笔记,可以跳过提取,直接让它组织成技能;
  • 增量合并,把新材料指给已有的技能目录,新内容和章节、索引一起更新。

第三种对团队最有用。内部文档一直在变,入职手册可能三个月就过时,你不用重新转,把新的指给它就行。

转换完还有个可选项,把技能推到 GitHub。默认私有,只有你明确说公开才会公开,别人装它就是一行命令的事。

四种转换方式

它不只认书

名字里带 book,但输入其实是任何结构化文字材料。官方列了四类,都很贴近真实工作。

  • 公司内部文档,架构决策记录、运维手册、新人指南,整个 docs 目录一次转成一个技能;
  • 品牌与设计规范,六十页的品牌手册转成技能,团队直接用问的,不用再翻 PDF;
  • 研究资料,一叠论文加你自己的笔记合成一个技能,新论文来了还能追加;
  • 规范与标准,RFC、API 契约、合规文档,常年要查、但从来没背下来的那些。

官方 README 里有句话判得很准。一份文档你反复打开到恨不得能背下来,它就是候选。

格式支持得也宽。PDF、EPUB、DOCX、HTML、RTF、TXT、Markdown、reStructuredText、AsciiDoc 都可以;Kindle 的 MOBI、AZW、AZW3 也行,但这几种需要电脑上装个 Calibre。纯文本类不用装任何额外东西。

官方 README「不止于书籍」一节的中文翻译截图

先说钱,这本书的一生只付一次编译费

成本这笔账,token 数是官方自己测的,价格我按 DeepSeek V4.1 Flash 重算了一遍。

官方实测了三本书的输入加输出。《Think Python 2》244 页,15.5 万加 2.8 万;《Working Backwards》371 页,22.8 万加 1.9 万;《Pro Git》501 页,29.8 万加 2.3 万。官方自己按 Claude Sonnet 4.5 估过一次,一本一美元上下。

换成 DeepSeek V4.1 Flash 的官方价格,百万 token 输入 1 元、输出 4 元,空闲时段,高峰翻倍。同一批 token 数算下来,三本书是两毛七、三毛、三毛九。这个钱只花一次。

用起来更省。问一个问题,加载的是常驻入口加一个章节,大概 5,000 token,按上述空闲时段价格算,这部分输入费用不到一分,输出另计;把整本书塞进上下文问同一个问题,按书的大小要烧十几万到二十几万 token,而且下次再问还得重新烧。

两边放一起比,官方测出的节省幅度是 24 到 51 倍,书越大省得越多。

一次性成本与重复提问成本

这里有个口径要提醒。24 到 51 倍对比的是「把整本书塞进上下文」,不是对比 RAG。官方性能页另外给了跟「发现式循环」比的一组数字,只有 2.4 到 15.6 倍。

所以这本书的一生,只付一次编译费。 你把它当成一笔投资。问得越多越划算,按官方样例,把重复加载整本书的开销算进去,往往问几次就能抵掉转换成本;具体还取决于书的大小、输出量与缓存。

它不是 RAG 的替代品,是另一种用书的方式

官方 FAQ 讲得很清楚,换成好懂的说法。

RAG 是索引一整排书架,擅长「帮我找出提到 X 的那一段」,宽而浅;book-to-skill 是吃透一本书的书脊,擅长「这个作者的框架分别什么时候用」,窄而深。

官方自己也承认,如果你手上有八十本书要跨库搜,NotebookLM 更合适。

还有一条理由挺妙。热门书确实在模型训练数据里,但那是被整个互联网压缩过的版本,章节位置和原话都可能记错;而你手上这一本,框架名、反模式清单、章节编号都对得上你读的那一版。

书架 vs 书脊

装它只要一行,难的是装对

npx skills add virgiliojr94/book-to-skill

或者克隆仓库,Claude Code、Copilot CLI、Codex 共用的跨宿主目录是 ~/.agents/skills/book-to-skill。

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

技能走 Agent Skills 开放格式,官方点名的宿主有 Claude Code、GitHub Copilot CLI、Amp、Codex、Hermes Agent 和 OpenClaw,读的都是同一个 SKILL.md;Copilot CLI 装完要跑一次 /skills reload。国内助手也在兼容,装之前先确认自己工具的技能目录。

转之前先做依赖自检,看每种格式的解析器缺哪个。

python3 scripts/extract.py --check

然后把书指给它。

/book-to-skill ./my-book.pdf

也能指文件夹,或一次传好几个文件合成一个技能。跑完会写进技能目录,新开一次会话才会被识别。

转公司文档之前,先把这条线看清楚

有两个地方最容易翻车。

第一,扫描版 PDF 不行。每一页都是图片、没有文字层的书,提取工具没东西可抓。它会先检查前几页,发现是扫描件就立刻停下来,而不是跑完一整本给你一个空技能。想转这种,得先自己过一遍 OCR,ocrmypdf 这类工具就行。另外,画在示意图、图表里的文字,任何格式都提不出来。

第二,隐私边界的方向别记反。提取在本地,生成在云端。提取完全在你机器上跑,文件不会被上传。但生成技能这一步,读文本的是你的编码助手;模型跑在云端,文本就按那家服务商的数据条款走。转公司内部文档前先想清楚这一点。

本地与云端的分界

版权上也补一句。项目本身不带一页书的内容,只是个转换器;生成的技能是结构化笔记,规范里写明不许照抄原文段落。第三方版权书转出来的技能自己用就好,别公开发布;内部文档、自己写的东西、开源许可的材料,在许可范围内分享没问题。

该用的时候用,别为了新工具而折腾

判断标准只有一条。这份材料,你会不会反复打开。

会反复查的技术书、天天要翻的内部文档,转一次以后随时问,很值。官方仓库里有个案例挺有意思。有人把一本讲开发者体验的书转成技能后,据此做了一份问卷,发给三百多个工程师。

反过来,看一遍就过去的文档没必要折腾,直接丢给 AI 读就行。

仓库地址是 https://github.com/virgiliojr94/book-to-skill

文章目录
  1. 1. 读完就忘这件事,它换了个解法
  2. 2. 先看清楚它到底吐出来什么
  3. 3. 一章一章地取,别整本书往里倒
  4. 4. 第一道岔路藏在「技术书」三个字里
  5. 5. 同一个技能,可以养四遍
  6. 6. 它不只认书
  7. 7. 先说钱,这本书的一生只付一次编译费
  8. 8. 它不是 RAG 的替代品,是另一种用书的方式
  9. 9. 装它只要一行,难的是装对
  10. 10. 转公司文档之前,先把这条线看清楚
  11. 11. 该用的时候用,别为了新工具而折腾