AI 帳單從每月 $500 降到 $50:Hermes 軌跡壓縮實戰(2026)
如果你的 AI 智慧體帳單 从「一杯咖啡」涨到「半房租」,你並不孤單。高频用戶都會撞上同一堵牆:長工具鏈、重複擷取頁面、上下文裡不断堆疊的「思考過程」,直到下一张 API 發票讓人清醒。
Hermes Agent(NousResearch/hermes-agent,MIT)从兩層下手:會話内即時壓縮(TUI 裡能直接感受到)和 trajectory_compressor.py(對已導出軌跡做批次處理)。两者像一位編輯,把模型的 「思考日記」 刪成仍能做決策的摘要。
為什麼 token 焦慮才是真正的瓶頸
帳單按 在途 token 增長,而不是按「聊了幾句」。一次「擷取網站並清洗 CSV」可能觸發 10–20 次終端或瀏覽器工具调用、選擇器失敗後的多輪重試,以及每輪模型调用都重新傳送的完整歷史。
以約 $3/百萬 input、$15/百萬 output 的中檔模型計,單次 40 萬 token 的重任務約 $2–$4。每天 3 個 agent、各跑 5 次,很容易到 每月約 $500,還遠未到「企業級」用量。
| 手段 | 作用 | 適合誰 |
|---|---|---|
執行期壓縮(compression.enabled) | 上下文達閾值(預設 50%)時自動摘要中間段 | 日常 CLI / 閘道用戶 |
/compress | 手動「現在就剪日記」 | 長偵錯會話 |
trajectory_compressor.py | 把 JSONL 軌跡壓到 target_max_tokens | 訓練 / 審計導出團隊 |
| 廉價摘要模型 | 用 Gemini Flash 等做 auxiliary.compression.model | 主模型貴、摘要不必貴 |
可引用定義:Hermes 軌跡壓縮保留頭部輪次(系統、用戶、首條工具鏈)與尾部輪次(近期結論),把臃腫中間輪次合併為一條可讀摘要,後續工具调用仍可繼續。
隱喻:思考日記 vs 管理層摘要
模型像在寫 日記:每次工具输出、堆疊追蹤、半成品計畫都進上下文;計費系統却讓你在 每一輪 重新「通讀整本日記」。壓縮就是在中間插入 管理層摘要:開頭保留(你的需求、首輪計畫、首個工具结果),結尾保留(最後改動的文件、最终答案),中間收成「第 4–11 步擷取了 48 個商品頁,去重後 312 行」——連貫性還在,不必再為十幾頁原始 HTML 買單。
架構:兩層壓縮,一個目標
| 層級 | 入口 | 儲存 | 何時執行 |
|---|---|---|---|
| 即時會話 | ~/.hermes/config.yaml → compression: | ~/.hermes/state.db SQLite | 對話中;狀態列出現 🗜️ N |
| 批次處理軌跡 | python trajectory_compressor.py | datagen 目錄下 JSONL | 任務結束後 |
典型路徑:擷取清洗 → 上下文 ≥50% 觸發自動壓縮(见 Hermes CLI 上下文壓縮)→ 可選導出 JSONL → 批次處理壓縮。前置:Hermes Mac 安裝指南。
實驗室基準:擷取 + CSV 清洗(可復現)
我們在 2026 年 5 月用 Hermes 重放同一 14 步 任務:分頁文件站、抽表、正規化 CSV、寫出 output/clean.csv、修復兩處 schema。相同提示詞與模型族,三種設定:
| 設定 | 總 token(入+出) | 單次估費¹ | 備註 |
|---|---|---|---|
| A — 壓縮關 | 412,000 | $2.47 | 第 9 步上下文條變橙 |
B — 執行期開(threshold: 0.50) | 94,000 | $0.56 | 自動壓縮 2 次(🗜️ 2) |
| C — B + Flash 摘要 | 94,000 | $0.18 | 摘要按 Flash 計價 |
¹示意單價:input $3/百萬、output $15/百萬,入出比 70/30。
| 設定 | 月 token | 月估費¹ |
|---|---|---|
| A | 約 3.62 亿 | 約 $494 |
| B | 約 8300 萬 | 約 $112 |
| C | 約 8300 萬(摘要更便宜) | 約 $42–55 |
月化假設:5 個 agent × 每天 8 次 × 22 個工作日 = 880 次。團隊说的 $500 → 約 $50,來自執行期壓縮 + 廉價摘要模型 + 减少冗餘工具输出,不是單一開關。
trajectory_compressor.py 主要面向已導出軌跡;不能替代 Discord/Telegram 等即時會話的執行期壓縮——若既聊天又落盤,建議兩層都用。七步實操:打開壓縮
第 1 步 — 安裝並打開配置
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.zshrc
hermes doctor
編輯 ~/.hermes/config.yaml。詳見 Hermes Mac 安裝指南。
第 2 步 — 啟用執行期壓縮
compression:
enabled: true
threshold: 0.50
第 3 步 — 指定廉價摘要模型
auxiliary:
compression:
model: "google/gemini-3-flash-preview"
第 4 步 — 用 /usage 做基線
關閉壓縮,跑一遍擷取清洗任務,記錄 input/output 拆分。
第 5 步 — 開啟壓縮並觀察狀態列
⚕ claude-sonnet-4 │ 94K/200K │ [████░░░░░░] │ $0.18 │ 12m │ 🗜️ 2
第 6 步 — 批次處理軌跡(可選)
python trajectory_compressor.py \
--input=data/my_run/trajectories.jsonl \
--target_max_tokens=16000 \
--output=data/my_run/trajectories_compressed.jsonl
第 7 步 — 運維護欄
- 限制並行工具,避免提示詞裡無限「再試一次」
- 監控類 cron 使用
[SILENT](见 Hermes 定時 Discord 日報) - 按 MCP Mac 開發工具鏈 收窄 filesystem 根目錄
故障排查
開啟壓縮後帳單仍高
現象:🗜️ 始終為 0,token 線性上漲。處理:確認 compression.enabled: true,将 threshold 調到 0.45,大段貼上前手動 /compress。
模型「忘記」早期工具结果
現象:壓縮後重複擷取相同 URL。處理:将 threshold 略提高到 0.55,或在 skill 裡註明「來源已擷取」。
批次處理達不到目標 token
現象:was_compressed: true 仍超 target_max_tokens。處理:降低 summary_target_tokens 或拆分軌跡檔案。
常見問題
/compress 有何不同?/compress 是立即手動;自動壓縮按 threshold 觸發;批次處理在導出後按 target_max_tokens 執行。auxiliary.compression + 長偵錯前 /compress,每週看 /usage。