Claude Sonnet 5.5 在 2026 年 9 月 28 日上線,價格沒變,但有五種 Sonnet 5 的請求寫法會回 400 錯誤。 每百萬 token 仍是輸入 2 美元、輸出 10 美元。依 Anthropic 2026 年 9 月 28 日的發表頁,新模型輸出速度比 Sonnet 5 快三成以上。發表頁點名的遷移事項有兩項:關掉思考要改用 between_tools,以及跨帳號移動對話時思考區塊的變更。強制工具呼叫、computer use 與 advisor 三項只寫在開發者文件裡。兩天後,Anthropic 通知 Sonnet 4.5 將在 2026 年 11 月 30 日退役,建議的替代模型就是 claude-sonnet-5-5。
Claude Sonnet 5.5 是 Anthropic 的中階模型,API 代號 claude-sonnet-5-5,沒有日期後綴。只把模型 ID 換掉的程式,很可能在第一個請求就收到 400。
Sonnet 4.5 在 11 月 30 日退役,Sonnet 5 最早 2027 年 6 月才退役
退役時程寫在 Anthropic 開發者文件的模型退役頁。claude-sonnet-4-5-20250929 在 2026 年 9 月 30 日列為 Deprecated,2026 年 11 月 30 日退役。過了退役日,請求會直接失敗。從通知到退役共 61 天;以 2026 年 10 月 5 日起算,還有 56 天。
| 模型 | 狀態(2026 年 10 月 5 日) | 退役日 | 輸入/輸出單價(每百萬 token) |
|---|---|---|---|
claude-sonnet-5-5 |
Active | 最早 2027 年 9 月 28 日 | 2 美元/10 美元 |
claude-sonnet-5 |
Active | 最早 2027 年 6 月 30 日 | 2 美元/10 美元 |
claude-sonnet-4-6 |
Active | 最早 2027 年 2 月 17 日 | 3 美元/15 美元 |
claude-sonnet-4-5-20250929 |
Deprecated | 2026 年 11 月 30 日 | 3 美元/15 美元 |
Sonnet 5 最早要到 2027 年 6 月 30 日才退役,跑得好好的程式可以慢慢排。Sonnet 4.5 的程式得在 11 月 30 日前搬完,官方指的方向又是變更最多的那一個。
表上的日期只適用 Anthropic 自己營運的平台:Claude API、Claude Platform on AWS 與 Microsoft Foundry。Amazon Bedrock 與 Google Cloud 的退役時程由平台另訂。
Claude Sonnet 5.5 的破壞性變更:五個回 400,一個不報錯
Anthropic 在 2026 年 9 月 28 日同步釋出 What's new in Claude Sonnet 5.5 文件。文件列出五項破壞性變更,都會影響 Sonnet 5 的現有程式。另有一項改了回應結構,請求照樣成功。
| 變更 | Sonnet 5 的寫法 | Sonnet 5.5 的反應 | 改法 |
|---|---|---|---|
| 關閉思考 | thinking: {"type": "disabled"} |
400 invalid_request_error |
改送 between_tools,effort 設在 high 以下 |
| 強制工具呼叫 | tool_choice 的 any 或 tool |
400 invalid_request_error |
auto 加 strict: true,提示詞寫明何時用工具 |
| 思考區塊綁定 | 改寫先前訊息後重送思考區塊 | 2026 年 8 月 31 日起建立的帳號回 400 | 對話只追加,或用 beta 標頭改成丟棄區塊 |
| computer use | computer_20251124 |
Claude API 與 Google Cloud 回 400 | 換成 computer_toolset_20260801 |
| advisor 工具 | Opus 4.8、Opus 4.7 或 Sonnet 5 當顧問 | 400 invalid_request_error |
顧問換成 Opus 5、Opus 5.5、Fable、Mythos 或 Sonnet 5.5 |
| 工具呼叫之間的文字 | 以 text 區塊回傳 |
不報錯,改放進內容為空的 thinking 區塊 |
設定 display,或改用 between_tools |

