我上个月看 Claude Code 的账单,沉默了快一分钟。
不多,折合人民币大概四位数。我干这行很久了,知道 AI 调用的成本结构,但那个数字还是让我愣了一下。转念一想——不对,准确说我愣了大概三秒,然后开始翻日志。
找到一堆这样的东西:一次代码搜索返回 17k token ,排查一个 SRE 报错烧了 65k token , issue 分类吞了 54k 。这些东西的共同点是——都不是"对话"本身,都是 AI 在干活的路上经过的中间件输出。工具调用的结果、日志片段、检索回来的文件内容。大部分信息其实没用,但我付了全价。
就是这个瞬间让我开始关注上下文压缩。
然后我找到了 headroom 。
先说结论:它不是什么"优化 prompt",它是在你的 Agent 和 LLM 之间加了一层拦截
多数 token 优化工具做的事是"帮你写更短的 prompt"。比如把"请你作为一个资深前端工程师回答以下问题"变成"回答:"。这有用,但省不了多少。
Headroom 走的是另一条路。它像一个反代——你的 Agent ( Claude Code 、 Codex 、 Cursor 、 Aider ,随便你喜欢谁)发出的请求在被发送到 LLM 之前,先经过 Headroom 压缩。压缩完发过去, LLM 返回结果, Headroom 再把结果还给 Agent 。
关键在压缩那一层。不是简单的截断或者摘要,是 6 个算法按内容类型分派:
| CacheAligner | ||
| ContentRouter | ||
| SmartCrusher | ||
| CodeCompressor | ||
| Kompress-base | ||
| CCR | headroom_retrieve 拿回原文 |
这整套东西跑在本地。数据不外传,不经过第三方。
说人话:它到底省了多少
光讲架构没用。看数字。
Headroom 仓库里的 benchmark 跑在真实 agent workload 上:
代码库遍历那种场景省得少一点,合理——每条代码都可能是关键信息。但前三个场景就很截心了:大部分中间件输出其实是冗余的。
那准确性呢?
这部分我比较在意。如果省钱但把正确答案压没了,那是本末倒置。 Headroom 跑了几组标准 benchmark :
GSM8K ±0.000 这个结果让我觉得有点意思。不是"几乎不损失",是完全没有损失。 TruthfulQA 上涨很可能是因为噪音被去除后模型不容易被干扰信息带偏——但这只是我猜的。
接入方式多到丧心病狂
大多数这类工具的致命问题是"好是好,但你得改代码"。改 agent 的代码、改 SDK 的调用方式、甚至换一个兼容的 SDK 。
Headroom 在这方面花了相当大的力气。 5 种接入方式:
headroom wrap claude headroom proxy --port 8787 headroom mcp install from headroom import compress import { compress } from 'headroom-ai' withHeadroom(new Anthropic()) withHeadroom(new OpenAI()) SDK 集成深到可以插进 Vercel AI SDK 、 LiteLLM 、 LangChain 、 Agno 、 Strands 这些框架里。你不用在这些东西之间做选择——Headroom 只负责压缩,不改你的 agent 行为。
另外还有个功能我还没实测但光看设计就觉得挺香的:跨 agent 共享记忆。 Claude Code 和 Codex 和 Gemini 共用一个压缩记忆库,自动去重。这个场景对同时用好几个 agent 干活的人有实际价值——你不用在不同工具之间手动搬运上下文了。
还有就是 headroom learn——自动扫描失败的 agent 对话记录,把教训写进 CLAUDE.md / AGENTS.md。这不是压缩功能本身,但逻辑上是一体的:压缩是为了省 token , learn 是为了让 agent 别犯同样的错,从源头上减少需要补偿的对话轮次。
限制和坑
不谈限制的推荐都是耍流氓。
不是什么场景都能省 90%。代码搜索那种高冗余场景是最理想的,如果你用 agent 的场景主要是精简短对话,压缩率会低很多。仓库自己给的代码库遍历数据也就 47%。
需要跑本地进程。 Headroom 不是 SaaS ,是本地跑的服务。如果你用的是完全沙箱化的环境(比如某些 CI runner ),不一定能装。代理模式下它在本地监听一个端口,关掉就没了。工具建议用 pipx 或 Docker 来跑,避免 Python 依赖污染。
Kompress-base 需要额外装模型。纯文本压缩依赖 HuggingFace 上的 kompress-v2-base,需要 pip install headroom-ai[ml]。不开 ML 扩展的话,纯文本回退到常规压缩器,效率会低一些。
精度不是绝对的。虽然 GSM8K 保持 0.870 ,但那是在特定 benchmark 上。如果你在极度精密的任务上用(比如数学论文推导、法律���款比对),建议先在具体场景上跑一轮测试再上生产。
如果你每个月的 AI 账单超过 50 块
我认真想了下,这个东西对谁最值:
每天都用 Claude Code / Cursor / Codex 写代码的人。你们的 agent 在搜索、查文件、读 diff 的时候烧掉的 token 远比你问它问题的时候多。 Headroom 在这些场景的压缩率最高。
在多个 agent 之间切来切去的人。共享记忆 + 自动去重是真实的效率提升,不光是省钱。
在任何应用里嵌了 LLM 调用的开发者。compress() 函数只有一行,但效果可能比你优化一周 prompt 都大。
又不是谁都用得着。如果你一个月就用几次 ChatGPT 网页版,没必要折腾这个。它是给高频 agent 用户准备的。
pip install headroom-ai[all] 然后 headroom wrap claude。两行命令,重启 agent 。
开源, Apache 2.0 协议。 GitHub 上 star 在涨。作者把 benchmark 数据和评测代码都放在��库和文档里了,自己跑一遍验证。
这大概是我今年看到的最务实的 agent 基础设施工具。不是"AI 将改变一切"那种虚的,就是一个把 65k token 变成 5k 、然后把压缩前的原文完整留在本地、你需要时还能随时找回来的东西。
我反正已经装上了。
夜雨聆风