资讯动态

book-to-skill 性能与 Token 成本基准:Discovery Loop Tax、实测数据与可复现测量方法

发布时间:2026/9/11 8:23:52 来源:尧图企业网站定制
book-to-skill 性能与 Token 成本基准Discovery Loop Tax、实测数据与可复现测量方法【免费下载链接】book-to-skillTurn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.项目地址: https://gitcode.com/GitHub_Trending/bo/book-to-skill本指南基于 book-to-skill 官方性能文档系统梳理该项目的实测性能数据从 PDF/EPUB 提取阶段的耗时与 Token 量、三种问答策略的上下文成本对比Discovery Loop Tax到整本书生成技能的估算费用与输出质量改进。读完本文你将掌握所有性能数据的测量方法论、复现命令并理解把书转成 Agent 技能相比直接把书塞进上下文在成本上的本质差异。测量方法论所有数字都是实测不是估算文档 docs/performance.md 开篇即强调一条原则文中所有数字均为测量值measured而非估算值estimated。具体有两套工具支撑Token 计数使用tiktoken的cl100k_base编码BPE 真实分词Discovery 模型使用仓库内的 tools/discovery_tax.py 脚本。从源码看tools/discovery_tax.py的count_tokens函数优先调用tiktoken.get_encoding(cl100k_base)做真实 BPE 计数当环境中未安装 tiktoken 时会降级为words/0.75启发式估算词数除以 0.75并在报告中打印当前使用的计数方法token_method()保证透明度def count_tokens(text: str) - int: Real BPE count via tiktoken if available; else words/0.75 heuristic. try: import tiktoken enc tiktoken.get_encoding(cl100k_base) return len(enc.encode(text)) except Exception: return int(len(text.split()) / 0.75)这个0.75常量与提取器共用同一套口径——定义在 book_to_skill/config.pyWORDS_PER_TOKEN 0.75 # approximate (Latin / whitespace-delimited text) CJK_CHARS_PER_TOKEN 1.5 # approximate for cl100k-style tokenizersbook_to_skill/utils.py中的estimate_tokens函数正是用它来计算每本书的 Token 总量并对 CJK 文本单独按字符数折算CJK 缺少空格分词按词数会严重低估。因此测量端与提取端对Token的定义保持一致数据可交叉印证。提取阶段真实书籍转换的实测数据文档给出四本真实书籍的提取结果格式覆盖 PDF 与 EPUB书籍格式页数Token 数自动检测章节数Think Python 2PDF244119K19Working BackwardsPDF371175K10Pro GitPDF501229K— †Moby-DickEPUB—301K133† 说明Pro Git 各章以小节标题开头无Chapter N字样因此无法自动分段Moby-Dick 正文使用裸标题但罗马数字目录被成功检测133 章——详见 README 中的 Known limitations。这里的关键点在于章节自动检测依赖显式的编号标题如Chapter N/Capítulo N。从 tools/discovery_tax.py 的导入可以看出测量工具直接复用提取器的章节检测函数_chapter_number与目录模式_TOC_PATTERN来自book_to_skill.utils从而保证测量工具认为的章节与流水线检测出的章节完全一致。提取方式的选择对技术书籍至关重要文档在同一本 103 页技术类 PDF 上对比了两种提取方法方法耗时表格代码块pdftotext0.1s00Docling技术模式164s4836对照 docs/how-it-works.md 中更完整的基准Docling 模式提取的 Token 数与 pdftotext 基本持平27K仅 1.2%但结构信息天差地别Docling 保留了 48 张 Markdown 表格与 36 个代码块而 pdftotext 将其全部扁平化为纯文本。结论很明确文字类书籍散文为主、表格少选pdftotext瞬时完成技术类书籍代码、表格、公式为主选 Docling 技术模式约 1.5s/页但换回可用的 Markdown 结构与代码块。这正是提取器在正式转换前会先询问technical or text-heavy并自动选择工具的原因见 README.md 的 Requirements 章节与 docs/how-it-works.md 的 Step 1.5。Discovery Loop Tax回答一个问题的真实上下文成本这是性能文档的核心章节也是该项目最具代表性的成本主张。它对比了三种策略在回答一个针对性问题时所付出的上下文 Token 成本context-dump全量倾倒整本书常驻上下文每一轮对话都要重新计费discovery-loop发现循环一个实时阅读 PDF 的 Agent 需要不断导航——读取目录、拉取原始章节、在缺少定义时回溯前面的章节这些抓取的页面都会进入历史上下文book-to-skill常驻一个精简核心SKILL.md约 4K Token 按需加载一个已编译章节约 1K Token合计≈ 5,000 Token。文档按书籍章节大小分三档实测书籍章节规模全量倾倒发现循环book-to-skill对比倾倒/循环Think Python 2小119,26412,152~5,00024× / 2.4×Working Backwards中175,25333,444~5,00035× / 6.7×AI Engineering大256,28777,866~5,00051× / 15.6×复现命令文档原文python3 tools/discovery_tax.py --full-text /tmp/book_skill_work/full_text.txt --target-chapter 5两点关键解读对全量倾倒的 24–51× 优势是最强的主张这个成本在每一轮对话都会重复发生residentre-billed EVERY turn而不仅是单次对发现循环的 2.4–15.6× 优势是单次成本且该模型使用了书籍真实的目录/章节规模会随章节大小线性增长——书越大循环式导航的代价越高book-to-skill 的相对优势越明显。测量脚本的诚实性设计从 tools/discovery_tax.py 源码可以看到多处刻意保持诚实的设计复用提取器逻辑而非复制章节检测与目录检测直接导入book_to_skill.utils的_chapter_number和_TOC_PATTERN避免测量口径与流水线分叉文档注释还说明旧的本地正则只匹配 EN/ES/PT会漏掉 FR/DE/IT/NL/CJK 书籍区分 best case 与 loop case报告同时给出目录 目标章节best与目录 目标章节 前一章缺失定义回溯loop两种发现成本章节编号可能重复目录条目与正文标题共享格式脚本用best_chapter选取正文最大的那次出现作为真实章节避免把一行目录条目误当成整章无章节时明确报错退出若文本提取把章节结构压平脚本会提示改用 Docling 技术模式而不是给出误导性结果。test_discovery_tax.py 用合成书籍验证了核心不变量——book-to-skill discoverybest context-dump并对德语目录Inhaltsverzeichnis等非英语场景做了回归测试确保测量模型对多语言书籍同样成立。生成成本整本书一次转换约 1 美元文档给出一次全量转换的估算成本基于实测 Token 数与 Claude Sonnet 4.5 定价输入 $3 / 输出 $15 每百万 Token书籍输入输出约成本Think Python 2155K28K$0.88Working Backwards228K19K$0.96Pro Git298K23K$1.23Moby-Dick391K17K$1.42粗略来看完整生成一个技能约需 1 美元且只支付一次。与之相对如果每个会话都把同一本书重新读进上下文成本会随使用频次持续累积——这正是上一节 Discovery Loop Tax 想量化的长期开销详见 README.md 的 The Discovery Loop Tax 一节。这个数字背后是生成器的 Token 预算控制按 docs/how-it-works.md 与 docs/architecture.md 的说明SKILL.md 核心约 4K Token 且重要内容前置上下文压缩从尾部截断每个章节摘要控制在 800–1,200 Token章节文件按需加载——这些预算共同把常驻成本压到约 5K Token 的量级。生成技能的输出质量自适应深度改造前后对比文档还记录了一次真实的质量回归对比——自适应深度adaptive-depth变更v1.0.0issue #20对单个章节的影响产物旧规范新规范章节文件Token4731,219是否含完整工作示例否是速查表决策规则数032速查表关键词/定义行90这次改造的实质是把速查表cheatsheet从术语表升级为决策层旧规范下速查表是 9 行关键词/定义对照类似 glossary 的重复新规范下变为 32 条决策规则同时为学习型study章节补上了可复现的完整工作示例。这与项目提取结构而非摘要的设计原则命名框架、决策规则、反模式绝不复制原文段落一脉相承也解释了为什么章节文件体积增长473 → 1,219 Token是有意的质量投资而非浪费。在本地复现这些数字所有性能数据都可以在本机复现步骤为1. 先跑一次提取生成测量所需的full_text.txt与metadata.jsonpython3 scripts/extract.py --check # 先检查各格式提取器是否就绪 python3 scripts/extract.py ./my-book.pdf --mode text # 或 --mode technical提取产物默认写入按进程隔离的工作目录book_skill_work-pid可用环境变量BOOK_SKILL_WORKDIR覆盖见 book_to_skill/config.py包含合并后的full_text.txt与聚合统计的metadata.json。2. 再运行 Discovery Loop Tax 测量python3 tools/discovery_tax.py --full-text /tmp/book_skill_work/full_text.txt --target-chapter 5脚本还支持两个可选参数--skill-dir skill_folder传入已生成的技能目录使用实测的 SKILL.md 与目标章节文件大小而非设计上限和--core-tokens 4000未给--skill-dir时的常驻核心大小默认取设计上限 4,000。3. 读取报告脚本会输出计数方法tiktoken 或启发式、检测到的章节数、目标章节以及三种策略各自的 Token 成本与对比倍数如24.0x fewer tokens。注意报告中会明确标注discovery 数字是基于书籍真实目录/章节规模的模型单次成本而 context-dump 是每轮都发生的循环成本。延伸阅读docs/how-it-works.md —— 提取 → 生成完整流水线Steps 0–10、Token 预算与设计原则docs/architecture.md —— 提取器 生成器的双半架构、组件职责映射tools/discovery_tax.py —— 本文所有 Discovery 数据的测量实现tests/test_discovery_tax.py —— 测量逻辑的属性测试与多语言目录回归book_to_skill/config.py —— Token 估算常量WORDS_PER_TOKEN、CJK_CHARS_PER_TOKEN与输出路径配置【免费下载链接】book-to-skillTurn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.项目地址: https://gitcode.com/GitHub_Trending/bo/book-to-skill创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价