每日文摘

深挖 · token 省钱工具横评:caveman vs headroom vs rtk

上一篇深挖 caveman 留下一个尾巴:GitHub 上比它更火的同类还有两个——headroom(~69k star)和 rtk(~78k star),而 token 账单的大头其实在输入侧(agent 流量 93.4% 是 input、仅 4.0% 是 output)。这篇横评回答四个问题:三工具各是什么、适合谁、是否互斥、以及在 ZCode + Claude Code + DSH + Pi 为主力的开发环境里到底该装哪个。

三兄弟各自的座位

把 agent 的 token 流想象成一条管线,三兄弟坐在不同的位置:

caveman(102.6k★,MIT skill + BSL proxy)——坐在出口。skill 是 ~5KB 纯 prompt 指令,让模型用电报式精简语作答,压的是模型输出的散文;proxy 再压输入侧 json/log。但编码 agent 场景的配对实测(JetBrains):输出仅省 8.5%、整轮账单反而贵 11.6%。它的真实价值是回复可读性,不是省钱。

headroom(68.6k★,Apache-2.0)——坐在中间(agent ↔ API 之间)。本地上下文压缩层,四种形态(Python/TS 库、proxy、wrap、MCP server),pipeline 为 CacheAligner → ContentRouter → CCR 可逆压缩。三个压缩器分工明确:SmartCrusher 压 JSON(统计有损——按字段方差挑重要项,保 error/离群值,数组最多留 15 项)、CodeCompressor 压代码(tree-sitter AST,默认直通 0% 以保正确性)、Kompress-v2(本地 ONNX 小模型)压散文。官方 seeded benchmark:code search -21% / SRE 排障 -57% / 代码库探索 -42% / issue 分诊 -30%,可 --seed 复现,但无第三方独立复现;Reddit 口碑混合(“调了一周才稳定” vs 多实例 Claude Code 压在限额内)。

rtk(78.3k★,Apache-2.0,5 人团队)——坐在入口(agent 内侧)。Rust 单二进制,PreToolUse hook 把 Bash 命令透明改写为 rtk <cmd>(git status → rtk git status),过滤/分组/截断/去重,100+ 命令、<10ms 开销。关键限制:只作用于 Bash 工具调用,agent 内建 Read/Grep/Glob 完全绕过。官方数字 -60~90% 是 bash 输出口径(官方自己也承认"不等于账单省 90%");JetBrains 同一测试床实测:理论天花板仅 ~3% 输入 token(78% 的工具结果走内建工具绕过了 hook),低 effort 档每任务中位数反而贵 7.6%——rtk 期间自报"省了 96.2M tokens"而真实账单在涨,JetBrains 的判词是「诚实的工程,错误的反事实」。

适合场景

还有一本反直觉的账要算:三者砍掉的主要是便宜的 cache_read token。codepointer 的实测会话里,账单被 cache_create(42%)+ output(29%)主导——这些工具"barely move a bill"。

是否互斥:座位模型

三层正交,架构上大部分组合可叠:

我们的棋盘(ZCode + Claude Code + DSH + Pi)

适配矩阵按就绪度排:Pi > Claude Code > ZCode > DSH。

还有一层信任成本:headroom 能看到你的 API key,rtk 可以执行任意命令,而 headroom wrap 曾经自动下载 rtk 二进制(供应链耦合——“a poisoned rtk release could arrive through headroom”)。

推荐结论

值不值得的排序和就绪度刚好相反:

  1. 默认一个都不装。三件全开的真实回报是 ~3-4%,代价是三份信任面 + 一份运维复杂度。
  2. 只装一个的话选 headroom:协议覆盖最全(Anthropic Messages + OpenAI Chat/Responses + Gemini/Vertex/Bedrock)、唯一正面处理 KV-cache(只压增量、旧前缀字节级转发保缓存命中)、Apache-2.0 无功能阉割。路径:在 Claude Code 上 headroom wrap claude 完整试跑两周,/stats 看自己真实流量的节省率,站得住再手动接到 ZCode。
  3. rtk 跳过:主力环境里 ZCode、DSH 都不支持,唯一宿主 Claude Code 上有负收益实测。
  4. caveman 只留 skill 层(可读性收益),proxy 座位让给 headroom。
  5. DSH 用生态内的 dsh-compressor,不外接。
  6. 最后说句实话:最大的省钱杠杆不在这三个工具里——官方 prompt caching(Anthropic cached input 打 1 折)、/compact、把 CLAUDE.md 控制在 200 行内,这些免费手段的确定性远高于任何第三方压缩层。

参考阅读