前兩項影響面最廣,因為它們是一般請求都可能帶的參數。後三項只有用到對應功能的人才會遇到。
關掉思考要改送 between_tools,effort 最高只能到 high
Sonnet 5.5 預設開啟 adaptive thinking(由模型自行決定思考量的模式),Claude API 的 effort 預設值是 high。thinking 欄位只接受 adaptive 與 between_tools 兩種。送 disabled 會收到 400,錯誤訊息直接指向 between_tools。
依 Anthropic 同時釋出的遷移指南,官方的前後對照如下:
# 之前:Sonnet 5
client.messages.create(
model="claude-sonnet-5",
max_tokens=16000,
thinking={"type": "disabled"},
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "..."}],
)
# 之後:Sonnet 5.5
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=16000,
thinking={"type": "between_tools"},
output_config={"effort": "high"},
messages=[{"role": "user", "content": "..."}],
)
between_tools 是這個模型最低的思考設定,所有平台都能用,不需要 beta 標頭。它有三條限制,每一條踩到都是 400:
- effort 只能是
low、medium或high,設成xhigh或max會被拒絕。 - 不能再帶其他欄位,
display、budget_tokens、block_binding都不行。 - 對話中途不能換 effort,單則訊息的
output_config.effort與現行等級不同就報錯。
官方範例把 xhigh 降成 high,沒有多做解釋。想留在 xhigh 或 max,只能改用 adaptive thinking,思考 token 會以輸出 token 計費。原本靠 disabled 搭最高 effort 壓成本的人,這裡得二選一。
請求帶工具時,模型在工具呼叫之間寫的簡短進度更新,仍會以 thinking 區塊回傳。這些區塊要原樣放回下一輪的 assistant 訊息。
強制工具呼叫沒有替代參數,只能靠 strict 加提示詞
tool_choice(指定模型能不能、或必須呼叫哪個工具的參數)在 Sonnet 5.5 只剩 auto 與 none。any 與指定工具的 tool 都回 400,連 token 計數端點也套用同一個檢查。錯誤訊息是:
tool_choice: type "tool" and "any" are not supported for this model.
官方的替代做法是 auto 搭配 strict 工具,再用提示詞告訴模型什麼時候該呼叫:
# 之前:Sonnet 5,強制呼叫 get_weather
client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
tools=tools,
tool_choice={"type": "tool", "name": "get_weather"},
messages=[{"role": "user", "content": "巴黎現在天氣如何?"}],
)
# 之後:Sonnet 5.5,auto 加 strict,並在提示詞點名工具
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
tools=[{**tool, "strict": True} for tool in tools],
tool_choice={"type": "auto"},
messages=[
{"role": "user", "content": "巴黎現在天氣如何?請使用 get_weather 工具。"}
],
)
兩種寫法保證的事情不一樣。強制呼叫保證模型一定會呼叫工具;strict 只保證呼叫時的輸入符合 schema。換成 auto 之後,模型可以選擇直接用文字回答,程式要能處理沒有 tool_use 區塊的回應。
strict 本身也有邊界。每個物件都要寫 additionalProperties: false。單一請求最多 20 個 strict 工具。MCP、computer use 與 browser use 的 toolset 宣告不接受 strict。只是要拿固定格式的 JSON,可以把 schema 搬到 structured outputs 的 output_config.format。
這項變更已經在第三方程式裡出事。2026 年 10 月 3 日,開源專案 ha-llmvision 收到 issue #742。回報指出,它的 Anthropic provider 呼叫 claude-sonnet-5-5 一律失敗。原因有兩個:provider 送出 thinking: disabled;要求 JSON 輸出時,又把 tool_choice 強制指向 return_structured_data。回報者的暫時做法是把模型釘回 claude-sonnet-4-6。截至 2026 年 10 月 5 日,這個 issue 還開著。
我認為這是五項裡最費工的一項。用強制 tool_choice 換取結構化輸出是很常見的寫法,這個案例正是如此。其他四項換一個字串或工具版本就過,這一項要改提示詞,還要補上模型不呼叫工具時的處理。
改寫對話歷史會讓思考區塊失效,新帳號直接回 400
每個思考區塊都記錄是哪個模型產生的。Sonnet 5.5 讀得懂 Sonnet 5、Opus 4.8、Haiku 4.5 與更早模型的區塊。Opus 5、Opus 5.5、Fable 與 Mythos 系列的區塊它讀不懂。反過來,只有 Opus 5.5 能讀 Sonnet 5.5 的區塊,而且限 Claude API 與 Google Cloud。讀不懂的區塊會被 API 丟掉,請求照常成功,被丟的區塊不計費。
第二層綁定是對話本身。API 會檢查 Sonnet 5.5 思考區塊之前的內容有沒有被改過,範圍包含 system 提示詞、tools 與先前的訊息。2026 年 8 月 31 日 00:00 UTC 起建立的帳號,預設強制這項檢查。Claude API、Amazon Bedrock 與 Google Cloud 都一樣。在這些帳號上,改過歷史再重送區塊就是 400。較早建立的帳號預設不檢查。
同一段程式會不會報錯,取決於帳號哪一天建立。團隊用舊帳號測試全數通過,新開的組織或客戶帳號卻可能失敗,這是清單裡最容易在測試階段漏掉的一項。
官方給了兩條路。最省事的是讓對話只追加:要改指令或工具,用對話中途的 system 訊息,不回頭編輯。做不到的話,送 thinking-binding-controls-2026-08-01 beta 標頭。再把 thinking.block_binding.prefix_mismatch_behavior 設成 "drop_block"。API 會丟掉受影響的區塊,不再報錯。block_binding 只能搭配 adaptive thinking。用 between_tools 的人只能維持只追加,或自己拿掉編輯點之後的思考區塊。
思考區塊還綁定帳號。Sonnet 5.5 產生的區塊只能在原帳號或與它連結的帳號使用,其他帳號送進來會被丟掉,請求一樣成功。
Amazon Bedrock 留著舊版 computer use,但不提供 strict 工具
Claude Sonnet 5.5 在 Claude API、Google Cloud 與 Amazon Bedrock 上的規則不一樣,遷移清單得依平台分開寫。
| 項目 | Claude API | Google Cloud | Amazon Bedrock |
|---|---|---|---|
| 模型 ID | claude-sonnet-5-5 |
claude-sonnet-5-5 |
anthropic.claude-sonnet-5-5 |
| computer use 工具 | 只收 computer_toolset_20260801 |
只收 computer_toolset_20260801 |
仍收 computer_20251124 |
| strict 工具與 structured outputs | 可用 | Anthropic 文件未列限制,以 Google Cloud 頁面為準 | Sonnet 5.5 不提供 |
| 新帳號的思考區塊前綴檢查 | 預設強制 | 預設強制 | 預設強制 |
| Sonnet 4.5 退役日 | 2026 年 11 月 30 日 | 平台另訂 | 平台另訂 |

