AI 前沿

本地小模型也能飛速編碼!用 Headroom 壓縮 90% 工具輸出,徹底解決本地 Agent 運行卡頓

MacHTML Lab2026.06.08 ~11 分鐘閱讀
Headroom 壓縮 Ollama 本地大模型 Agent 延遲 Mac mini

你把 OllamaDeepSeekLlama 接到 Agent 框架,讓它讀整個 monorepo,界面卻卡住 三到八分鐘——不是崩潰,而是工具 JSON 把預填充拖垮。Mac mini M416–32 GB 統一內存時,單輪若塞進 4 萬–8 萬 tokennpm test 輸出、SQL 轉儲或 ripgrep 結果,本地模型就會撞牆。雲端 API 按量計費;本地 GPU 則爲每個字節的注意力燒牆鍾時間

Headroom 在內容進入模型之前壓縮工具輸出、日誌與 RAG 塊——公開負載顯示 SRE 追蹤可縮 92%,代碼搜索 73–92%。本 Type A 教程把 Headroom 接在 Ollama OpenAI 兼容 API 前,Agent 工具不變,模型卻只見 5k token 而非 50k token 草堆。雲端網關控費見 OpenClaw + Headroom 代理;零 API 本地交易棧見 Ollama 上的 TradingAgents

披露:MacHTML 提供可選雲 Mac mini 租用;本手冊適用於任何已裝 Ollama 的本地 macOS 或 Linux 主機。

爲何本地 Agent 在大工具輸出時「假死」

Apple Silicon 上本地 LLM 預填充延遲大致與上下文長度線性相關——整份 CI 日誌灌進去時,不存在 30 tok/s 的「無限上下文」魔法。運維常誤判爲假死的症狀:

症狀可能原因Headroom 槓桿
2 MB 日誌 read_file 後一直轉圈單條工具消息 5 萬+ tokenSmartCrusher / LogCompressor
首輪快、第 5 輪卡住多輪工具上下文滾雪球CCR + IntelligentContext 丟棄
16 GB Mac mini 內存喫緊、換頁KV 緩存 + 巨型 prompt預填充 token 縮減 60–95%
「GPT-4o 上沒問題」雲端模型更寬/硅更快本地需壓縮 + 更小有效上下文

可引用:在 Mac mini 級硬件上,將 Agent 流量經 127.0.0.1:8787 的 Headroom 轉發至 11434 的 Ollama,可把工具密集 prompt 削減 60–95%,恢復原始日誌無法實現的亞分鐘級工具回合。

外部參考:Headroom GitHub代理文檔Ollama API

壓縮層架構

┌──────────────┐  工具 JSON/日誌   ┌─────────────────────┐  壓縮後      ┌─────────────┐
│ Agent        │ ────────────────► │ Headroom 代理       │ ───────────►│ Ollama      │
│ (OpenClaw、  │  OPENAI_BASE_URL  │ :8787               │  聊天 API    │ :11434/v1   │
│  LangGraph、 │  = localhost:8787 │ SmartCrusher + CCR  │              │ llama3 等   │
│  Aider…)     │                   │                     │              │             │
└──────────────┘                   └─────────────────────┘              └─────────────┘

Headroom 代理提供 OpenAI 兼容 /v1/chat/completions——與 Ollama 相同接口。將Agent 客戶端指向 Headroom;Headroom 壓縮後轉發至 Ollama 上游 URL。

分步實操(Ollama + Headroom)

1. 主機上基線 Ollama

ollama --version
ollama pull llama3.2:3b          # 或 deepseek-r1:7b、qwen2.5-coder 等
curl -s http://127.0.0.1:11434/api/tags | python3 -m json.tool

按內存選模型:16 GB Mac mini 跑 Agent 循環宜 3B–8B14B+ 建議 32 GB 以上纔有舒適 KV 餘量。

2. 安裝 Headroom 代理棧

python3 --version   # 3.10+
pip install "headroom-ai[proxy]"
headroom --version

3. 啓動 Headroom 並指向 Ollama

export OPENAI_API_KEY=ollama-local
export OPENAI_TARGET_API_URL=http://127.0.0.1:11434/v1
headroom proxy --host 127.0.0.1 --port 8787 \
  --log-file ~/.headroom/ollama-agent.jsonl

驗證:

curl -s http://127.0.0.1:8787/health | python3 -m json.tool

4. Agent SDK 指向 Headroom,勿直連 Ollama

export OPENAI_BASE_URL=http://127.0.0.1:8787/v1
export OPENAI_API_KEY=ollama-local

