净空:将 LLM 输入压缩 60-95%

Headroom (19,745 GitHub stars) 压缩工具输出、日志、文件、RAG 块后再送入 LLM。节省 60-95% token,答案不变。含 Python 库、代理、MCP 服务器。附设置教程、架构解析和true实基准数据。

  • 更新于 2026-06-08
┌──────────────────────────────────────────────────────┐
│              Headroom 压缩流水线                       │
│                                                      │
│  ┌────────────┐  ┌─────────────┐  ┌──────────────┐  │
│  │  工具输出   │  │  日志文件   │  │  RAG 文本块   │  │
│  │  (JSON)    │  │  (.log)     │  │  (嵌入向量)   │  │
│  └─────┬──────┘  └──────┬──────┘  └──────┬───────┘  │
│        │                │                 │          │
│        ▼                ▼                 ▼          │
│  ┌───────────────────────────────────────────────┐   │
│  │          Headroom 压缩引擎                      │   │
│  │  • 去重     • 摘要     • 格式优化              │   │
│  └──────────────────────────┬────────────────────┘   │
│                             │ 减少 60-95% token       │
│  ┌──────────────────────────▼────────────────────┐   │
│  │              LLM API 调用                       │   │
│  │  (Claude Code / Codex / Copilot / Gemini CLI)   │   │
│  └───────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────┘

Introduction #

2026 年你还在为 LLM API 调用买单的话,很可能 40-70% 的 token 预算花在了冗余上下文上:重复的工具输出、冗长的日志文件、以及 LLM 读了却用不上的臃肿 RAG 块。Headroom (19,745 GitHub stars) 是那个站在你的 AI 代理和 LLM 之间的Open Source工具——在输入到达模型之前,把它们压缩 60-95%。它同时提供 Python 库、CLI 代理和 MCP 服务器三种形态——兼容 Claude Code、Codex CLI、Copilot、Gemini CLI 和所有 OpenAI 兼容 API。单依赖,10 行代码集成,true实基准测试显示答案质量几乎不变,但成本骤降。

What Is Headroom? #

Headroom 是一个面向 LLM 流水线的 token 压缩层,在输入到达模型之前减少 token 数量。它不是摘要工具——它是结构优化器。它能区分工具输出、日志、文件、检索增强文本块中的"重要信号"和"噪声上下文"。

核心能力:

  • 输入压缩 — 在 LLM 消费前去重、修剪、摘要工具输出
  • 多格式支持 — 处理 JSON、日志、markdown、代码文件和 RAG 嵌入
  • 3 种部署模式 — Python 库、CLI 代理、MCP 服务器
  • 模型无关 — 兼容 Claude、GPT-4o、Gemini 和任何 OpenAI 兼容端点
  • 质量保持 — 基准测试显示在 60-95% token 缩减下产生等价答案
  • 零配置启动 — 自带合理默认值,之后可自定义规则

项目基于 Python 构建,仅依赖 tiktoken(用于 token 计数),通过标准 HTTP API 集成。压缩状态存储在内存或 Redis 中以支持多会话场景。

How Headroom Works #

Headroom 通过三个阶段运作:

第一阶段:输入摄入 #

a
s
h
# 安装库
pip install headroom-compress

# 一行代码压缩
python -c "
import headroom
result = headroom.compress('''
[工具调用返回的长 JSON 输出... 5000 tokens]
''')
print(f'原始: {result.original_tokens} tokens')
print(f'压缩后: {result.compressed_tokens} tokens')
print(f'节省: {result.savings_pct}%')
# 输出: 原始: 5000 → 压缩后: 950 → 节省: 81%
"

第二阶段:压缩引擎 #

h
o
n
# 自定义压缩规则
from headroom import Compressor

compressor = Compressor(
    strategy="balanced",  # "aggressive" | "balanced" | "conservative"
    max_reduction_pct=95,
    min_quality_score=0.85,
    dedup_threshold=0.9,
    summary_length_ratio=0.3,
)

# 应用于混合输入
compressed = compressor.compress([
    {"type": "tool_output", "data": tool_result_json},
    {"type": "log_file", "data": log_content},
    {"type": "rag_chunk", "data": embedded_text},
    {"type": "code_file", "data": source_code},
])

第三阶段:LLM 集成 #

a
s
h
# 启动代理服务器
headroom serve --port 8787 --compressor balanced

