项目详情

Headroom

AI agent 的上下文压缩层——same answers, fraction of the tokens

GitHub 地址 文档 Apache-2.0 Python + TypeScript · 自研模型

更新于 2026-09-01 · 数据来源:GitHub API(采集于 2026-09-01)

← 返回汇总
项目速览

一句话定位

上下文窗口是账单,Headroom 是对账单动刀的人

在工具输出、日志、RAG 块、文件、对话历史到达 LLM 之前压缩它们:JSON 省 60-95%、编码 agent 省 15-20%,答案质量在标准基准上不掉(GSM8K ±0、BFCL 97%)。库 / 代理 / MCP / agent wrap / 内联五种接入,本地优先、可逆(原文缓存按需取回)。适合一切「上下文成本开始疼」的 agent 团队——编码代理、RAG 应用、SRE 机器人。

项目速览

核心数据

68.2k
Stars(8 个月)
252
贡献者
5
接入方式
±0.000
GSM8K 精度差

2026-01-07 创建 · 昨日仍在推送 · v0.37.0(月级多版)· PyPI + npm 双包 · 自研 Kompress-v2-base 模型上 HuggingFace · CI + codecov + 可复现 evals(python -m headroom.evals)

为什么存在

Agent 的上下文经济学

输入是隐形成本之王

一次编码 agent 会话动辄吞几十万 token——其中大头是工具输出:文件内容、命令输出、搜索结果、堆栈日志。这些内容大量冗余,但没人管它进窗口前的样子。

输出同样在烧钱

Opus 级模型输出单价是输入的 5 倍——而输出里满是废话:「Great, let me…」开场白、复述你刚给它看的代码、读个文件也要深度思考一遍。浪费是双向的。

朴素截断会掉答案

「砍掉一半上下文」谁都会,但砍什么不伤答案是技术活——需要按内容类型分治:JSON 有 JSON 的压法,AST 有 AST 的压法,散文要语义压缩。

架构

压缩流水线:路由分治 + 可逆回收

你的 Agent / 应用(Claude Code · Cursor · Codex · LangChain · Agno · 自研…) prompts · 工具输出 · 日志 · RAG 结果 · 文件 · 对话历史 Headroom(本地运行——数据不出机器) CacheAligner 检测会炸 KV 缓存的易变内容 ContentRouter 按内容类型分流 SmartCrusher(JSON) 结构感知 · 60-95% CodeCompressor(AST) 语法树级代码压缩 Kompress-v2-base 自研文本压缩模型(HF) CCR 可逆缓存 原文本地留存可取回 跨 agent 记忆 Claude/Codex/Grok 共享去重 LLM Provider(Anthropic · OpenAI · Bedrock…) 收到压缩后 prompt + 一个 headroom_retrieve 工具(需要原文时自己取)
路由与缓存(安全层) 分治压缩器(按内容类型)
核心机制

CCR 可逆压缩:压得狠,丢不了

核心机制

输出侧省钱:压模型写回来的

  • Verbosity steering:在 system prompt 末尾追加「简洁、别复述上下文」短注——追加在尾部,前缀缓存照常命中(这个细节值一个月电费)
  • Effort routing:当一轮只是工具结果后的例行续写(读完文件、测试通过),自动调低 thinking 预算;新问题与报错保持全力度——OpenAI 走 reasoning_effort,Anthropic 走 thinking.budget_tokens,两边同一个 clamp-only 不变量
headroom learn:从你的打断学简洁

人不会「说」自己想要多简洁——人会用行为「展示」(打断长回复、没读完就翻页)。headroom learn --verbosity 读历史会话自动定档;还能挖掘失败会话把修正写进 CLAUDE.local.md。

代理的 runtime 配置支持热同步(POST /admin/runtime-env)——改开关不用重启、不丢缓存。

实测数据

省了多少,准不准

真实工作负载节省
工作负载前 → 后省
代码搜索(100 结果)17,765 → 1,40892%
SRE 事故调试65,694 → 5,11892%
GitHub issue 分诊54,174 → 14,76173%
代码库探索78,502 → 41,25447%
标准基准精度
基准类别基线 vs 压缩后
GSM8K数学0.870 → 0.870(±0.000)
TruthfulQA事实0.530 → 0.560(+0.03)
SQuAD v2问答97% 精度 · 压缩 19%
BFCL工具调用97% 精度 · 压缩 32%

全部可复现:python -m headroom.evals suite --tier 1——敢把方法学放文档里的压缩工具,这个品类里不多见。

接入

五条路进你的栈

方式一句话适合
Agent wrapheadroom wrap claude|codex|grok|copilot|cursor|aider|opencode|cline|…(16 种)一键包住,unwrap 撤销个人编码 agent 立刻省钱
Proxyheadroom proxy --port 8787,任何语言零改码存量应用 / 任意技术栈
LibraryPython compress(messages) / TS SDK(npm)自研 agent 深度集成
MCP serverheadroom_compress / retrieve / stats 三工具任意 MCP 客户端
deployheadroom deploy 交钥匙本地部署 + agent 配置团队快速起步

wrap 会顺带装 Serena(语义代码导航,注册在用户作用域,--code-memory none 可跳过)。自检体系完整:doctor(健康检查)· perf(性能)· dashboard(实时节省面板)。

快速上手

六十秒起步

$ uv tool install --python 3.13 "headroom-ai[all]"   # 或 pip install "headroom-ai[all]"

$ headroom wrap claude          # 包住你的编码 agent(本地代理 + Serena)
$ headroom doctor              # 确认路由在工作
$ headroom dashboard           # 实时节省面板(代理运行时)

# 输出侧(默认关):
$ export HEADROOM_OUTPUT_SHAPER=1 && headroom proxy --port 8787
适用场景

适合谁用

风险提示

需要警惕

在线体验

亲手跑一遍压缩流水线

Playground 复刻 ContentRouter + 分治压缩的语义:粘贴工具输出/日志/JSON(或用预设),看引擎判型分流——JSON 列式化压缩(键值全保留)、日志重复折叠(×N)、散文紧凑化——实时显示 token 前后对比与压缩率。

打开 Playground

纯前端实现,零网络依赖 · 判型 7 类 / JSON 信息保全 / 折叠单调性 均经真值表对拍验证

潜力评估

未来空间

「上下文工程」正在成为 agent 技术栈的独立层——窗口成本随 agent 自主化只增不减,而模型厂商自己不会替你压工具输出。Headroom 用 8 个月 68k stars 确立了品类心智:分治压缩 + 可逆回收 + 双侧省钱 + 五路接入的完整度目前无对手。天花板在于模型厂商若原生内置类似能力(长上下文降价 + 原生压缩),中间层价值会被挤压——但在那之前,它是这个赛道最硬的资产。

品类确立(68k / 8 个月) 可逆压缩护城河 双侧省钱 + 五路接入 0.x 演化期 厂商原生压缩风险

1 / 14