headroomlabs-ai/headroom · 上手攻略
- 仓库:headroomlabs-ai/headroom
- 链接:https://github.com/headroomlabs-ai/headroom
- 分类:agent, rag, llm-infra
- 作者:Tom
- 更新:2026-07-05
这是什么
Headroom 是一个上下文压缩层(context compression layer),运行在 AI 编码助手和 LLM 提供商之间,把 tool 输出、日志、文件内容、RAG 检索结果、对话历史等压缩后再发给 LLM,Token 减少 60–95%,答案质量基本不变。
它的核心定位是:在你不动代码的前提下,给任何 AI 编码助手省 Token。支持三种使用形态——Python/TypeScript 库、HTTP 透明代理、MCP Server,兼容 Claude Code、Codex、Cursor、Aider、Copilot CLI 等 15+ 平台。
官方提供性能数据:100 条生产日志压缩后 10,144 → 1,260 tokens(-87.6%),同一 FATAL 错误仍然被正确识别。
解决什么问题
- Token 费用爆炸:Claude Code / Opus 级模型输入 Token 费用高,一个中等规模项目的 tool 输出动不动就数万 Token。Headroom 把这些压缩到原来的几分之一。
- 上下文窗口塞满:RAG 检索结果、GitHub issue triage、代码库探索等场景,原始内容动辄几十 KB。压缩后同样的上下文窗口能容纳更多有效信息。
- 多 Agent 共享记忆:Claude Code 和 Codex 之间的记忆无法互通,Headroom 提供 Cross-agent memory 让两个 Agent 共享压缩后的上下文。
- 输出 Token 也收费:不只是压缩输入,Headroom 还通过 verbosity steering 和 effort routing 减少模型输出的废话("Great, let me..." 开场白、深思熟虑的标准步骤等),输出 Token 费用是输入的 5 倍(Opus 模型)。
- 可逆压缩:压缩不是丢弃,原文缓存在本地 CCR(Compress-Cache-Retrieve)store,模型随时可通过
headroom_retrieve工具取回原始内容。
快速安装
环境要求
- Python 3.10+
- pip 或 uv
安装
# Python 包(含 CLI)
pip install "headroom-ai[all]"
# TypeScript SDK(仅库,无 CLI)
npm install headroom-ai
⚠️
[all]包含所有扩展:proxy, mcp, ml, code, memory, vector(HNSW 向量索引,需 C++ 工具链), relevance, image, agno, langchain, evals。若不需要全部,可安装子集如[proxy,mcp,ml]。
验证安装
headroom doctor # 健康检查
headroom perf # 性能测试
headroom dashboard # 实时节省仪表盘(需先启动 proxy)
核心用法
模式一:透明 Proxy(零代码改动,推荐)
启动本地代理,所有请求自动走 Headroom 压缩:
headroom proxy --port 8787
然后把 AI 助手或应用的 API 请求发到 http://localhost:8787,Headroom 在后台转发给真正的 LLM 提供商并压缩请求/响应。
配合 Claude Code:
# wrap 命令:自动修改 Claude Code 配置、启动 proxy、注入 token
headroom wrap claude
# 撤销
headroom unwrap claude
配合其他 Agent(wrap):
headroom wrap codex # Codex
headroom wrap copilot # GitHub Copilot CLI
headroom wrap cursor # Cursor(需手动配置 base URL)
headroom wrap aider # Aider
headroom wrap opencode # OpenCode
headroom wrap cline # Cline
headroom wrap continue # Continue
headroom wrap goose # Goose
headroom wrap openhands # OpenHands
headroom wrap openclaw # OpenClaw(作为 ContextEngine 插件安装)
配合 Copilot CLI 订阅用户:
headroom copilot-auth login
headroom wrap copilot --subscription -- --model gpt-4o
对于企业版 GitHub Copilot(GHES),先设置域名再 wrap:
export GITHUB_COPILOT_ENTERPRISE_DOMAIN=ghe.example.com
headroom wrap copilot
模式二:Python 库(内联使用)
from headroom import compress
result = compress(messages, model="gpt-4o")
print(f"Saved {result.tokens_saved} tokens ({result.compression_ratio:.0%})")
response = client.messages.create(
model="gpt-4o",
messages=result.messages,
)
TypeScript:
import { compress } from 'headroom-ai';
const result = await compress(messages, { model: 'gpt-4o' });
console.log(`Saved ${result.tokensSaved} tokens (${(result.compressionRatio * 100).toFixed(0)}%)`);
模式三:SDK 集成(各框架)
# LangChain
from langchain.chat_models import ChatAnthropic
from headroom.langchain import HeadroomChatModel
llm = HeadroomChatModel(ChatAnthropic())
# Agno
from headroom.agno import HeadroomAgnoModel
model = HeadroomAgnoModel(your_model)
# LiteLLM
from headroom.callbacks import HeadroomCallback
litellm.callbacks = [HeadroomCallback()]
# Vercel AI SDK
import { wrapLanguageModel, headroomMiddleware } from 'headroom-ai';
const model = wrapLanguageModel({ model, middleware: headroomMiddleware() });
模式四:MCP Server
headroom mcp install # 注册 headroom_compress / headroom_retrieve / headroom_stats
MCP client(如 Claude Desktop)通过标准 MCP 协议调用这些工具。
Cross-agent Memory(跨 Agent 共享上下文)
from headroom import SharedContext
ctx = SharedContext()
ctx.put("user_context", compressed_summary) # 写入
retrieved = ctx.get("user_context") # 读取,自动去重
输出 Token 节省(Output Shaping)
默认关闭,在 proxy 模式下启用:
export HEADROOM_OUTPUT_SHAPER=1
headroom proxy --port 8787
效果: - Verbosity steering:追加"be terse, don't restate context"到 system prompt 末尾(prompt cache 仍然命中)。 - Effort routing:模型恢复执行(tool result 返回后继续)时,自动降低思考力度;新问题和报错保持全力度。
自动学习用户偏好:
headroom learn --verbosity # 预览(dry run)
headroom learn --verbosity --apply # 应用到 proxy
查看节省数据:
headroom output-savings
# Reduction: 31.7% (95% CI 27.7% … 35.7%) [estimated]
# 若要实测(留 10% 不压缩作为对照组):
export HEADROOM_OUTPUT_HOLDOUT=0.1
headroom dashboard # 面板会显示 measured vs estimated
压缩技术细节
| 内容类型 | 压缩方式 | 典型节省 |
|---|---|---|
| JSON 数组(tool 输出) | SmartCrusher 统计分析,保留错误/异常/边界 | 70–90% |
| 源代码(Python/JS/Rust/Go/Java/C++) | CodeCompressor AST 感知,保留签名折叠函数体 | 40–70% |
| 构建/测试日志 | 保留失败和错误,去掉通过的冗余行 | 80–95% |
| 搜索结果 | 按相关性排序,保留 top 匹配 | 60–80% |
| 纯文本 | Kompress-v2-base(HF 模型,训练于 agent traces) | 30–50% |
| Git diffs | 保留变更 hunks,去掉未改动上下文 | 40–60% |
| 图片 | ML 路由器选择最优 resize/quality 组合 | 40–90% |
CCR(可逆压缩): 原文缓存在本地,模型通过 headroom_retrieve 工具在需要时取回,TTL 可配置。模型不主动调用就不取回,不浪费。
CacheAligner: 稳定请求前缀,使 Anthropic/OpenAI 的 KV Cache 能够真正命中(否则每次请求前缀略有不同导致 cache miss)。
典型适用场景
- 重度 Claude Code / Opus 使用者:Token 费用是大头,压缩 60–80% 直接等于账单打折。
- SRE / DevOps 场景:调试日志几百条、压缩后模型仍能准确定位 FATAL 错误(实测 10k→1.2k tokens)。
- GitHub Issue Triage:大量 issue 列表压缩后仍保留关键信息,节省 73% tokens。
- 多 Agent 并行工作:Claude Code + Codex 同时跑一个项目,Cross-agent memory 保证上下文不重复。
- RAG 管道优化:RAG 检索结果(通常是 5–10 个 chunks)经过压缩再喂给模型,context 更干净。
- 构建/测试日志分析:CI 日志动辄几十 MB,压缩后 LLM 仍能准确发现 regression。
- 输出 Token 优化:代码生成类任务(Claude Opus 输出费用高),verbosity steering 减少废话输出。
坑与注意
-
headroom: command not found: - 只装了npm install headroom-ai(TypeScript SDK)而没有装 PyPI 包,TypeScript SDK 不含 CLI。 - 解决:pip install "headroom-ai[all]"安装 PyPI 包。 -
Proxy 环境变量热更新: -
headroom wrap现在通过 loopback POST/admin/runtime-env热同步环境变量,无需重启 proxy 就能让新设置生效(无 cold start,无请求丢失,无 cache 清空)。但如果是headroom wrap重用已有 proxy,则环境在启动时被 snapshot 了,之后 export 的变量不会生效——这种情况下需重启 proxy。 -
macOS Copilot CLI 认证: - macOS + Keychain 的 auth reuse 已有冒烟测试;Windows Credential Manager、Linux Secret Service/Docker token injection 路径已实现但尚未完全验证。Docker/CI 场景建议显式传递
GITHUB_COPILOT_TOKEN而非依赖 keychain。 -
向量索引(
[vector])需要 C++ 工具链: - HNSW 向量索引后端需要编译,不在[all]默认包含的范围内,如需该功能需单独安装。 -
Python 3.13 与 Leiden 扩展: - Leiden 社区检测仅支持 Python < 3.13,Python 3.13 用户无法使用该功能。
-
输出 Token 节省是估计值: - 输出节省是反事实估计(模型实际写了什么 Headroom 无法看到),报告诚实给出 95% CI 范围。若要实测,用
HEADROOM_OUTPUT_HOLDOUT=0.1留对照组。 -
Cursor 手动配置: - Cursor wrap 后需要手动在 Cursor 设置中配置 proxy base URL(非自动注入)。
-
版权与商用: - Headroom OSS 是 Apache-2.0,库和 proxy 功能免费;企业级共享部署、集中管理、SSO、仪表盘等由 headroomlabs.ai 提供商业支持。
与同类对比
| 维度 | Headroom | lmql | GPTCache | Letta |
|---|---|---|---|---|
| 核心能力 | 请求压缩 + 可逆缓存 | LLM 约束解码 | 相似请求缓存 | Agent 记忆管理 |
| Token 节省 | 60–95%(实测 benchmark) | 程序化查询省 Token | 相同 Query 缓存命中 | 记忆压缩 |
| 透明 Proxy | ✅ 零代码改动 | ❌ | ✅ | ❌ |
| 多 Agent 共享 | ✅ Cross-agent memory | ❌ | 部分 | ✅ 但主要是 Letta 内 |
| 输出压缩 | ✅ Output Shaping | ❌ | ❌ | ❌ |
| MCP 支持 | ✅ | ❌ | ❌ | ✅ |
| 平台覆盖 | 15+ Agent | 通用 Python | 通用 | Letta Server |
Headroom 的差异化:原生 Agent 场景 + 透明 Proxy + 输出压缩。GPTCache 主要针对相同 Query 的重复请求,Letta 侧重 Agent 长期记忆管理,而 Headroom 把压缩做到了对话内每次请求层,覆盖 tool 输出、日志、代码、RAG chunks 等所有输入类型。
一句话推荐结论
如果你每天开着 Claude Code 或其他 AI 编码助手工作,Headroom 是投入产出比最高的效率工具——一个命令启动 proxy,60–95% Token 节省,答案质量基本不变,直接反映在你的 API 账单上。