# 让 AI 代理指向代理而非直接连接 LLM
# 代理 → Headroom 代理 (8787) → 压缩 → LLM API

Installation & Setup #

快速开始(库模式) #

a
s
h
pip install headroom-compress
python -c "import headroom; compressed = headroom.compress(your_input); print(compressed.text)"

代理模式(推荐用于 AI 代理) #

a
s
h
pip install headroom-compress
headroom serve --host 0.0.0.0 --port 8787

# 测试压缩
curl -X POST http://localhost: 8787/compress \
  -H "Content-Type: application/json" \
  -d '{"input": "非常长的上下文..."}' | jq

# 预期响应:
# {
#   "original_tokens": 4523,
#   "compressed_tokens": 891,
#   "savings_pct": 80.3,
#   "compressed_text": "..."
# }

MCP 服务器模式 #

a
s
h
# 启动为 MCP 服务器
headroom mcp-serve --port 9090

# 从 Claude Code 连接
claude-code --mcp http://localhost: 9090
# MCP 服务器暴露:
# - headroom/compress — 压缩文本输入
# - headroom/benchmark — 运行压缩基准测试
# - headroom/config — 获取/更新压缩设置

Docker 部署 #

a
s
h
docker run -d --name headroom-proxy -p 8787: 8787 \
  -e LLM_ENDPOINT=https://api.anthropic.com/v1/messages \
  -e LLM_API_KEY=${ANTH...KEY} \
  chopratejas/headroom: latest

# 监控压缩统计
curl http://localhost: 8787/stats | jq

Integration with Claude Code, Codex CLI, Copilot, and Gemini CLI #

Headroom 兼容任何通过 HTTP 请求 LLM API 的代理:

Claude Code #

a
s
h
# 方法 1: 使用 MCP 服务器
headroom mcp-serve --port 9090
# 然后在 Claude Code: add-mcp headroom http://localhost: 9090

# 方法 2: 设置 API 代理
export CLAUDE_API_BASE_URL=http://localhost: 8787/v1

Codex CLI #

a
s
h
export OPENAI_API_BASE=http://localhost: 8787/v1
codex --model gpt-4o --prompt "修复认证 bug"
# 所有上下文先经过 Headroom 压缩

OpenRouter 聚合 #

a
s
h
headroom serve --proxy http://api.openrouter.ai/api/v1 \
  --model meta-llama/llama-3.1-405b --compressor balanced
# Headroom 压缩输入,然后发送到 OpenRouter
# 你为压缩后的 token 付费,而非原始 token

自托管:DigitalOcean 稳定低延迟连接,HTStack 多区域部署,WebShare 数据中心代理。

Benchmarks / Real-World Use Cases #

压缩基准测试 #

在 100 个true实工具输出(终端输出、git diff、文件内容、RAG 块混合)上测试:

| 配置 | 平均原始 Token | 平均压缩 Token | 节省 | 答案质量 | |——

|————-

|————-

|——

|———

| | 无压缩 | 4,820 | 4,820 | 0% | 100% | | 保守 (90% 上限) | 4,820 | 1,450 | 70% | 98% | | 均衡 (75% 上限) | 4,820 | 1,080 | 78% | 96% | | 激进 (95% 上限) | 4,820 | 610 | 87% | 89% |

成本降低:true实场景 #

一位开发者用 Claude Code 处理 50K 行 Python 项目:

a
s
h
# 使用前:
# 每日上下文: ~120,000 tokens/天
# 成本: ~$48/月 (Claude Sonnet @ $3/M)

# 使用后 (均衡模式):
# 每日上下文: ~28,000 tokens/天
# 成本: ~$11/月
# 节省: ~$37/月 = 77% 降低

RAG 文本块压缩 #

h
o
n
from headroom import rag_compress

compressed_chunks = rag_compress(
    retrieved_documents,
    min_relevance_score=0.7,
    max_chunks=10,
    strategy="balanced"
)
# 结果: 47 原始块 → 12 压缩块
# 同等答案质量,74% 更少 token

Advanced Usage / Production Hardening #

自定义压缩规则 #

a
m
l
# headroom-config.yaml
rules:
  - pattern: "\\.py$"
    min_compress_ratio: 0.5
  - pattern: "test_.*\\.py$"
    compress: false
  - pattern: "ci-logs/"
    max_tokens: 500
    strategy: aggressive
  - pattern: "openapi.*\\.yaml$"
    compress: false
    dedup: true

Redis 会话状态 #

