跳到主要內容
Claude Code 省 92% token 不用改 prompt:Headroom 把 Context 壓縮做成本地基礎設施

Claude Code 省 92% token 不用改 prompt:Headroom 把 Context 壓縮做成本地基礎設施

Headroom 不是另一個框架,而是在你的 coding agent 和 LLM 之間加了一層本地壓縮層。tool output、RAG、檔案、歷史通通壓過再送,60-95% 省 token,答案還一樣。

目錄+

如果你的 Claude Code 或 Cursor 每天都在吃掉幾萬 token,卻只為了看一段完整的 tool output 或整份檔案,你不是 prompt 寫得不好——是你的 context 從來沒有被當成基礎設施處理過。

今天釋出的 Headroom v0.27.0 在 GitHub 上已經有 45.5k stars。它做的事很直接:在 agent 和 LLM 之間加一層本地壓縮。真實 workload 實測 92% 省 token,答案還是一樣。

這篇文章給獨立開發者:不用改 prompt、不用換 agent,裝一次就能讓所有工具自動受益。

headroomlabs-ai/headroom on GitHub

為什麼你的 agent context 一直在爆炸

一個典型的 coding agent 流程是這樣的:

  • 讀整個檔案或多個檔案
  • 跑測試、lint、build,拿到完整 stdout/stderr
  • RAG 拉回幾十段相似程式碼
  • 保留整段對話歷史

這些內容預設全部當成「必須給 LLM 看」的東西送上去。結果就是幾萬 token 輕鬆打過去,只為了讓模型「看清楚」。

獨立開發者最常遇到的情況是:同一個 bug 連續問三次,每次都把整個 codebase 片段再塞一次。或者你開一個新專案,agent 先把整個資料夾掃過一遍,stdout 直接吐幾萬行。錢燒得快,cache 命中率卻很低。

更糟的是,這些重複的內容其實大部分是「我上次已經看過了」。但因為沒有中間層去記住「這段已經壓過、這段可以引用」,你只能每次重頭再來。

這不是 prompt 的問題。這是「context 從來沒有經過基礎建設處理」。

Headroom 把壓縮做成本地一層基礎設施

Headroom 不是框架,也不是另一個 agent。它是放在中間的壓縮層。

你可以用四種方式接入:

  • headroom wrap claude —— 直接包你的 coding agent
  • headroom proxy --port 8787 —— 零程式碼改動,任何語言都行
  • from headroom import compress —— Python/TypeScript 裡直接呼叫
  • MCP server —— 給支援 MCP 的 client 用

核心流程只有三件事:

  1. 偵測內容類型(JSON、程式碼、純文字、表格)
  2. 用對的壓縮器壓縮
  3. 把原文存在本地,需要時用 headroom_retrieve 拿回來

壓縮是可逆的(CCR),模型不會因為少了細節而答錯。它要細節的時候會自己叫工具拿。

60 秒上手 + 真實數據

pip install "headroom-ai[all]"
headroom wrap claude
# 或
headroom proxy --port 8787

跑完之後直接用原本的流程就行。下面是官方提供的真實 workload 數字:

Headroom 真實 workload token 減少百分比

對應的絕對數字(Before → After):

  • Code search:17,765 → 1,408
  • SRE debugging:65,694 → 5,118
  • Issue triage:54,174 → 14,761
  • Codebase exploration:78,502 → 41,254

準確度在 GSM8K、TruthfulQA、SQuAD、BFCL 上都維持在原本水準或更好。

關鍵概念輕解:ContentRouter、CCR 可逆、cross-agent memory

Headroom 內部有幾個乾淨的元件,理解它們就能知道為什麼它「不是又一個 prompt trick」。

對獨立開發者來說,最實際的問題永遠是:「我今天裝了,明天專案換人、agent 換工具,這層還在不在?」因為 Headroom 是本地 process + 可插拔的 proxy 模式,它不綁定任何單一 agent 的內部狀態。只要你的 Claude Code、Cursor、Aider、Codex 還是走 OpenAI-compatible 或 Anthropic 的 API,這一層就能繼續作用。

Loading diagram...
  • ContentRouter:看到 JSON 就走 SmartCrusher,看到 Python/JS 就走 AST 壓縮,看到普通文字就走模型壓縮。
  • CacheAligner:盡量讓前綴穩定,讓 provider 的 KV cache 真正打中。
  • CCR:壓縮後原文存在本地,模型需要時呼叫 headroom_retrieve 拿回來。對你來說是透明的。

最重要的是:這一層是本地跑的,你的資料不會先送到別人的壓縮 API。

為什麼這件事重要?因為現在大多數 agent 框架都在「怎麼更好地呼叫工具」和「怎麼寫更好的 system prompt」上競爭。Headroom 選擇了另一條路:把「輸入之前先瘦身」這件事變成一個可插拔的本地層。框架可以換、prompt 可以改,這一層只要還在,就持續幫你省。

除了省輸入,還能省輸出

Headroom 後來加了 output token reduction:

  • 在 system prompt 後面加一句「be terse, don't restate context」
  • 當這一輪只是「工具結果回來繼續做」時,自動把 thinking effort 調低
  • headroom learn --verbosity 會從你過去的 session 學你到底喜歡多簡潔

這些都是 proxy 層做的,你不用改任何 agent 設定。

對 indie 來說,這件事特別有感。因為我們通常不會有專人維護 prompt 模板庫,也不會每天 review token usage dashboard。裝上 Headroom 之後,省 token 這件事就從「我今天有沒有寫好 prompt」變成「我的工具鏈裡有沒有這一層」。後者比較容易持續。

什麼時候該用、什麼時候別用

適合用 Headroom 的情況:

  • 你每天都在用 coding agent,token 費用已經開始明顯
  • 你同時用多個 agent(Claude + Codex + Cursor),想要共享壓縮後的記憶
  • 你需要可逆壓縮,隨時能拿回原始內容

可以先跳過的情況:

  • 你只用單一 provider 原生的 compaction,而且對目前 token 量滿意
  • 你在完全沒辦法跑本地 process 的沙箱環境

和官方原生 compaction、純 prompt 技巧、或只壓 CLI 輸出的工具比,Headroom 的定位很清楚:本地、可逆、覆蓋所有內容類型、還能跨 agent 共享記憶。

方案覆蓋內容本地可逆跨 agent
Headroomtool/RAG/log/檔案/歷史YesYesYes
Provider compaction只有對話歷史NoNoNo
純 prompt 技巧看你自己寫Yes看你No

這不是 prompt engineering,這是基礎設施

Headroom 證明了一件事:對獨立開發者來說,context 已經大到需要被當成一層基礎建設來處理,而不是每次都靠更聰明的 prompt 去應付。裝一次,之後所有 agent 都自動變瘦。

你現在每天多花的那些 token,有沒有可能是因為缺了這一層?