工作日早上 7 点读 AI,周日早上 8 点读周报订阅邮件

METAL LAB

技术书PDF转AI技能后,Token消耗最多可省51倍

book-to-skill:一款开源转换工具,可用于Claude Code、Copilot CLI、Amp

이미지: METAL LAB 생성

摘要

  • 开发者virgiliojr94公开了开源工具book-to-skill,可以把技术书PDF或文档文件夹转换成AI代理可用的技能
  • 据实测数据,相比把整本书塞进上下文的方式,回答同样的问题所需token能减少24到51倍
  • 该工具基于GitHub Copilot CLI、Amp、Claude Code共同采用的开放Agent Skills标准(SKILL.md)运行
저장소
github.com/virgiliojr94/book-to-skill
제작자
virgiliojr94
라이선스
MIT (변환기 코드·스킬 정의에만 적용, 처리 대상 문서에는 미적용)
호환 호스트
GitHub Copilot CLI, Amp, Claude Code
토큰 절감
실제 책 기준 24배~51배 (책 전체를 컨텍스트에 넣는 방식 대비)
기본 명령
/book-to-skill <경로|폴더|글롭> [스킬이름]
표준 문서
SKILL.md (오픈 Agent Skills 포맷)

与其重新翻书,不如直接问AI

厚厚的技术书买回来读完一遍,三个月后往往连第七章讲了什么都记不清了。与其每次都要重新翻开书本、翻找目录,不如把整本书的内容交给AI代理保管,需要时随时提问——github.com/virgiliojr94/book-to-skill仓库公开的这款开源工具正是为此而生。这是开发者virgiliojr94打造的book-to-skill,一款能把技术书PDF、文档文件夹或多份资料合集转换成单一"代理技能"的转换器。

厚重的PDF原文经过转换后按章节拆分保存,收到提问时只调用其中需要的那一章。最后一个节点被小小地标注在"整本书"这个大虚线框内,显示出实际使用量相对于原文全文而言非常小。

为什么不能直接把PDF扔进去

如果让AI代理直接读取整份PDF,代理每一轮对话都要重新翻一遍目录、再回头查找所需部分。也就是说,为了回答一个问题,每次都要重新处理整本书篇幅的token。book-to-skill的设计思路是,把这种"结构化成本"只在转换阶段支付一次。它会把书拆分成按章节保存的文件,只有在真正问到某个主题时才调用对应章节。据开发者介绍,这样一来,回答同一个问题所需的token比把整本书塞进上下文的方式少24到51倍。

它是如何运作的

整体结构分为两部分。一部分是确定性的Python提取器,负责把文档转换成干净的文本和元数据;另一部分是基于规范的生成器,由代理依照SKILL.md文档把这些文本组装成结构化的技能。这个技能运行在github-copilot、Amp、Claude Code共同采用的开放Agent Skills标准之上,因此不管用这三个宿主平台中的哪一个,读取的都是同样的SKILL.md格式。

不同格式优先尝试的提取工具也不一样:据介绍,表格和代码块较多的技术书会自动选用Docling,以散文为主的书籍则会选用速度更快的pdftotext。至于只有页面图像的扫描版PDF,由于本身就没有可提取的文本,转换器会先检查开头几页,然后直接停止并说明原因。这种设计不会生成一个空技能就草草了事,而是引导用户先做OCR处理。

怎么上手使用

从哪里开始 —— 如果你正在使用GitHub Copilot CLI、Amp、Claude Code中的任意一个,可以按照仓库中的安装文档(docs/install.md)操作,把book-to-skill转换器接入对应的宿主平台,这就是开始的第一步。

分步使用流程

  1. 在代理聊天窗口输入/book-to-skill <文件路径|文件夹|通配符> [技能名称]命令。可以传入单个文件、整个文件夹,或多个文件的列表。
  2. 转换器会判断文档格式,自动选择合适的提取工具来抽取文本和元数据。
  3. 生成器把提取结果组装成SKILL.md和按章节划分的文件,保存到对应宿主平台的技能目录中。
  4. 之后只需以/书名-slug 问题内容的形式提问,代理就会只调用所需的章节文件,基于实际正文内容作答。

谁可以使用 —— 支持开放Agent Skills标准的宿主平台,比如GitHub Copilot CLI、Amp、Claude Code都可以使用,该工具采用MIT许可证,免费公开。不过书籍内容本身并不包含在仓库里,只是把用户已有的文件进行转换,因此版权和使用条款方面的责任由用户自行承担。

宿主平台技能保存路径
GitHub Copilot CLI~/.copilot/skills/<slug>/
Amp(跨代理)~/.agents/skills/<slug>/
Claude Code~/.claude/skills/<slug>/

还能做什么 —— 虽然工具名字带有"书"字,但只要输入的是结构化的散文内容,用什么都可以。经常需要反复查阅的内部手册、规章制度、团队文档合集,同样可以用这种方式转换成技能。仓库中介绍的一个案例是,有人把一本讲开发者体验(DevEx)的书转换后,用作300多名工程师问卷调查的参考资料。

编辑视角

这款工具真正有意思的地方,不在于book-to-skill本身,而在于它所依托的标准。正如8月初《GitHub Copilot应用支持斜杠命令,简化工作流程》一文所述,Copilot应用正朝着自动管理上下文的方向扩展;而《AWS在Bedrock自动推理策略中引入开源Agent Skills》一文也提到,Anthropic提出的Agent Skills格式正把AWS这样的基础设施厂商也拉了进来。book-to-skill恰好站在这两股潮流的交汇点上——这意味着,个人用户一本书的知识,也能用和企业级技能相同的SKILL.md语法来组织。

实际用过这类工具的人,体感往往大同小异。把整份PDF直接扔进去的方式,前几次用起来很方便,但随着对话变长,重复翻查同一份目录的成本会不断累积。按章节拆分、按需调用的结构虽然消除了这种累积成本,但代价是需要额外做一次前期转换工作。如果是需要控制token成本的团队,不妨从经常查阅的内部文档开始试着转换成技能;反过来,如果只是偶尔查一次的资料,那就没必要费这个功夫去转换了。

提前筛掉扫描版PDF并说明原因的设计也值得关注。与其生成一个空技能、日后才发现问题,不如在转换前就停下来,这样在实际使用中能省不少时间。如果未来支持Agent Skills标准的宿主平台继续增多,这类面向个人的转换工具想必也会随之增加。

本文相关代码

评论