返回博客列表

Headroom:AI Agent 的上下文压缩层,Token 消耗直降 60-95%

2026-06-04T17:00:00+08:00
AI AgentToken 优化上下文压缩MCP开源项目

Headroom:AI Agent 的上下文压缩层,Token 消耗直降 60-95%

猜猜结果是什么?和你想的一样吗。

用 AI Agent 写代码的人都有个体感:Token 烧得比预期快得多。一个代码搜索返回 100 条结果就是一万多 Token,一次 SRE 故障排查轻松干掉六万,还没算上对话历史的累积开销。API 账单看着心疼,但又能怎么办?不喂上下文,Agent 就是瞎子。

Headroom 给了一个干脆的答案:在数据到达 LLM 之前压缩它。不是那种丢信息的暴力裁剪,而是智能压缩——保留关键内容,丢弃冗余噪声,答案质量不变,Token 消耗降 60-95%。

项目数据很硬:11,129 星,729 fork,Apache 2.0 协议,半年迭代到现在已经是一个非常成熟的工具链。

本文提纲

  1. 它到底压缩了什么
  2. 三种接入方式:Library / Proxy / MCP
  3. 压缩效果的真实数据
  4. 六种压缩算法怎么分工
  5. 可逆压缩(CCR):砍了还能找回
  6. headroom learn:从失败中学习

它到底压缩了什么

Headroom 的压缩目标覆盖了 Agent 工作中几乎所有吃 Token 的场景:

  • Tool 输出:代码搜索、文件读取、命令执行结果
  • 日志数据:SRE 事故调试时动辄几万行的日志流
  • RAG 检索块:向量化召回的大段文档片段
  • 源代码文件:AST 级别的代码结构压缩
  • 对话历史:长对话中的冗余上下文
  • 图片:通过 ML 路由器实现 40-90% 压缩

一句话:只要是要喂给 LLM 的东西,Headroom 都能压。

三种接入方式:Library / Proxy / MCP

Headroom 提供了三种接入模式,适配不同的使用场景:

1. Library 模式——代码内嵌

from headroom import compress

compressed = compress(messages, model="claude-sonnet-4")

Python 和 TypeScript 都支持,直接在应用代码里调用,最灵活。

2. Proxy 模式——零代码改造

headroom proxy --port 8787

启动一个本地代理,所有 OpenAI/Anthropic 兼容的请求自动经过压缩。不需要改一行代码,任何语言都能用。

3. Agent Wrap——一键包裹

headroom wrap claude    # 包裹 Claude Code
headroom wrap codex     # 包裹 Codex CLI
headroom wrap cursor    # 包裹 Cursor
headroom wrap aider     # 包裹 Aider

一条命令启动压缩层 + Agent,不用管底层配置。

4. MCP Server——协议级集成

headroom mcp install

提供 headroom_compressheadroom_retrieveheadroom_stats 三个 MCP 工具,任何 MCP 客户端直接调用。

graph TB
    subgraph "Headroom Compression Pipeline"
        A["Agent / App"] -->|"raw context"| B["ContentRouter"]
        B --> C["SmartCrusher: JSON"]
        B --> D["CodeCompressor: AST"]
        B --> E["Kompress-base: text"]
        C --> F["CacheAligner + CCR"]
        D --> F
        E --> F
        F -->|"compressed tokens"| G["LLM Provider"]
    end
    style A fill:#FF6B6B,color:#000000
    style B fill:#4ECDC4,color:#000000
    style F fill:#45B7D1,color:#000000
    style G fill:#FFEAA7,color:#000000

压缩效果的真实数据

项目给出了实际 Agent 工作负载的基准测试,不是人造数据:

工作负载 压缩前 Token 压缩后 Token 节省比例
代码搜索(100 条结果) 17,765 1,408 92%
SRE 事故调试 65,694 5,118 92%
GitHub Issue 分诊 54,174 14,761 73%
代码库探索 78,502 41,254 47%

更关键的是准确率没有损失:

基准测试 基线准确率 压缩后准确率 变化
GSM8K(数学) 0.870 0.870 ±0.000
TruthfulQA(事实) 0.530 0.560 +0.030

GSM8K 零损失,TruthfulQA 甚至略有提升——因为去噪后的上下文反而更清晰了。

六种压缩算法怎么分工

Headroom 内建了六种压缩引擎,每种处理不同类型的内容:

算法 处理对象 核心思路
SmartCrusher JSON 数据 通用 JSON 压缩:数组、嵌套对象、混合类型
CodeCompressor 源代码 AST 感知,支持 Python/JS/Go/Rust/Java/C++
Kompress-base 自然语言文本 自训练 HuggingFace 模型,基于 agentic traces 训练
Image Compression 图片 训练过的 ML 路由器,40-90% 压缩
CacheAligner 所有内容 稳定前缀,让 Anthropic/OpenAI 的 KV Cache 真正命中
IntelligentContext 混合内容 基于学习到的重要性评分做上下文适配

ContentRouter 自动检测内容类型,选择对应的压缩器,不需要手动配置。你只管 compress(messages),剩下的交给它。

可逆压缩(CCR):砍了还能找回

这是 Headroom 和其他压缩工具最本质的区别。

传统的上下文裁剪是单向的——砍掉就没了,LLM 永远看不到被裁掉的内容。Headroom 的 CCR(Compress-Compress-Retrieve) 机制把原始数据存储在本地,LLM 可以通过 headroom_retrieve 工具按需取回。

实际效果:压缩后 prompt 更短、更聚焦,但如果 LLM 发现缺少关键信息,它能主动拉取原始内容。压缩和完整性的矛盾被解决了。

headroom learn:从失败中学习

这是我个人认为最有意思的功能。

headroom learn 会挖掘 Agent 失败的 session,分析哪里出了问题,然后自动把修正建议写入 CLAUDE.mdAGENTS.mdGEMINI.md。相当于一个自动化的经验沉淀系统——每次犯错都变成下次的预防针。

这种"从失败中学习"的机制,比单纯的 Token 节省更有长期价值。它让 Agent 不只是在当前 session 更高效,而是跨 session 越来越聪明。

对企业用户的实际意义:如果你的团队每天跑大量 Agent 任务,Headroom 的 ROI 很好算——Token 费用直接砍半到砍九成,准确率不降甚至微升,还附赠跨 Agent 共享记忆和失败学习。11k 星不是白来的。

试过了?评论区说说你的压缩率。还没试?收藏起来周末折腾。


作者: itech001 来源: 公众号:AI人工智能时代 网站: https://www.theaiera.cn/ 每日分享最前沿的AI新闻资讯和技术研究。

本文首发于 AI人工智能时代,转载请注明出处。

觉得文章不错?分享给更多人!