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
Claude Sonnet 5.5 六項變更總覽:五項回 400、一項不報錯

前兩項影響面最廣,因為它們是一般請求都可能帶的參數。後三項只有用到對應功能的人才會遇到。

關掉思考要改送 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 日 平台另訂 平台另訂
Claude Sonnet 5.5 在 Claude API、Google Cloud 與 Amazon Bedrock 的規則對照

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 退役時程,與搬到 Claude Sonnet 5.5 約少 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 的字串

  1. 到 Claude Console 的 Usage 頁按 Export,下載依 API 金鑰與模型分列的 CSV,找出還在呼叫 Sonnet 4.5 的服務。
  2. 在程式碼庫搜尋 "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。
  3. 在 Claude Code 執行 /claude-api migrate this project to claude-sonnet-5-5。這個內建 skill 會替換模型 ID 與參數,產出一份要人工確認的清單,動手前會先問範圍。
  4. 用正式環境同一類帳號跑整合測試。對話歷史會被編輯的流程,要在 2026 年 8 月 31 日起建立的帳號上測一次。
  5. 重跑 effort 掃描,重估 max_tokens 與成本基準。
  6. 處理拒答。被拒的請求回 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 日這個日期不適用。

權威引用

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 工具
Share this post
Ewan Mak

I'm a Full Stack Developer with expertise in building modern web applications that fast, secure, and scalable. Crafting seamless user experiences with a passion for headless CMS, Vercel and Cloudflare

Loading...