節省 60-95% token,回答品質不變——這不是行銷口號,而是經過 GSM8K、TruthfulQA、SQuAD 等多個基準測試驗證的結果。
如果你每天使用 AI 程式設計工具(例如 Claude Code、Codex、Cursor、Aider),你可能已經體會到 token 成本膨脹的痛苦。第一次對話只要幾百個 token,但到了第 10 輪,工具輸出、RAG 結果、日誌檔案堆積起來,每次呼叫可能達到數萬甚至十幾萬 token。按 Anthropic 的 API 定價,10 萬 token 一次的成本大約是 $0.30 到 $3.00(取決於模型等級)。如果你一天呼叫幾十次,日帳單輕鬆破百美元。
Headroom 就是為了解決這個問題而生。它由 Chopratejas 開發(Apache 2.0 開源),發布不到 4 個月就在 GitHub 上獲得了 15,000+ stars。它的運作方式是在你的 AI Agent 傳送資料給 LLM 之前,先對資料做智慧壓縮——識別內容類型、路由到最適合的壓縮演算法、用本機模型處理文字、甚至可以逆轉壓縮(CCR 技術)讓 LLM 按需檢索原始資料。
本文將從安裝開始,一步步帶你上手 Headroom,並展示如何在 Claude Code、Codex 等主流 AI 程式設計工具中使用它來降低 token 成本。
為什麼 AI Agent 需要上下文壓縮?
在理解 Headroom 的價值之前,我們先來看一個典型的 AI Agent 使用情境。
假設你使用 Claude Code 協助排查一個生產問題。工作流程是這樣的:
- 你描述問題 → Agent 讀取日誌檔案(5k token)
- Agent 搜尋程式碼庫 → 回傳 10 個相關檔案內容(15k token)
- 執行偵測指令 → 收集工具輸出(8k token)
- 檢視系統狀態 → 執行
ps aux、df -h、dmesg(10k token) - 檢視最近的 Git 提交 →
git log輸出(3k token)
到第 5 步,上下文已經膨脹到 40k+ token。而且每次互動都會把之前的內容全部帶上。到第 10 輪互動時,上下文輕鬆達到 10 萬 token 以上。
這就帶來了三個問題: - 成本爆炸:按 Anthropic Claude 3.5 Sonnet 的 $3.00/百萬輸入 token 計算,100k token 的輸入每次 $0.30,50 次/天就是 $15 - 速度下降:LLM 處理更長上下文的時間線性增加 - 精度受損:長上下文中,LLM 容易「迷失」在中間的細節裡
傳統的解決方案(截斷、滑動視窗)要麼遺失重要資訊,要麼需要複雜的自訂邏輯。Headroom 的方案是智慧壓縮:不同類型的上下文採用不同的壓縮策略,並且可逆。
Headroom 的壓縮原理
Headroom 的核心是一個多層處理管道:
你的 AI Agent → Headroom(本機執行) → LLM 提供方
│
├─ CacheAligner:穩定前綴,提高 KV 快取命中率
├─ ContentRouter:識別內容類型,路由到最佳壓縮器
├─ SmartCrusher:壓縮 JSON/結構化資料
├─ CodeCompressor:AST 感知的程式碼壓縮
└─ Kompress-base:基於 HuggingFace 模型的自然語言壓縮
每個元件各司其職:
| 元件 | 功能 | 適用場景 |
|---|---|---|
| CacheAligner | 穩定輸入前綴,讓 Anthropic/OpenAI 的 KV 快取真正命中 | 所有場景 |
| ContentRouter | 自動偵測內容類型(JSON/程式碼/文字/日誌)並路由 | 所有場景 |
| SmartCrusher | 壓縮 JSON 陣列、巢狀物件、混合類型結構 | 工具輸出、API 回應 |
| CodeCompressor | AST 感知壓縮,保留語意結構 | Python/JS/Go/Rust/Java/C++ |
| Kompress-base | 訓練在 agentic 軌跡上的 HuggingFace 文字壓縮模型 | 自然語言、日誌、RAG |
壓縮的可逆性(CCR - Chunked Compression & Retrieval)是 Headroom 區別於其他方案的關鍵——原始資料不會遺失,LLM 隨時可以透過 headroom_retrieve 工具取回原始內容。
安裝 Headroom
基礎安裝
Headroom 在 GitHub 上已有 15,000+ stars,支援 Python 3.10+。
# Python 完整安裝(推薦)
pip install "headroom-ai[all]"
如果你只想要核心功能:
pip install headroom-ai # 僅基礎功能
# 按需新增額外元件
pip install "headroom-ai[proxy]" # HTTP 代理模式
pip install "headroom-ai[ml]" # ML 模型(Kompress-base)
pip install "headroom-ai[code]" # AST 程式碼壓縮
pip install "headroom-ai[memory]" # 跨 Agent 記憶
pip install "headroom-ai[mcp]" # MCP 伺服器模式
如果你使用 pipx:
pipx install --python python3.13 "headroom-ai[all]"
Node.js / TypeScript 使用者也可以直接安裝:
npm install headroom-ai
Docker 部署:
docker pull ghcr.io/chopratejas/headroom:latest
驗證安裝
安裝完成後,執行以下指令確認一切正常:
headroom --version
如果顯示版本號,說明安裝成功。
快速上手:三種使用模式
Headroom 提供了三種使用模式,你可以根據場景選擇最適合的一種。
模式一:Inline 函式庫模式(程式設計整合)
如果你在自己的 Python 應用中呼叫 LLM,可以直接將 Headroom 整合到程式碼中:
from headroom import compress
# 假設這是要傳送給 LLM 的訊息
messages = [
{
"role": "user",
"content": "請幫我檢查一下這個專案的程式碼品質問題。"
},
{
"role": "assistant",
"content": "好的,讓我先看看程式碼結構..."
},
{
"role": "user",
"content": """以下是目前目錄的檔案結構:
src/
├── main.py (1250 行)
├── utils.py (890 行)
├── api/
│ ├── routes.py (650 行)
│ └── models.py(430 行)
└── tests/
├── test_main.py(320 行)
└── test_api.py (280 行)
以下是 main.py 的全部程式碼:
...
(此處省略實際檔案內容,通常包含數千行)"""
}
]
# 使用 Headroom 壓縮
compressed = compress(messages)
# 壓縮後的訊息
original_tokens = len(str(messages)) // 4 # 粗略估算
compressed_tokens = len(str(compressed)) // 4
print(f"原始: ~{original_tokens} tokens → 壓縮後: ~{compressed_tokens} tokens")
如果你已經在使用 OpenAI 或 Anthropic 的 SDK,可以直接包裝客戶端:
# Anthropic SDK
from headroom import withHeadroom
from anthropic import Anthropic
client = withHeadroom(Anthropic())
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[...] # Headroom 會自動壓縮
)
# OpenAI SDK
from openai import OpenAI
client = withHeadroom(OpenAI())
response = client.chat.completions.create(
model="gpt-4o",
messages=[...] # Headroom 會自動壓縮
)
模式二:Proxy 代理模式(零程式碼改動)
這是最省事的方式。啟動一個本機代理伺服器,然後把你的 API 呼叫指向它,不需要改一行程式碼:
headroom proxy --port 8787
然後在你的應用中將 API base URL 改為 http://localhost:8787:
# 對 Anthropic 使用 Headroom 代理
ANTHROPIC_BASE_URL=http://localhost:8787 claude
# 對 OpenAI 使用 Headroom 代理
OPENAI_BASE_URL=http://localhost:8787 openai api chat.completions.create ...
Proxy 模式會自動攔截所有 API 請求,在傳送前對輸入做壓縮。
模式三:Agent Wrap 模式(一鍵包裝)
這是最便捷的方式——Headroom 可以直接包裝主流的 AI 程式設計工具:
# 包裝 Claude Code
headroom wrap claude
# 包裝 Codex
headroom wrap codex
# 包裝 Cursor
headroom wrap cursor
# 包裝 Aider(自動啟動代理 + Aider)
headroom wrap aider
# 包裝 Copilot CLI
headroom wrap copilot
執行後,Headroom 會啟動一個代理伺服器,並把原工具的命令列參數自動重新導向通過代理。你什麼也不用改,繼續正常使用工具即可。
效能測試
想知道自己的工作負載能省多少 token?直接執行內建的效能測試:
headroom perf
這個指令會模擬實際 Agent 工作負載並回報壓縮率。
進階功能詳解
1. 跨 Agent 共享記憶
如果你同時在用 Claude Code 和 Codex,Headroom 可以讓他們共享壓縮後的記憶:
# 開啟 Cross-Agent Memory
headroom wrap claude --memory
headroom wrap codex --memory # 共享同一個記憶儲存
共享記憶會自動去重,確保相同的上下文不會被多次壓縮儲存。
2. MCP 伺服器模式
對於支援 MCP(Model Context Protocol)的客戶端,Headroom 可以作為 MCP 伺服器執行:
headroom mcp install
這會在 MCP 客戶端中註冊三個工具:
- headroom_compress:壓縮輸入內容
- headroom_retrieve:按需取回原始內容(CCR 逆向操作)
- headroom_stats:檢視壓縮統計資訊
3. 自動學習失敗模式
這是 Headroom 的一個獨特功能——從失敗中學習:
headroom learn
它會自動分析 Agent 失敗的對話,找出問題模式,然後將修正規則寫入對應工具的記憶檔案(如 CLAUDE.md、GEMINI.md)。這樣下次遇到類似問題,AI 工具就能自動避開之前踩過的坑。
實戰案例:用 Headroom 壓縮 Claude Code 的 Token 開銷
下面是一個完整的實戰範例,展示如何用 Headroom 包裝 Claude Code 並觀察實際的 token 節省效果。
場景描述
假設你正在維護一個中型 Python 專案,需要排查一個偶發的記憶體洩漏問題。典型的除錯流程包括:
- 閱讀錯誤日誌(~5k token)
- 搜尋相關程式碼檔案(~15k token)
- 執行效能監控指令收集輸出(~8k token)
- 檢視最近的 Git 提交和變更(~3k token)
- 檢查依賴版本和設定(~2k token)
不使用 Headroom 時,到第 5 步上下文已經達到 33k+ token。如果對話繼續深入,很容易突破 100k。
步驟一:安裝並包裝 Claude Code
# 安裝 Headroom
pip install "headroom-ai[all]"
# 包裝 Claude Code(開啟記憶共享)
headroom wrap claude --memory
執行後,Headroom 會列印類似以下資訊:
🚀 Headroom proxy started on port 8787
📊 Compression pipeline: CacheAligner → ContentRouter → SmartCrusher/Kompress-base
💾 Cross-agent memory enabled (shared with Codex)
🔗 Launching Claude Code with ANTHROPIC_BASE_URL=http://localhost:8787
此時 Claude Code 已經通過 Headroom 代理執行,所有 API 請求都會先經過壓縮再傳送給 Anthropic。
步驟二:正常開始除錯
像往常一樣使用 Claude Code:
claude
> 幫我查一下為什麼這個服務在執行 2 小時後記憶體佔用會從 200MB 漲到 2GB
>
> 這是錯誤日誌:
> [貼上日誌內容]
Claude 會按照正常流程工作:讀取日誌、搜尋程式碼、執行指令……但背後的 token 消耗已經被 Headroom 大幅壓縮。
步驟三:檢視壓縮統計
在另一個終端視窗中,你可以隨時檢視壓縮統計:
# 檢視即時統計
headroom stats
# 或者透過 MCP 工具查詢
# (如果已安裝 MCP)
mcp call headroom_stats
輸出類似:
┌─────────────────────┬──────────┬──────────┬────────┐
│ Session │ Original │ Compressed│ Savings│
├─────────────────────┼──────────┼──────────┼────────┤
│ Debug memory leak │ 45,230 │ 3,890 │ 91% │
│ Code review PR #142 │ 28,450 │ 2,120 │ 93% │
│ Refactor utils.py │ 12,800 │ 1,560 │ 88% │
└─────────────────────┴──────────┴──────────┴────────┘
Total saved today: ~$4.20 (estimated)
步驟四:驗證回答品質
最關鍵的問題:壓縮會不會影響回答品質?
根據 Headroom 官方基準測試資料:
| Benchmark | 類別 | N | Baseline | Headroom | Delta |
|---|---|---|---|---|---|
| GSM8K | 數學 | 100 | 0.870 | 0.870 | ±0.000 |
| TruthfulQA | 事實性 | 100 | 0.530 | 0.560 | +0.030 |
| SQuAD v2 | QA | 100 | — | 97% | 19% 壓縮率下保持精度 |
| BFCL | 工具呼叫 | 100 | — | 97% | 32% 壓縮率下保持精度 |
也就是說,在標準測試集上,Headroom 不僅沒有降低準確率,在某些場景下還有輕微提升(可能是由於去除了噪聲干擾)。
實際使用中,如果你發現某個問題的回答品質下降,可以透過 CCR 機制讓 LLM 取回原始內容:
# 在程式碼中呼叫 retrieve 工具
from headroom import retrieve
original_content = retrieve(compressed_chunk_id)
Headroom vs 其他方案對比
目前市面上有一些類似的上下文最佳化工具,以下是主要方案的對比:
| 特性 | Headroom | RTK | lean-ctx | Compresr | OpenAI 原生壓縮 |
|---|---|---|---|---|---|
| 壓縮範圍 | 全部上下文(工具/RAG/日誌/檔案/歷史) | CLI 指令輸出 | CLI/MCP/編輯器規則 | 僅文字 | 僅對話歷史 |
| 部署方式 | 代理/函式庫/中介軟體/MCP | CLI 封裝 | CLI/MCP | 託管 API | 提供商內建 |
| 本機執行 | ✅ | ✅ | ✅ | ❌ | ❌ |
| 可逆壓縮 | ✅ (CCR) | ❌ | ❌ | ❌ | ❌ |
| 跨 Agent 記憶 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 支援框架 | 所有主流框架 | 有限 | 有限 | 僅其 API | 僅 OpenAI |
Headroom 的優勢在於全面性和可逆性——它不僅壓縮的範圍最廣,而且保證原始資料不遺失,同時支援跨多個 AI Agent 共享記憶。
常見問題
Q1: Headroom 會影響回應速度嗎?
理論上會增加少量延遲(壓縮需要時間),但在實際使用中,由於輸入 token 大幅減少,LLM 的處理時間也相應縮短。整體回應時間通常持平或更快。
Q2: 壓縮後的內容人類可讀嗎?
SmartCrusher 壓縮的 JSON 和 CodeCompressor 壓縮的程式碼仍然保持一定的可讀性,但 Kompress-base 壓縮的自然語言主要是給 LLM 看的,對人類來說可能不太直觀。如果需要人工審查,可以使用 headroom_retrieve 取回原始內容。
Q3: 支援哪些程式語言?
CodeCompressor 目前支援 Python、JavaScript、Go、Rust、Java、C++ 的 AST 感知壓縮。其他語言會回退到通用文字壓縮。
Q4: 資料安全嗎?我的程式碼會被上傳嗎?
Headroom 完全在本機執行,所有壓縮操作都在你的機器上完成,不會將任何資料傳送到外部伺服器。Kompress-base 模型也是本機載入的 HuggingFace 模型。
Q5: 可以和 GitHub Copilot CLI 一起用嗎?
可以!Headroom 支援包裝 Copilot CLI:
headroom wrap copilot --subscription -- --model gpt-4o
這會讓 Headroom 攔截 Copilot CLI 的請求,套用相同的壓縮管道後再轉發到 GitHub 的 API。
總結
Headroom 是解決 AI Agent token 成本膨脹問題的優秀方案。它的核心價值在於:
- 顯著降低成本:60-95% 的 token 節省,對於高頻使用 AI Agent 的團隊來說,每月可節省數百到數千美元
- 保持回答品質:經過多個基準測試驗證,壓縮不影響準確性
- 零程式碼改動:Proxy 和 Wrap 模式讓你無需修改現有程式碼即可享受壓縮紅利
- 可逆且安全:CCR 技術保證原始資料不遺失,所有處理在本機完成
- 生態豐富:支援所有主流 AI 程式設計工具和框架
如果你的團隊正在大規模使用 Claude Code、Codex、Cursor 等 AI 程式設計助手,Headroom 絕對值得加入你的工具鏈。它不僅能幫你省錢,還能讓 AI Agent 在更長上下文中保持更高的回應品質。
相關連結: