AIDive

Claude Code 的 subagent 沒用 Haiku 5.5?2 個檔案搞定

AIDive · 發布

編碼 agentAI 模型

開場:沒人叫來用的便宜工人

Claude Code 的 subagent 不會用 Haiku 5.5,除非有兩個檔案另外指定。這就是全部的發現,本文其餘部分都是它背後的量測:在一個真實的專案上做七個日常任務,讓 Haiku 5.5、Sonnet 5.5 和 Opus 5.5 各自擔任工人,每跑完一個區塊就讀一次方案用量表。

Haiku 5.5 在 2026 年 10 月 7 日發布,Anthropic 把它定位成 subagent 模型,每個 token 的價格是舊版 Haiku 的十分之一。一個帳號一個月的紀錄則說明了另一半:2,631 次 subagent 執行,只有 42 次用 Haiku,因為每個 subagent 都繼承主模型。把所有 subagent 都改成 Haiku,會引出一個明顯的問題:方案用量表到底會還給你多少?兩個檔案可以讓 Explore agent 改用 Haiku,而大多數人第一個想到的設定,單獨使用時什麼也不會改變。大家都信任的用量明細面板,則是用寫死在執行檔裡的四個數字算出來的。

一個任務在各模型上要花多少

Haiku 5.5 的價格是每百萬個輸入 token $0.10、每百萬個輸出 token $0.50,Haiku 4.5 則是 $1 和 $5。這個價格適用於 100,000 token 以內的 prompt;超過這條線,整個請求的價格會變成五倍。Anthropic 所說的「90%」不是折扣:它指的是前一代 Haiku 的請求中,沒有超過這條線的比例。

模型 每百萬 token 輸入 每百萬 token 輸出
Haiku 5.5(prompt 100k 以內) $0.10 $0.50
Haiku 5.5(prompt 超過 100k) $0.50 $2.50
Haiku 4.5 $1.00 $5.00
Sonnet 5.5 $2.00 $10.00
Opus 5.5 $4.00 $20.00

實際使用中還有兩個陷阱。新的 tokenizer 把同樣的文字算成比 Haiku 4.5 多約 30% 的 token。而在 max effort 下,一次獨立的測試量到每個任務約 162,000 個輸出 token,大約是一個競爭對手模型的三倍。Anthropic 自己的說法很謹慎:複雜的 agentic coding 仍然是 Sonnet 和 Opus 比較好的選擇。在 Terminal-Bench 4.0 上,Haiku 5.5 得分 39.2%,Sonnet 5.5 是 70.6%。

這次測試涵蓋 subagent 實際會拿到的任務。一個真實的專案 tinydb,測試套件有 226 個測試。七種任務:探索程式碼、修正失敗的測試、清掉 lint 錯誤、寫 commit 訊息、加一個小功能、審查 diff、總結架構。四個工人:中等 effort 的 Haiku 5.5、低 effort 的 Haiku 5.5、Sonnet 5.5、Opus 5.5。總共 182 次執行,每一次都由隱藏測試或固定規則檢查,而不是靠肉眼。

設定 執行次數 通過 小功能的牌價 小功能的牆上時間
Haiku 5.5,低 effort 70 70 $0.0052 17.1 s
Haiku 5.5,中等 effort 70 70 $0.0078 26.3 s
Sonnet 5.5 21 21 $0.1050 30.3 s
Opus 5.5 21 21 $0.1675 30.3 s

探索程式碼在低 effort 的 Haiku 上花 $0.0035,在 Opus 上花 $0.1454,差了大約四十倍。Haiku 從來沒有比較慢:七個任務全部通過,價格只是零頭,速度一樣快甚至更快。

為什麼預設沒有任何東西跑在 Haiku 上

預設沒有任何東西會送到 Haiku,這是刻意的設計。從 2.1.198 版開始,內建的 Explore agent 會繼承主 session 的模型,上限是 Opus;在那個版本之前,它跑在 Haiku 上。每個自訂 subagent 也一樣。文件給出了解析順序:啟動時指定的模型,然後是 agent 檔裡的模型,接著是 CLAUDE_CODE_SUBAGENT_MODEL 變數,最後才是主模型。

這份清單裡有個陷阱,文件也講得很明白:單獨設定 subagent 模型變數,並不會改變內建 Explore 和 Plan agent 所用的模型。兩次 headless 執行證實了這兩點。主 session 用 Fable 模型,問一個問題(用 Explore agent 找出查詢快取在哪裡被清除),工具結果會說出實際執行的模型:Opus 5.5。同樣的執行,只把 subagent 模型變數設成 Haiku 5.5、其他什麼都不改:還是 Opus 5.5。

這就是為什麼一個月的紀錄會是那個樣子。在 2,631 次 subagent 執行中,有 42 次用了 Haiku。subagent 佔了帳號全部 token 的 48.1%,而 Haiku 在加權成本中的佔比是 0.27%。這個預設是站得住腳的選擇:跑在主模型上的探索者,讀程式碼的能力和主模型一樣好。沒有人公布的,是它要花多少錢。

那兩個檔案

兩個檔案就能解決,你可以只用其中一個,也可以兩個都用。小的那個是專案裡的一個 agent 檔:建立 .claude/agents/Explore.md,名稱取為 Explore,加上描述,把模型設成完整 ID 的 claude-haiku-5-5,把 effort 設成 low,並把工具限制為 Read、Glob、Grep 和 Bash。從此 Claude Code 就把你的檔案當成 Explore agent,文件也明白寫了:定義一個名為 Explore 的專案 subagent,並指定 Haiku 模型。同樣的 headless 執行這時會回報 resolvedModel: claude-haiku-5-5。

第二個檔案是你的 settings。在 .claude/settings.json 裡加一個 env 區塊,放兩個變數:CLAUDE_CODE_SUBAGENT_MODEL 設為 claude-haiku-5-5,以及 CLAUDE_CODE_SUBAGENT_MODEL_FORCE 設為 1。大家最常漏掉的就是 force。從 2.1.257 版開始,這個旗標會把 subagent 模型套用到每一個 subagent,忽略啟動時或 agent 檔裡設定的覆寫。在環境裡有這兩個變數、沒有 agent 檔的同一次執行,又讀到 Haiku 5.5。

你想要的 使用 副作用
每個 subagent 都便宜 帶有 force 旗標的 settings env 區塊 你刻意指定 Opus 的 agent 也會降到 Haiku
只讓探索者便宜 Explore agent 檔 其他 agent 保留各自的模型

請固定使用完整的模型 ID。haiku 這個別名只在 Anthropic API 上代表 Haiku 5.5;在 Bedrock、Vertex 和 Foundry 上,它仍然代表 Haiku 4.5。Claude Code 儲存庫上有一個公開的 issue,回報 1,371 個 subagent 中有 1,149 個跑在父層的 Opus 模型上,而檔案寫的是別的模型,在十幾個版本間(2.1.277 到 2.1.290)時有時無,Anthropic 沒有回覆。在目前的 2.1.293 版上,182 次執行每一次都用了設定的模型。即便如此,還是要檢查:/tasks 指令會顯示每個 subagent 實際用的模型,headless 執行的工具結果也帶有這個資訊。剩下的槓桿是 effort,因為這些模型的思考無法關閉;Explore 檔裡設成低 effort 是刻意的選擇,它能換到什麼,後面有量測。

真正的用量表看到了什麼

每一次帶串流輸出的 headless 執行都會送出一個 rate_limit_event。裡面有兩個比例,五小時視窗和七天視窗,各有兩位小數。它們直接來自 Anthropic 隨每次回覆送出的回應標頭,解析度是一個百分點,沒有更細。四個工人分成四個區塊依序執行,期間沒有任何其他東西動到這個帳號。

區塊 執行次數 五小時視窗(之前) 五小時視窗(之後) 每週視窗
Haiku 5.5,低 effort 70 21% 21% 67%
Haiku 5.5,中等 effort 70 21% 21% 67%
Sonnet 5.5 21 21% 22% 67%
Opus 5.5 21 22% 23% 67%

以牌價計算,整個矩陣花了 $4.09。在用量表上,它花了五小時視窗的兩個百分點,以及每週的零個百分點。Haiku 那一半花了 $0.54,卻什麼也沒動:這個帳號視窗的一個百分點,比 140 個這樣的 Haiku 任務還貴。

Anthropic 對模型的權重只公布了一句話:Opus 每一輪比 Sonnet 貴好幾倍,Sonnet 又比 Haiku 貴。好幾倍。哪裡都沒有給出數字。這些視窗是所有模型共用的一個池,所以在 session 中途換模型,不會還給你任何額度。每個區塊都有最多一個百分點的四捨五入誤差,這表示 Sonnet 的一個百分點和 Opus 的一個百分點無法區分。用量表能確定證明的是:這些模型上的一個有範圍的任務,在這個解析度下是看不見的。每個模型的權重,得從別的地方去讀。

