我书架上一直摆放着那本《设计数据密集型应用》,买回来之后两年时间大概翻阅了三遍,不过每次一翻到第五章那个分布式数据的内容就容易卡壳,后面那几章干脆连碰触都没碰触过,后来要是想查个什么概念,还得从PDF文件里去进行搜索关键词,搜索出来的结果就只是一堆页码列表,根本不是想要的答案。
这种事情其实太普遍了,你买一本好书读完一遍,三个月之后第七章叫什么名字你都记不住了,去搜索PDF所给出的只是页码而不是理解,要是去问AI它要么给你胡编乱造一个要么就说没有这内容,自己记笔记动手写两百行文档然后就再也不打开看了。我有个做后端架构的朋友,书架上摆放了七八本分布式系统的书全都是这个状态,每次遇到问题先去Google搜索半天,搜到的回答跟书里的论述经常是相互矛盾的,因为网上的讨论属于二手资料而书是原作者亲自写的,他后来干脆放弃查书直接去问同事了。
上周在GitHub Trending上看到一个叫book-to-skill的项目,6100颗星760多个fork,做的事极其简单粗暴,把你的技术书PDF直接投喂进去,它就能给你自动生成一套完整的Agent Skill,安装到Claude Code或者Copilot CLI里面,以后你问这本书的任何内容,AI直接从原文进行回答,不编不猜,并且章节按需加载而不是一口气全塞入上下文。
这样一来,就是让你的AI助手真正读完了一本书,而不是只会那种百度百科级别的模糊概述。
说个有意思的点。Agent Skills,Anthropic去年十月推出来的,十二月协议规范正式发了,跟MCP走同一条路,从Claude专属往跨平台通用去发展。Skills干嘛的?不是让AI变聪明,聪明这方面它已经够聪明了,是让AI变专业,带着你那本书的完整知识体系来回答你,这才是它干的活。
book-to-skill生成的结构很清晰,一个SKILL.md用来存放核心思维模型和章节索引,大概占用四千tokens,每个章节单独一个文件按需加载每篇一千tokens左右,术语表也在,设计模式合集也在,同时速查手册也在,各有各的文件。你问第五章的某个概念,它只加载第五章那个文件,不把整本书五百页全塞进去烧token。
这点设计特别关键,他们自己设计了个benchmark叫Discovery Loop Tax,拿一本103页的技术书来说,要是把全文本塞入上下文的话每次对话耗费27K tokens而且每轮都重复,借助Skills按需加载的话核心SKILL.md只占用4K tokens加章节文件1K,整体能省下24到51倍的token资源消耗,并且章越大省得越多。Think Python那本244页的书跑上一遍成本不到一美元,Working Backwards 371页也是不到一美元,Pro Git 501页大概1.23美元,全是Claude Sonnet 4.5的估算价格。
在技术实现层面有个细节让我觉得作者Virgilio绝对是真正上手用过之后才进行的设计工作,他弄出来一套智能分流机制,当你把书喂进去的时候它会先询问你这本书属于technical还是text-heavy,要是技术类书籍,里面包含代码、表格以及公式,就会选用Docling来开展提取操作,虽说在速度方面稍慢一些,处理一页大概耗费1.5秒,但能够完好地把markdown表格和代码块保留下来,要是纯文字类的书籍,就会依靠pdftotext在秒级时间内完成处理工作。至于EPUB格式呢,则是依靠ebooklib来进行处理,DOCX格式凭借python-docx推进处理,甚至于MOBI和AZW3格式都支持运用Calibre开展转换工作,总共覆盖了七种格式。我拿手头一本充斥着表格和伪代码的算法教材,尝试运行了一下Docling模式,表格提取效果相较于pdftotext要好出太多,前者能够把完整的markdown结构给保留下来,后者却仅仅输出一坨混乱的文本内容,在识别量方面足足差了48个表格和36个代码块。
作者同时还对增量更新的场景加以了考虑,并非仅仅把一本书进行一次性的转换处理,你可以把新的材料给fold-in到已经存在的Skill文件夹里面,比如你已经拥有了一本主书的Skill,后来阅读了三篇相关论文还整理了自己的笔记,把它们全丢进去之后,就会合并到同一个Skill里以便开展统一的检索工作,这样一来知识库就是活的而非死板的了。
这个项目让我联想到一个问题,为何在此之前没有人把这件事给做出来呢。
RAG方案确实能够对大量文档开展索引工作从而得以实现跨书检索,但是你获取到的仅仅是片段匹配而已,并非系统性的理解。NotebookLM具备同时处理多本书的能力,然而它属于一个独立的浏览器标签页,跟你的代码工作流之间呈现出割裂的状态。book-to-skill所解决的场景显得窄而深,当你需要对一本书或者一簇紧密相关的材料进行深度掌握的时候,期望能够边写代码边查阅边运用,它会把知识直接嵌进你的工作流里面,而不是甩到另外一个窗口中去。RAG所索引的是一整个书架,book-to-skill掌握的却是一本书的脊梁,这两个东西属于互补的关系,并不冲突。
另外还存在一个相当关键的点,诸如Clean Code和DDIA这类的热门书籍,Claude的训练数据里面本来就已经包含了,但那属于是经过压缩的互联网平均讨论水平,而不是你手里那本书的具体内容,它会把章节标题和引用内容凭空编造出来。book-to-skill则是凭借你自己手里那本PDF来开展工作,每个框架名字、每个反模式清单、每个章节编号统统都是原文里的内容,这样一来就得以实现零幻觉以及零漂移的情况,至于冷门书还有内部文档那就更加无需多言了,Claude根本未曾见过那些东西,我之前向Claude对关于某本2024年新出版的系统设计书的内容进行了询问,它直接表明没有相关信息,但是把Skill安装之后立刻就能给出回答了。我借助自己那本DDIA进行了一番尝试,把Skill安装完毕之后,在Claude Code里面键入/designing-data-intensive-apps replication,对关于分区和二级索引的问题进行了询问,它直接定位到第六章并且把原文框架给出来了,绝对不是那种泛泛而谈的分布式系统概述。要是你仅仅想要快速回顾某个章节的核心思想,那么键入/designing-data-intensive-apps ch05就只会把第五章的内容加载出来,token消耗处于极低的水平。整个流程从键入命令直到Skill生成完成大概花费了两分钟左右的时间,拥有6100颗星的项目成熟度确实表现不错,69个commits表明作者一直在开展迭代维护的工作,而不是一次性抛出来就不再管了。
另外市面上还存在着一个名为book2skills的竞品项目,目前斩获了83颗星,其思路跟咱们说的截然不同。它是依靠人工方式,把经典书籍里面的核心方法论给提炼出来,进而制作成Skill。现阶段仅仅完成了一本《Common Stocks and Uncommon Profits》的提炼工作,走的是精选精做的路线,并非自动化转换。这两个项目其实互补并且也不冲突,book-to-skill属于工业化批量生产范畴,而book2skills则是匠人式的手工精制。
book-to-skill存在的局限同样十分明显,它要求书籍必须具备明确的Chapter N标题,这样才能开展自动分章的工作,要是纯标题式的章节结构就识别不到。并且处理长书的成本也不低,一本五百页的书跑上一遍要消耗二十多万tokens,要是你只是偶尔翻阅某本书,那可能不值得这么搞。但要是你属于那种会反复查询同一本书的人,一次转换就能终身使用,token方面省下的乃是长期成本。我自己算过一笔账,一本DDIA的Skill装配完毕之后,每次进行查询大概消耗5K tokens,而如果不运用Skill,直接把500页的全文本塞进上下文里面,每轮都需要229K tokens,跑十次查询就是两百万tokens的差距,光token成本就相差了几十美元。并且运用Skill方式的查询质量明显要更高,原因在于它依靠的是结构化提取的内容,并非对原始文本进行暴力搜索。
开放标准带来的好处就一个,一个Skill只要装配一次,所有兼容平台都能够进行运用。Copilot CLI、Amp、Claude Code走的是同一套SKILL.md格式,这样一来你就不必给每个AI助手分别制作一套了。在Copilot CLI里面装配完毕之后,需要跑一下/skills reload指令让新的Skill显现出来,而Claude Code和Amp在下一次session中会自动完成识别。
后来我试着把公司内部的设计规范文档也丢进去进行处理,六十多页的PDF文件,本来大家需要反复翻阅品牌手册来查询语气或者查询组件原则,现在做成Skill之后,直接在代码编辑器里面进行询问即可,再也不用打开PDF翻到第23页去寻找那段关于按钮文案的规范了。同事编写前端代码的时候,要是碰到了组件命名的问题,直接在Copilot里向品牌规范Skill发起提问,比之前每次翻阅PDF手册快了不知道多少倍。以前一个命名规范的争论能扯上半个小时,现在五秒钟就能得出答案。
再往下看,Agent Skills正在从Claude专属往开放协议的方向演进,ModelScope社区已经在MS-Agent里面实现了针对这套协议的开源版本,采用了三层渐进式加载机制,从Metadata到Retrieval到Resources再到Analysis和Execution,跟Anthropic原版的设计思路保持一致,这意味着以后不仅仅局限于Claude生态,国产Agent框架同样能够走相同的Skill标准。ModelScope的实现里面还增加了借助语义搜索寻找相关Skill的Retriever模块,让Agent能够更精准地判断什么时候应该选用哪个Skill。Agent Skills开放标准的官网agentskills.io已经上线,跟MCP的mcps.io走的是一样的域名命名惯例,由此看得出Anthropic是想把Skills做成跟MCP并列的第二个开放协议,其中一个乃是工具调用标准,另一个则是技能封装标准,实行双轮驱动。
发展到当下这个阶段,AI Agent脑子算是够灵光了,缺的恰恰是足够专业的深度。
那么专业度怎么来?依靠把人的流程性知识进行打包,进而转化变为可复用的技能模块填喂进去,而非一味依靠更大的模型参数去进行堆砌。
这样一来,book-to-skill就干了一件相当接地气的活儿,让那些在你书架上一直吃灰的好书不再仅仅摆在那吃灰,而是转化变成了你AI助手大脑里随时能够去进行调用的知识储备。
要是你手边恰巧有好几本需要反复查阅的技术书,不妨抽出来几分钟去试着进行使用体验一下。
以上这些就是全部内容了,既然都一路看到这儿了,要是觉得内容对你有帮助,不妨把这篇给收藏下来,下次找起来也方便。
参考来源
- book-to-skill项目主页(GitHub)https://github.com/virgiliojr94/book-to-skill
- Agent Skills开放标准(GitHub)https://github.com/agentskills/agentskills
- Agent Skills技术协议与开源实现(ModelScope魔搭社区)https://modelscope.csdn.net/69156ec982fbe0098cab2b8f.html
- book2skills竞品项目(GitHub)https://github.com/simbajigege/book2skills
- Anthropic Agent Skills官方文档(Claude API Docs)https://platform.claude.com/docs/zh-CN/agents-and-tools/agent-skills/overview