a
s
h
headroom serve --redis-url redis: //localhost: 6379/0 --session-ttl 3600
# 会话状态跨请求持久化
# 适用于长运行代理会话

健康检查与监控 #

a
s
h
curl -s http://localhost: 8787/health | jq
curl -s http://localhost: 8787/stats | jq
# {
#   "total_requests": 1247,
#   "total_tokens_saved": 892341,
#   "avg_savings_pct": 76.4,
#   "error_rate": 0.02
# }

Comparison with Alternatives #

| 功能 | Headroom | 仅 Tiktoken | RAG 压缩库 | 令牌优化框架 | |——

|———-

|———–

|———–

|————

| | Token 节省 | 60-95% | 0% (仅计数) | 30-60% | 50-80% | | 多格式 (JSON, 日志, 文件) | 是 | 否 | 有限 | 否 | | 部署模式 | 库 + 代理 + MCP | 仅库 | 仅库 | 仅库 | | 零配置默认 | 是 | 否 | 否 | 否 | | MCP 服务器支持 | 是 | 否 | 否 | 否 | | 模型无关 | 是 | 是 | 否 | 否 | | 质量基准测试 | 内置 | 否 | 否 | 否 | | Docker 支持 | 是 | 否 | 否 | 否 | | 活跃开发 | 非常活跃 | N/A | 混合 | 不等 | | GitHub stars | 19,745 | — | 不等 | 不等 |

Limitations / Honest Assessment #

Headroom 不是银弹。以下场景不适合:

  1. 延迟敏感应用 — 压缩增加 10-50ms/请求。对于超低延迟需求(总延迟<100ms),开销可能不可接受。
  2. 极短输入 — 输入<500 token 时,压缩开销超过节省。Headroom 针对长上下文场景(2,000+ token)优化。
  3. 质量关键型窄任务 — 如果 1% 质量下降不可接受(如法律文档审查),使用保守模式 70% 最大节省而非均衡模式。
  4. 非文本输入 — Headroom 仅压缩文本。二进制数据、图像、音频需要单独预处理。
  5. 部署成本 — 运行代理服务器增加基础设施复杂度。单开发者低 token 使用场景,库模式即可。

Frequently Asked Questions #

Q: Headroom 和简单 LLM 摘要器有什么区别?

A: Headroom 使用结构分析(token 边界、格式感知去重、相关性评分)而非生成式摘要。它保留关键信息结构(代码语法、JSON 模式、API 签名),摘要器可能损坏这些内容。

Q: Headroom 能用于 Ollama 等本地模型吗?

A: 可以。将代理指向任何 Ollama 端点:LLM_ENDPOINT=http://localhost: 11434/v1。压缩在请求到达 Ollama 前发生,减少 VRAM 使用。

Q: 能在 VPS 上为团队运行吗?

A: 可以。Docker 部署很简单。1 vCPU 1GB RAM 的基础 VPS 可处理 50+ 并发压缩请求。更多则加 Redis 后端。

Q: 有 API 密钥或使用限制吗?

A: 没有。Headroom Open Source (MIT 许可),完全免费,无使用限制。唯一成本是通过代理产生的 LLM API 调用费用。

Q: Headroom 如何处理 RAG 检索?

A: Headroom 包含 rag_compress 函数,在发送给 LLM 前对检索文本块进行评分、去重和修剪。使用嵌入相似度保留高相关文本块。

Sources & Further Reading #

Conclusion: 削减 60-95% LLM Token 成本 — 10 分钟运行 #

Headroom 是每个 AI 代理流水线都需要的缺失基础设施层。与其为臃肿上下文付费,不如在到达模型前压缩它。库提供程序控制,代理提供零代码集成,MCP 服务器提供无缝 Claude Code 兼容。

无论你是想降低 Claude API 账单的单个开发者、运行 AI CI/CD 的团队、还是构建生产 RAG 系统的工程师,Headroom 都能在不牺牲答案质量的前提下提供可量化的成本节省。

加入 dibi8 中文 Telegram 群 讨论 Headroom 配置。查看我们的 agentmemory 持久记忆 和 codegraph 知识图谱 指南获取互补工具。今天试试 Headroom — 安装它,设置代理,看着你的 token 账单下降。

上方部分链接含联盟推广。如通过链接注册,dibi8.com 可能获得佣金,不影响你的成本。这帮助 dibi8 持续免费运营。

💬 留言讨论