/usage 明細只是估算

打開 /usage 面板,你會看到一份明細:歸因到 skill、subagent、外掛和 MCP 伺服器的百分比。它看起來像伺服器資料,但不是。文件說這些數字是近似值,是根據這台機器上的本地 session 紀錄計算的,所以公式就在執行檔裡。對執行檔跑 strings,就會掉出兩個函式。

因素 權重
模型層級:Fable 10
模型層級:Opus 5
模型層級:Haiku 1
模型層級:其他 3
快取 token 1
新的輸入 token 10
快取寫入 12.5
輸出 token 50

每筆紀錄的權重是 token 總和乘以模型層級。這些是客戶端的歸因權重,不能證明伺服器如何計算你的額度,而落差也確實存在。把公式套在上面的區塊:70 次 Haiku 中等 effort 的執行得 29.5 單位,21 次 Opus 執行得 27.3。面板會把 Haiku 區塊排在 Opus 區塊前面;真正的用量表則是零個百分點對一個百分點。

底下還有第二個缺陷。一個公開的 issue 回報,subagent 的 transcript 記錄的是第一個串流片段的用量:一次執行記下 461 個輸出 token,同一次執行以 headless 方式記下的是 15,575。這台機器上的一份 transcript,每一筆 assistant 紀錄都只顯示 16 個輸出 token。公式把這個被低估的數字乘以 50,所以寫很多內容的 subagent 會從面板上消失。請把它當成它本來的用途:看哪個 skill 或 agent 在吃你的本地紀錄,並附有日和週的鍵。至於模型在你真實額度裡的權重,它只是猜測。

一天的額度到底花在哪

用量表能看見的尺度是一天。Andrea Grandi 在 Haiku 5.5 發布當天公布了他的數字,用的是 Pro 方案。他的主 session 以中等 effort 跑 Opus 5.5;一個 Sonnet 5.5 的 implementer agent 負責寫程式碼;其餘由兩個 Haiku 5.5 agent 處理,一個是 plan 模式、沒有編輯工具、最多十二輪的 scoper,另一個是低 effort 的 shipper,負責 commit、push 和開 PR。

指標 數值
Pull request 數量與 session 數量 13 個,10 個 session
每個 PR 佔五小時視窗 約 6%
單一 PR session 佔每週計數器 約 1%
使用 subagent 時每個 PR 的估計成本 $2.31
只用 Opus 時每個 PR 的估計成本 $3.59
每個 session 的請求數(之前與之後) 75 到 54
每個請求的 token 數(之前與之後) 119,000 到 107,000

他自己的那句話才是重點:如果把 subagent 的 token 按 Opus 的價格計算,這十個 session 只會貴 5%。省下來的部分來自主 context 保持很小。一個月的紀錄從另一邊說了同樣的事:subagent 用掉 48.1% 的 token,而所有 token 的 96% 是快取讀取。每個 subagent 一開始都有一個啟動 prompt;在這個帳號上,中位數是 47,000 token,不管工人是 Opus、Sonnet 還是 Haiku,都是同一疊內容。換模型並不會讓它變小。

effort 確實會改變食量。以小功能來說,中等 effort 的 Haiku 在 14 輪中讀了 233,000 token;低 effort 的 Haiku 在 8 輪中讀了 140,000 token,得到同樣被接受的結果;Opus 只需要 88,000。一次獨立的測試在更高的位置量到同樣的曲線:high effort 下每個任務 55,000 個輸出 token,max 下是 162,000。每個 token 便宜,每個任務卻更能吃,而這個旋鈕在你手上。兩點保留:Grandi 的金額是 Pro 方案上的估計,這裡的矩陣只用了一個小專案。兩者都不等於在 Max 方案上跑一個星期。

路由表、限制與資源包

路由表:探索程式碼、修正失敗的測試、清掉 lint、寫 commit 訊息、加一個小功能、審查 diff、總結架構。這七個全部交給低 effort 的 Haiku 5.5,在低與中等 effort 下各有 70 次執行中的 70 次被接受。每個任務的牌價落在五分之一美分到半美分之間,而 Opus 是六到十七美分。留在 Sonnet 或 Opus 的,是複雜的 agentic coding,這是 Anthropic 自己的話,Terminal-Bench 給 Haiku 的分數是 39.2 對 70.6;發布當時唯一被測試過的評論也以同一句話收尾:困難的程式碼工作請留在 Sonnet。