computer use 是讓模型操作電腦畫面的工具。在 Claude API 與 Google Cloud,送 computer_20251124 會收到 400。訊息開頭是 'claude-sonnet-5-5' does not support tool types: computer_20251124.。換成 toolset 時,要一併拿掉 fine-grained-tool-streaming-2025-05-14 beta 標頭。它和 toolset 宣告同時出現也會回 400。已經在用 toolset 或 browser use 工具的整合不用改。
Bedrock 的處境最彆扭:舊版 computer use 可以原樣留著,強制工具呼叫照樣被拿掉,替代用的 strict 工具又不提供。遷移指南給 Bedrock 的做法是:送 auto、在提示詞寫明何時呼叫工具,再由自己的程式驗證工具輸入。schema 的保證從 API 搬回了應用程式。
advisor 工具(讓執行模型向另一個模型請教的 beta 功能)也收緊了配對。Sonnet 5.5 當執行模型時,可用的顧問有七個:Opus 5、Opus 5.5、Fable 5、Fable 5.1、Mythos 5、Mythos 5.1,以及 Sonnet 5.5 自己。這些顧問的建議一律加密,以 advisor_redacted_result 區塊回傳,呼叫端讀不到內容。
最難發現的一項不報錯:工具呼叫之間的文字變成空區塊
在 Sonnet 5 與更早的模型,模型在兩次工具呼叫之間寫的文字都以 text 區塊回傳。Sonnet 5.5 把超過一兩句的說明改放進進度更新用的 thinking 區塊,較短的才留在 text。預設的 display 是 "omitted",這些區塊的文字是空的。
把這段文字串流給使用者看的介面,在工具呼叫之間會安靜下來,沒有任何錯誤。前五項一送出對應的請求就回 400。其中思考區塊綁定有條件:只有 2026 年 8 月 31 日起建立的帳號,在改寫歷史後重送區塊時才回 400。工具呼叫之間的文字這一項,能通過所有回傳碼檢查。只檢查回傳碼的自動測試抓不到,要排進人工驗收,或加一條斷言,檢查工具呼叫之間的文字不是空的。
要把文字拿回來,看你用哪一種思考設定。用 adaptive thinking 時,display 設成 "summarized" 會拿到進度更新與推理摘要;設成 "updates" 只拿進度更新,但要加 thinking-display-updates-2026-08-18 beta 標頭。用 between_tools 時,文字會直接回來,不必設 display。介面要在每個 tool_use 區塊之前,先顯示前面那個非空的 thinking 區塊。
從 Sonnet 4.5 搬過來,同一段文字的帳單大約少 13%
從 Sonnet 5 升級到 Claude Sonnet 5.5,單價與 tokenizer 都沒變。Anthropic 在發表頁宣稱,新模型完成同樣工作通常用更少 token,每項任務的成本最多降 30%。這是廠商自己的數字。
Anthropic 之外,GitHub 給了方向相同的說法。GitHub 在 2026 年 9 月 28 日發出 Changelog 公告。公告說,Sonnet 5.5 在它的測試中與 Sonnet 5 的程式任務表現相當。用的步驟、token 與工具呼叫明顯較少。公告裡沒有數字。
從 Sonnet 4.5 過來的帳要另外算。依 Anthropic 的定價頁,Sonnet 4.5 是每百萬 token 輸入 3 美元、輸出 15 美元,Sonnet 5.5 便宜三分之一。但 Sonnet 5.5 沿用 Sonnet 5 的 tokenizer。和 Sonnet 4.6、Sonnet 4.5 相比,同一段文字大約多出 30% 的 token。
以下是本文推算,假設 token 剛好多 30%,且不計思考:2 ÷ 3 × 1.3 約等於 0.87。同一段文字的帳單大約少 13%,比單價降三分之一小得多。

