Caveman:把命令輸出壓成短句,替 Claude Code 省下三成輸入 token
Caveman 將詳細的命令輸出重寫為緊湊的格式,以便 Claude Code 可以在常規工具結果上花費更少的令牌。
秒懂
- 它是什麼?
- Caveman 是一套以代理與技能兩種形式存在的工具,目標是讓 AI 代理少讀冗長輸出,官方宣稱在固定基準測試中可降低 33.2% 的 provider 回報輸入 token。本文拆解它的運作機制、安裝方式、限制與適用邊界。
- 適合誰用?
- 若你的日常工作是讓 Claude Code 或 Codex 反覆執行測試、讀取日誌、搜尋程式碼,而帳單上的 input token 明顯偏高,Caveman 值得一試。它的代理模式不需改動程式碼,技能模式則能讓回覆變短,兩者可獨立使用。
- 可以商用嗎?
- 請先確認。這個儲存庫使用的授權不在我們自動分類的範圍內,商用前請閱讀儲存庫中的 LICENSE 檔案。
- 還在維護嗎?
- 有在維護。儲存庫在最近一天內有新的提交。
- 用什麼語言寫的?
- 主要是 JavaScript(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
它解決的是 token 浪費,不是模型能力問題
Caveman 的出發點很實際:AI 代理在執行例行工具呼叫時,會讀進大量重複的日誌、JSON 結構或搜尋結果,這些內容佔據 context window,卻對最終答案貢獻極少。以 README 中的例子,同樣一段 React 重渲染解釋,正常代理用了 69 個 token,Caveman 代理只用 19 個。這不是讓模型變笨,而是把輸入端的雜訊去掉,讓模型把注意力放在關鍵資訊上。目標使用者是頻繁操作 CLI 的開發者,尤其是依賴 Claude Code、Codex 或 Gemini CLI 執行測試、讀取錯誤訊息的大量工作。對那些只偶爾用 AI 寫程式的人,省下的 token 可能無感,但對每天跑數百次工具呼叫的團隊,累積效果可觀。
兩條產品線:代理壓縮輸入,技能壓縮輸出
Caveman 分成兩個獨立產品,可擇一或同時使用。第一是 Caveman Proxy,它包住你的代理,在每次 provider 呼叫前壓縮請求內容,並提供 byte-exact 還原能力。第二是原始的 skill,讓代理用精簡的「山頂洞人語」回答,但程式碼、命令與錯誤訊息保持原樣。代理模式透過本地 proxy 轉發流量,不需改動程式碼,也不需 Caveman 後端。技能模式則直接安裝進 30 多種代理,透過提示詞約束回覆風格。兩者互補:代理省的是你付給 provider 的 input token,技能省的是輸出端的 token,但後者通常較便宜。若你的成本主要來自輸入,代理是主要工具;若你只是討厭冗長回覆,技能就夠了。
壓縮引擎如何決定保留什麼
Caveman 的核心是 Caveman Engine,它先以 detect() 判斷 payload 類型,再交給對應的壓縮器。README 列出六種類型與目標節省比例:json 保留鍵值結構與錯誤訊息,可省 70 到 90%;log 保留錯誤、堆疊追蹤與首尾行,丟棄 INFO 與進度噪音,省 85 到 95%;code 保留 imports、簽名與型別,省略函式本體,但保持語法有效,省 40 到 70%;diff 保留檔案標頭與變更行,省 60 到 80%;search-result 保留頂部與底部命中,省 80 到 95%;text 與 HTML 保留標題與重要段落,省 50 到 80%。此外,contextwindow.Pack() 會用 BM25 相關性、時效性與錯誤訊號,把候選內容塞進 token 預算,並維持原始順序,讓時間線不被破壞。這表示壓縮不是盲目截斷,而是語意導向的取捨。
安裝與實際指令:從一行命令到完整安裝器
安裝方式分三層。最簡單的是 npm 全域安裝 CLI:npm install -g @caveman-ai/cli,然後執行 caveman setup --install,再依代理選擇 caveman claude、caveman codex、caveman gemini 等。技能模式則用 npx skills add JuliusBrussee/caveman。若需要完整安裝器,它會自動接上 Claude Code hooks 與 statusline,並偵測機器上所有支援的代理,可安全重跑,需要 Node.js 18 以上,指令是 curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/v2.3.1/install.sh | bash。Windows 用戶用 PowerShell 執行 install.ps1。單一代理也有對應指令,例如 Claude Code 用 claude plugin marketplace add JuliusBrussee/caveman。安裝後,caveman learn 會掃描你的歷史紀錄,產生 Cave Score 與 token 流失排名,caveman learn implement 則把修正計畫交給你的代理,逐項提案 diff,你同意才套用。
真實限制:壓縮不是無損,依賴情境是關鍵
Caveman 的代理模式號稱 byte-exact 還原,但那是指 recovery copy 存在本地磁碟,不是說壓縮後的內容保留所有細節。當壓縮器丟棄 INFO 日誌或函式本體時,若代理的答案依賴被丟棄的資訊,就可能出錯。README 承認基準測試有 18 項 exact-answer 檢查,但那是固定情境,真實工作千變萬化。例如,debug 一個罕見的 race condition,錯誤訊息可能藏在看似無關的 INFO 行中,壓縮器可能誤判為噪音。另一個限制是代理模式需要本機 proxy 常駐,對有嚴格網路政策的企業環境,繞過 proxy 或設定憑證可能增加部署成本。此外,caveman explore install 需要 Chrome 才能執行 browse 功能,若你的環境沒有圖形瀏覽器,這部分功能無法使用。
替代方案:提示詞工程與其他過濾工具
最直接的替代方案是修改代理的系統提示詞,要求它忽略 INFO 層級日誌或只回報錯誤摘要。這不需要安裝任何東西,成本為零,但效果取決於模型遵循指令的程度,且無法結構化處理大型 JSON 或 diff。另一類是輸出過濾工具,例如在 shell 層用 grep 或 jq 預先處理命令輸出,再餵給代理,這能精準控制保留內容,但需要手動為每個命令撰寫過濾規則,無法像 Caveman 那樣自動偵測類型。Caveman 的差異在於它內建類型偵測與語意壓縮,並提供還原機制,這是純提示詞或 grep 做不到的。若你的需求只是偶爾壓縮單一命令輸出,caveman shrink -- pnpm test 這類指令可能比完整代理更輕量。
維護與授權:BSL-1.1 與 MIT 的界線
Caveman 的授權分兩層:代理模式(Caveman Proxy)使用 BSL-1.1,技能模式使用 MIT。BSL-1.1 是 source-available 授權,不是純開源,商用時需確認是否符合其條款,例如是否允許內部使用或需要額外授權。CLI 本身是 MIT,但代理的 runtime 是 BSL。這對企業採用者是一個需要法律評估的點。維護方面,專案最近有 v2.3.1 與 v2.3.0 的密集釋出,顯示開發活躍,但這不代表穩定。升級時需注意代理與技能版本是否同步,因為壓縮引擎的變更可能影響還原格式。安裝器支援重跑,這對升級有幫助,但每次升級後建議重新執行 caveman learn 檢查 token 節省是否仍符合預期。
編輯結論
若你的日常工作是讓 Claude Code 或 Codex 反覆執行測試、讀取日誌、搜尋程式碼,而帳單上的 input token 明顯偏高,Caveman 值得一試。它的代理模式不需改動程式碼,技能模式則能讓回覆變短,兩者可獨立使用。但若你的工作依賴完整原始輸出,例如除錯複雜的堆疊追蹤或需要逐字審查 diff,壓縮帶來的資訊損失可能造成誤判。安裝前請先執行 caveman learn 掃描自己的歷史紀錄,確認 token 流失的實際來源,再決定是否啟用代理。若你只想減少輸出量而不想引入代理層,直接調整提示詞要求簡短回覆,或改用其他輸出過濾工具,成本更低。最後,代理模式使用 BSL-1.1 授權,技能模式為 MIT,商業部署前需確認授權相容性。
社群筆記