選 AI 模型的邏輯,大多數人都這樣想:Haiku 的 token 單價是 Sonnet 的三分之一,所以跑同樣的外部 CLI 指令任務(如 uname -a)應該省三倍的錢。這個邏輯聽起來無懈可擊,直到你實際測量數據。每則訊息都有「隱藏的固定成本」
Claude Code 每次送出訊息,不只帶上你說的那句話,而是把整個 context 打包一起送:
- System prompt:Claude Code 的基本指令
- System tools:內建工具的定義(bash、file read/write、edit 等)
- MCP tools:你連接的外部工具定義
- Skills:CLAUDE.md 或 skills 檔案
- Messages:實際的對話歷史
前四項是每則訊息的固定成本,不管你說什麼都要帶著走。
實測結果:
- Sonnet 4.6 固定成本合計:16.1k tokens
- Haiku 4.5 固定成本合計:29.3k tokens
差距的關鍵在 System tools——Haiku 的 system tools 是 Sonnet 的 2.4 倍(22.3k vs 9.4k)。原因是 Claude Code 為理解能力較弱的 Haiku 提供了更詳細的工具說明作為補償,但這對使用者完全不透明。
每發一則訊息,Haiku 比 Sonnet 多帶 13.2k input tokens 的固定負擔。
真實任務下的差距:Sonnet 只用了 Haiku 的 56% 額度
給兩個模型同樣目標——連線遠端主機、執行一系列系統診斷指令:
- Sonnet 4.6 總 context 消耗:19.1k tokens
- Haiku 4.5 總 context 消耗:34.1k tokens
但更驚人的是兩個模型做事方式完全不同:
Haiku:傾向多執行緒,每個指令獨立一次 SSH:
ssh bm "hostname" &
ssh bm "uname -a" &
ssh bm "df -h" &
ssh bm "free -m" &
每個 tool call 和 output 都進 Messages,累積快,SSH 握手也重複多次。
Sonnet:自發性使用組合指令,單次 SSH 完成多個步驟:
ssh bm "hostname && uname -a && df -h && free -m"
一次 tool call,Messages 增加量少很多,執行也更快。
這不是人為設定的差異——是模型在相同目標下自己選擇的執行策略。Sonnet 的能力直接轉化成更有效率的資源使用。
訂閱制用戶最在意的事
如果你用的是 Claude Pro 或 Max 訂閱制,沒有每個 token 的直接費用,但有 usage 額度限制。
跑同樣任務,Sonnet 只用了 Haiku 的 56% 額度。
這個差距隨任務變長會持續擴大,因為 Haiku 的 Messages 累積速度更快,更早觸發 autocompact(Claude Code 自動壓縮對話歷史的機制)——壓縮本身又需要消耗額外 token,形成複利式疊加。
什麼情況下 Haiku 仍有優勢?
- 極短的 session(< 5 輪):固定成本差距來不及累積
- 純文字任務:不需大量 tool call,system tools 差距影響小
- API 計費模式:按 token 付費時,Haiku 單價優勢在特定條件下仍成立
結語
這跟超市買洗碗精是同一個邏輯:49的那瓶看起來便宜,但如果濃度只有一半,每次要擠兩倍的量,89 的才是真的省。問題是,沒有人把「隱藏成本」印在標籤上——Claude Code 為 Haiku 注入的詳細工具說明也一樣,使用者根本看不到。
選模型的正確框架不是「單價比較」,而是「完成同一件任務,哪個選項的總 token 消耗最低」。
在預算相同的前提下,Sonnet 讓你做更多事。
- 本文所有數據均來自實測,使用 Claude Code
/context指令記錄。 - 完整實驗數據與三階段對比請見原文:https://blog.stanwu.org/posts/sonnet-vs-haiku-token-cost/*
注意:本實驗僅在 SSH + bash 工具呼叫情境下設計,具有場景局限性,數據僅供參考。
























