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.6Haiku 4.5
System prompt6.1k6.1k
System tools9.4k22.3k
MCP tools412
Skills609609
Messages~130~127
固定成本合計16.1k29.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 tools22.3k9.4k
Messages11.4k24.7k
總計40.8k40.8k

總 token 數相同是因為 Messages 在切換期間繼續累積——這部分數字不能直接比較。但 system tools 的差距(22.3k vs 9.4k)穩定重現,確認這不是一次性的異常。

第三階段:真實任務測試——SSH + bash 大量指令

光看固定成本還不夠。真實的使用場景裡,模型如何執行任務才是決定因素。

實驗設計

給兩個模型同一個目標(連線遠端主機、執行一系列系統診斷指令),觀察:

  1. 模型自己決定如何拆解任務
  2. 執行完成後的 /context 數字

這才是真實使用場景——人類只提供方向與目的,不規定執行細節。

結果

項目Sonnet 4.6Haiku 4.5
System tools9.4k22.3k
Messages 累積3.3k5.8k
總 context 消耗19.1k34.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