Claude Code 實測:Sonnet 竟比 Haiku 省 44% token——貴的反而更划算
此為深度內容 — 這篇文章深度分析 Claude Code 模型 token 成本結構,探討 Sonnet 比 Haiku 更省額度的反直覺現象
需要登入才能閱讀完整文章。
前言:一個反直覺的發現
選 AI 模型的邏輯,大多數人都這樣想:Haiku 的 token 單價是 Sonnet 的三分之一,所以跑同樣的外部 CLI 指令任務(如 uname -a)應該省三倍的錢。這個邏輯聽起來無懈可擊,直到你實際測量數據。
這篇文章記錄了一次完整的實驗,從設計、執行到結果,一步一步拆解「便宜」背後藏著什麼隱藏成本。
實驗背景:Claude Code 的 context 結構
要理解這個實驗,先要知道 Claude Code 怎麼計算 token。
每次你送出一則訊息,Claude Code 不只帶上你那句話,而是把整個 context 打包一起送:
- System prompt:Claude Code 的基本指令
- System tools:內建工具的定義(bash、file read/write、edit 等)
- MCP tools:你連接的外部工具定義
- Skills:CLAUDE.md 或 skills 檔案
- Messages:實際的對話歷史
其中前四項是每則訊息的固定成本,不管你說了什麼,都要帶著走。Messages 才是會隨對話累積的變動成本。
第一階段:基準測量
實驗方法
開兩個全新的 Claude Code session,Messages 都只有初始的 ~130 tokens(可忽略不計),立刻執行 /context 記錄數字。唯一變數:一個用 Sonnet 4.6,一個用 Haiku 4.5。
結果
| 項目 | Sonnet 4.6 | Haiku 4.5 |
|---|---|---|
| System prompt | 6.1k | 6.1k |
| System tools | 9.4k | 22.3k |
| MCP tools | 無 | 412 |
| Skills | 609 | 609 |
| Messages | ~130 | ~127 |
| 固定成本合計 | 16.1k | 29.3k |
Haiku 的 system tools 是 Sonnet 的 2.4 倍。
差距來自 Claude Code 為 Haiku 提供了更詳細的工具說明,作為補償模型理解能力的設計。這是合理的工程決策,但對使用者而言是完全不透明的隱藏成本。
每發一則訊息,Haiku 比 Sonnet 多帶 13.2k input tokens 的固定負擔。
第二階段:同一 session 切換模型
為了交叉驗證,在同一個 session 裡從 Haiku 切換到 Sonnet(/model sonnet),再次執行 /context:
| 項目 | Haiku 4.5(切換前) | Sonnet 4.6(切換後) |
|---|---|---|
| System tools | 22.3k | 9.4k |
| Messages | 11.4k | 24.7k |
| 總計 | 40.8k | 40.8k |
總 token 數相同是因為 Messages 在切換期間繼續累積——這部分數字不能直接比較。但 system tools 的差距(22.3k vs 9.4k)穩定重現,確認這不是一次性的異常。
第三階段:真實任務測試——SSH + bash 大量指令
光看固定成本還不夠。真實的使用場景裡,模型如何執行任務才是決定因素。
實驗設計
給兩個模型同一個目標(連線遠端主機、執行一系列系統診斷指令),觀察:
- 模型自己決定如何拆解任務
- 執行完成後的
/context數字
這才是真實使用場景——人類只提供方向與目的,不規定執行細節。
結果
| 項目 | Sonnet 4.6 | Haiku 4.5 |
|---|---|---|
| System tools | 9.4k | 22.3k |
| Messages 累積 | 3.3k | 5.8k |
| 總 context 消耗 | 19.1k | 34.1k |
關鍵觀察:執行策略的差異
兩個模型不只 token 數字不同,連做事的方式都不一樣:
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 額度限制。token 消耗量越大,越快耗盡額度。
跑同樣任務:
- Haiku 消耗 34.1k tokens
- Sonnet 消耗 19.1k tokens
Sonnet 只用了 Haiku 的 56% 額度。
而且這個差距隨著任務變長會持續擴大,因為 Haiku 的 Messages 累積速度更快,也會更早觸發 autocompact(當 context 接近上限時,Claude Code 自動壓縮對話歷史的機制)——壓縮本身又需要消耗一輪額外的 token,形成複利式的成本疊加。
什麼情況下 Haiku 真的比較省?
本實驗的場景是 SSH + bash 大量工具呼叫,固定成本差異最容易被放大的情境。以下情況 Haiku 可能仍有優勢:
- 極短的 session(< 5 輪對話):固定成本差距來不及累積,Haiku 單價優勢尚可發揮
- 純文字任務:問答、翻譯等不需大量 tool call,system tools 差距影響相對小
- API 計費模式:按 token 付費時,Haiku 單價仍有優勢,需依實際任務結構計算損益平衡點
實驗的侷限性
本次測試為單一任務類型、有限輪次的快照測量,未涵蓋檔案編輯、長文生成等其他場景。System tools token 數若在未來版本更新後改變,本文數字也會失效。建議讀者以 /context 指令在自己的使用場景中複現,以當前版本的實際數字為準。
結語
這跟超市買洗碗精是同一個邏輯:$49 的那瓶看起來便宜,但如果濃度只有一半,每次要擠兩倍的量,$89 的才是真的省。問題是,沒有人把「隱藏成本」印在標籤上——Claude Code 為 Haiku 注入的詳細工具說明也一樣,使用者根本看不到。
選模型的正確框架不是「單價比較」,而是「完成同一件任務,哪個選項的總 token 消耗最低」。特別是在訂閱制的額度限制下,token 消耗速度直接決定你能在一個計費週期內完成多少工作。
對工具密集型的 Claude Code 使用者來說,這份數據指向一個明確的結論:在預算相同的前提下,Sonnet 讓你做更多事。
本文所有數據均來自實測,使用 Claude Code /context 指令記錄。測試環境:Claude Code with SSH + bash tool calls,Sonnet 4.6 vs Haiku 4.5,2026 年實驗。
想看更多作品、服務與主站整理,請前往 stanwu.org。