實際數字還會被其他變動拉動:
- Sonnet 4.5 預設不思考,Sonnet 5.5 預設思考,思考 token 以輸出計費。
max_tokens同時涵蓋思考與文字,要重新估。 - 圖片改用高解析度級距,一張 2000×1500 的圖大約要 2.5 倍的 token。
- 帶工具時自動加上的系統提示詞變短,
auto模式從 Sonnet 4.5 的 496 個 token 降到 286 個。
快取也有變化。最短可快取的提示詞從 1,024 個 token 降到 512 個。快取讀取維持輸入價的 10%,也就是每百萬 token 0.20 美元;Opus 5.5 的快取讀取是 5%,Fable 5.1 是 2.5%,Sonnet 5.5 沒有跟進。
effort 也要重測。文件寫明各等級已重新校準,同一個等級產生的思考量和 Sonnet 5 不同。官方建議一般工作從 high 起步。代理式程式開發與多步驟工具任務,規格明確的從 medium 起步,較難或較長的再調到 high。聊天等重視延遲的工作用 medium 或 low。
Claude Sonnet 5.5 遷移清單:先查誰還在用舊模型,再搜會回 400 的字串
- 到 Claude Console 的 Usage 頁按 Export,下載依 API 金鑰與模型分列的 CSV,找出還在呼叫 Sonnet 4.5 的服務。
- 在程式碼庫搜尋
"disabled"、tool_choice、computer_20251124、advisor 的模型 ID 與content[0].text。回應可能以thinking區塊開頭,內容區塊要改成依type讀取。從 Sonnet 4.6 以前過來,再加budget_tokens與temperature、top_p、top_k。從 Sonnet 4.5 以前過來,還要找 assistant prefill 與output_format。 - 在 Claude Code 執行
/claude-api migrate this project to claude-sonnet-5-5。這個內建 skill 會替換模型 ID 與參數,產出一份要人工確認的清單,動手前會先問範圍。 - 用正式環境同一類帳號跑整合測試。對話歷史會被編輯的流程,要在 2026 年 8 月 31 日起建立的帳號上測一次。
- 重跑 effort 掃描,重估
max_tokens與成本基準。 - 處理拒答。被拒的請求回 HTTP 200,
stop_reason是"refusal",stop_details會標出五種類別之一。
Sonnet 4.5 以前的程式還有幾個必改的 400:thinking budget、非預設的取樣參數,以及 assistant prefill。Claude Managed Agents 的使用者例外,文件說只要改模型名稱。
常見問題
Claude Sonnet 5.5 有哪些破壞性變更?
Claude Sonnet 5.5 有五項會讓 Sonnet 5 程式回 400 的破壞性變更。這五項是 thinking: disabled、強制 tool_choice、改寫歷史後重送思考區塊、computer_20251124,以及用 Opus 4.8、Opus 4.7 或 Sonnet 5 當 advisor。另有一項不報錯,工具呼叫之間的文字改放進 thinking 區塊。從 Sonnet 4.6 過來,要再加 thinking budget 與取樣參數兩種 400。從 Sonnet 4.5 過來,還有 assistant prefill。
Claude Sonnet 5.5 回 400 錯誤怎麼修?
Claude Sonnet 5.5 回 400 時,先看錯誤訊息指向哪個參數。thinking: disabled 要改成 between_tools,effort 設在 high 以下。錯誤訊息是 tool_choice: type "tool" and "any" are not supported for this model. 時,把 tool_choice 改成 auto,工具加上 strict: true,並在提示詞寫明何時呼叫。Amazon Bedrock 不提供 strict 工具,遷移指南建議送 auto,由應用程式自行驗證工具輸入。
Claude Sonnet 5.5 的 API 價格有降嗎?
Claude Sonnet 5.5 的 API 價格與 Sonnet 5 相同,沒有調降。每百萬 token 輸入 2 美元、輸出 10 美元,Batch API 打五折。對 Sonnet 4.6 與 Sonnet 4.5 來說單價少了三分之一,但同一段文字會多出約 30% 的 token。Sonnet 5 的 2 美元/10 美元原本是到 2026 年 8 月 31 日為止的上市優惠價,定價頁註明已改為標準價。
Claude Sonnet 4.5 退役前,可以先搬到 Sonnet 5 嗎?
可以,Claude Sonnet 5 目前是 Active 狀態,退役日最早是 2027 年 6 月 30 日。Sonnet 5 仍接受 thinking: disabled 與強制 tool_choice。Anthropic 在 2026 年 9 月 30 日的退役通知裡,建議的替代模型是 claude-sonnet-5-5。assistant prefill 與非預設的取樣參數在 Sonnet 5 同樣回 400,Sonnet 5 的 thinking 也只接受 adaptive 與 disabled。這幾項不管搬到哪一個都要改。
Amazon Bedrock 上的 Claude Sonnet 5.5 有什麼不同?
Amazon Bedrock 上的 Claude Sonnet 5.5 仍接受舊版的 computer_20251124,但不提供 structured outputs 與 strict 工具。模型 ID 是 anthropic.claude-sonnet-5-5。強制 tool_choice 在 Bedrock 一樣回 400,遷移指南建議改送 auto,並由應用程式自行驗證工具輸入。Sonnet 4.5 在 Bedrock 的退役日由平台另訂,2026 年 11 月 30 日這個日期不適用。
權威引用
- Anthropic — Introducing Claude Sonnet 5.5
- Claude Platform Docs — What's new in Claude Sonnet 5.5
- Claude Platform Docs — Migrating to Claude Sonnet 5.5
- Claude Platform Docs — Model deprecations
- Claude Platform Docs — Pricing
- GitHub Changelog — Claude Sonnet 5.5 in GitHub Copilot
- GitHub — valentinfrlch/ha-llmvision issue #742
Author Insight
還在 Sonnet 4.5 的團隊,多數應該一次搬到 Sonnet 5.5。依遷移指南的分組清單,Sonnet 4.5 的程式不管落在哪一個模型,都要先改 assistant prefill、thinking budget 與取樣參數,token 也要重算。這些改完,離 Sonnet 5.5 只差每個起點模型都要做的那一組:between_tools、tool_choice 與只追加的對話。分兩次搬,整合測試與成本基準就要跑兩輪。
有一類團隊該先停在 Sonnet 5:流程靠強制 tool_choice 保證每一輪都呼叫工具,而且 2026 年 11 月 30 日前補不完模型沒呼叫工具時的處理。單一請求超過 20 個 strict 工具的團隊也算在內,因為工具輸入的驗證得自己寫。Sonnet 5 最早 2027 年 6 月 30 日才退役,這段時間可以用來補驗證。跑在 Amazon Bedrock 的程式,Sonnet 4.5 退役日由平台另訂,排程要看 Bedrock 公布的日期。
術語表
| 術語 | 說明 |
|---|---|
| adaptive thinking | 由模型自行決定思考量的模式,Sonnet 5.5 預設開啟 |
between_tools |
Sonnet 5.5 最低的思考設定,取代 disabled |
| effort | 控制思考深度的參數,分 low、medium、high、xhigh、max 五級 |
tool_choice |
指定模型能不能、或必須呼叫哪個工具的參數 |
| strict 工具 | 保證工具輸入符合 JSON Schema 的設定 |
| 思考區塊 | 回應裡 type 為 thinking 的內容區塊,附簽章 |
| advisor 工具 | 讓執行模型向另一個模型請教的 beta 工具 |