OpenClaw 本地模型——在 ~/.openclaw/.env 配置;入口模式可配合 OpenClaw + Ollama Webhook

5. 自定義 Python Agent 的庫模式

from headroom import compress
import ollama

messages = [...]  # 含臃腫 tool 角色
result = compress(messages, model="llama3.2")
response = ollama.chat(model="llama3.2", messages=result.messages)
print(response["message"]["content"])

若已自行編排 HTTP,庫模式可避免代理端口衝突。

6. 壓縮前限制工具載荷(雙保險)

rg -n "ERROR" logs/ | head -n 200

優於 cat logs/build.log。Headroom 能救粗糙 Skill,但 200 行上限 可約束 16 GB 主機最壞延遲。

7. 測量節省與延遲

curl -s http://127.0.0.1:8787/stats | python3 -m json.tool

記錄每輪 tokens_beforetokens_after 與牆鍾時間。首次倉庫審計目標 ≥50% 縮減;JSON/搜索類工具轉儲常見 60–90%

8. 可選 MCP:Claude Code + 本地 Ollama 邊車

headroom mcp install

本地模型在另一終端運行時可用 MCP headroom_stats——雲端 Hermes 記憶壓縮 與本地 Headroom 混用時很實用。

9. launchd 持久化代理(常開 Mac mini)

創建 ~/Library/LaunchAgents/ai.headroom.ollama.plist,設 OPENAI_TARGET_API_URL=http://127.0.0.1:11434/v1,在 Agent 網關之前加載。Ollama 單獨 LaunchAgent——啓動順序:Ollama → Headroom → Agent

10. 換模型後迴歸檢查

ollama pull 新標籤後,重跑一個臃腫工具夾具。量化變化不能替代壓縮——上下文長度仍主導預填充。

Mac mini 基準模式

夾具原始 token(典型)Headroom 後(典型)牆鍾目標
失敗套件 npm test stderr2.5 萬–4.5 萬3k–8kM4 16 GB 預填充 <45 秒
find . -name '*.ts' 列表1.5 萬–3 萬2k–5k<30 秒
單份 500 KB JSON API 轉儲4 萬–7 萬4k–10k<60 秒

每個夾具用代理旁路跑一次(x-headroom-bypass: true 頭),記錄你要消除的卡頓——數字寫入團隊 wiki。

故障排查

Agent 仍直連 11434

現象:Headroom /stats 請求數爲零。

修復:檢查進程環境(ps eww -p $(pgrep -f your-agent))。Agent 進程OPENAI_BASE_URL 須爲 http://127.0.0.1:8787/v1,不能只在 shell 配置裏。

經代理 Ollama 404 模型不存在

現象:Headroom 日誌上游 404。

修復:聊天請求模型名須與 ollama list 一致;先本地 pull,Headroom 不管理模型文件。

壓縮刪掉必要堆棧行

現象:審計缺行號。

修復:在 Skill 中啓用 CCR 檢索(「堆棧不全時調用 headroom_retrieve」)或單輪旁路。勿全局關壓縮。

Mac mini 換頁至死

現象:Agent 運行時 memory_pressure 危急。

修復:更小量化(:q4_0)、減少並行工具,並加 Headroom。16 GB 上避免 14B + 8 萬原始上下文同時跑。

常見問題

Headroom 只能接 OpenAI 雲端嗎?

否。代理壓縮後轉發至任意 OpenAI 兼容上游——Ollama、本地 vLLM 或雲端。將 OPENAI_TARGET_API_URL 指向本地服務即可。

95% 壓縮現實嗎?

部分 Agent 負載公開最高 92%;混合倉庫常見 60–80%。用 /stats 實測——勿每輪假設營銷上限。

能緩解 GPU 過熱嗎?

相對巨型原始 prompt,預填充工作量降低會減熱——但持續工具循環仍喫 CPU/GPU。Mac mini 上關注 powermetrics

Headroom 與 Hermes trajectory_compressor

Hermes 縮長對話記憶;Headroom 在 HTTP/庫層縮工具與 RAG 載荷。雲地混合可兩者並用。

用雲端 Anthropic 還需要 Headroom 嗎?

控費可選;本地模型往往靠它區分可用與假死。混用提供商見 雲端 OpenClaw Headroom

在雲 Mac mini 上搭建 Ollama + Headroom

在 Apple Silicon 上經 SSH/VNC 運行代理與 Ollama——上線 Agent 循環前驗證端口、LaunchAgent 順序與臃腫工具基準。

Headroom + Ollama
本地大模型加速手冊 — 不含價格