兩個檔案就放在這張表旁邊:帶有完整 Haiku 模型 ID 和低 effort 的 Explore agent 檔,以及帶有 subagent 模型和 force 旗標的 settings env 區塊。檢查方式是 /tasks 指令,它會顯示每個 subagent 實際用的模型。請相信那一行,而不是檔案。

回到一開始的問題。把每個 subagent 都改成 Haiku,用量表會還給你什麼?對一個有範圍的任務來說,在任何模型上都不到一個百分點。整個 182 次執行的矩陣,讓五小時視窗動了兩個百分點,每週視窗動了零。真正的一週額度,是從主 context 和每個 subagent 帶著的啟動 prompt 裡回來的。換模型只是便宜的那一部分,而且可以免費拿。

限制 說明
專案 一個小專案,tinydb,226 個測試
任務大小 七個有範圍的任務,每個不到一分鐘,不是一整天的 agentic coding
用量表 解析度一個百分點,每個區塊正負一個百分點
倍率 Anthropic 沒有公布各模型的倍率
版本 2026 年 10 月 8 日的 Claude Code 2.1.293;更早的版本會忽略 agent 檔裡的模型(公開的 issue)

免費資源包裡有路由表、兩個檔案,以及量出這些結果的測試工具:七個 prompt、檢查程式和執行器。

免費資源

來源

常見問題

為什麼 Claude Code 的 subagent 預設不使用 Haiku 5.5?
自 2.1.198 版起,內建的 Explore agent 會繼承主 session 的模型(上限為 Opus),自訂 subagent 則依序從啟動旗標、agent 檔、CLAUDE_CODE_SUBAGENT_MODEL 變數,最後才是主模型來解析模型。除非有檔案指定,否則沒有任何東西指向 Haiku。
要怎麼讓 Claude Code 的 Explore agent 跑在 Haiku 5.5 上?
在專案中建立 .claude/agents/Explore.md,name 設為 Explore、model 設為 claude-haiku-5-5、effort 設為 low,工具為 Read、Glob、Grep 和 Bash。Claude Code 會把這個檔案當成 Explore agent,之後 headless 執行的工具結果會回報 resolvedModel claude-haiku-5-5。
只設定 CLAUDE_CODE_SUBAGENT_MODEL 就能把所有 subagent 切到 Haiku 嗎?
不行。文件說明這個變數單獨使用時不會改變內建的 Explore 和 Plan agent,headless 執行也證實 Explore 仍然停在 Opus 5.5。再加上把 CLAUDE_CODE_SUBAGENT_MODEL_FORCE 設為 1(2.1.257 版或更新),這個模型就會套用到每個 subagent,包括你指定 Opus 的那些。
Haiku 5.5 能處理哪些 Claude Code 任務?
在這次測試中,七個日常 subagent 任務全部可以:探索程式碼、修正失敗的測試、清掉 lint、寫 commit 訊息、加一個小功能、審查 diff 和總結架構。在有 226 個測試的 tinydb 儲存庫上,每一項在低與中等 effort 下都是 70 次中的 70 次通過。複雜的 agentic coding 仍留給 Sonnet 或 Opus,這是 Anthropic 自己的說法。
把 subagent 切到 Haiku 5.5 能省多少方案額度?
每個任務省下的量,比用量表能顯示的還少。140 次 Haiku 執行讓五小時視窗維持在 21%,21 次 Sonnet 執行讓它從 21% 變成 22%,21 次 Opus 執行讓它從 22% 變成 23%,182 次執行期間每週視窗始終是 67%。更大的節省來自讓主 context 保持很小,而不是換模型。
Claude Code 的 /usage 明細準確嗎?
它是本地估算。數字是根據你機器上的 session 紀錄,以寫死在執行檔裡的權重算出來的(Fable 10、Opus 5、Haiku 1、其他 3;輸出 token 乘以 50),而且 subagent 的 transcript 會低估輸出 token。它能告訴你哪個 skill 或 agent 在吃你的紀錄,卻不能告訴你伺服器如何計算你的額度。

相關影片