Anthropic 於 2026 年 10 月 21 日發布 Claude API 新版本 2026-10-21。在這個版本下,以下請求會回傳 400 錯誤:傳入 temperature、top_p 或 top_k(即使是預設值);把 document 區塊直接放在 assistant 訊息裡;在 user 訊息中傳送帶有非空 citations 陣列的 text 區塊。官方 SDK 的新主版本預設使用 2026-10-21,因此只升級 SDK 也可能觸發這些錯誤。

錯誤原文

遷移指南沒有提供這些情況下錯誤訊息的具體文字,只說明這類請求會回傳 400 錯誤。排查時請以實際收到的錯誤內容為準,不要依賴某個固定字串。如果你遇到的是 529 overloaded 錯誤,可以看我們的Claude Code 529 overloaded 錯誤解決指南。

temperature、top_p 和 top_k 怎麼處理

以下規則適用於 Messages API、token 計數,以及用 2026-10-21 建立的 Message Batch 中的每個請求。

  1. 刪除這三個參數,包括設為預設值的。新版 SDK 和 CLI 已不再提供這三個參數。
  2. 了解會有什麼變化。 不傳時依預設值取樣,temperature 為 1.0,與不傳這些參數的 2023-06-01 請求相同。Claude 4.7 及之後這類本來就只接受預設值的模型,取樣方式不變。
  3. 決定非預設值怎麼辦。 在 Claude Sonnet 4.6 這類接受其他取值的模型上,原先靠調低 temperature 取得更穩定輸出的請求會失去這個效果,指南表示沒有其他設定可以取代。依賴非預設值的請求,要麼不再傳這個參數,要麼留在 2023-06-01。

其他會回傳 400 的情況

  • 直接放在 assistant 訊息裡的 document 區塊。 文件改放到 user 訊息裡。巢狀在其他區塊裡的文件,例如 Claude 回傳的 web fetch 工具結果,仍然可以使用。
  • user 訊息裡的 citations。 包括 search_result 區塊內的 text 區塊。請從這些區塊移除 citations。assistant 訊息 text 區塊上的 citations,以及在文件和搜尋結果上啟用引用的設定,仍然可以使用。

Admin API 和 Claude Enterprise Analytics API 不會因此出錯,但回應中不再有舊欄位名稱。請改讀:role_ids(原 roles)、rbac_group_id(原 group_id)、display_name(原 name)、group.type(原 group_type)、API 金鑰上的 scope(原 workspace_id)、actor.email_address(原 actor.email)、data(原 summaries)。

預設使用 2026-10-21 的 SDK 版本

最早傳送 2026-10-21 的版本是:Python SDK 2.0.0、TypeScript SDK 1.0.0、C# SDK 13.0.0、Go SDK 2.0.0、Java SDK 3.0.0、PHP SDK 1.0.0、Ruby SDK 2.0.0 和 ant CLI 2.0.0。更早的版本傳送 2023-06-01。不使用 SDK 時,以你在 anthropic-version 標頭中設定的值為準。

什麼時候可以暫時留在 2023-06-01

發布說明和遷移指南都沒有棄用 2023-06-01。如果有請求依賴非預設的 temperature、top_p 或 top_k,或你還需要時間遷移 document 和 citations、修改讀取 Admin 和 Analytics 舊欄位名稱的程式碼,暫時留在 2023-06-01 是合理的。不過指南建議的做法仍是把 SDK 升級(或把標頭設為 2026-10-21)和程式碼修改一起上線,並在上線前用 2026-10-21 測試。價格方面可參考我們的 Claude API 價格指南。

其他變化

新版 SDK 和 CLI 的授權條款從 MIT 改為 Apache 2.0,舊版本仍為 MIT。user profile 也新增了 enforcement_status 欄位,可以查看你的某個終端使用者是否遭 Anthropic 限制或封禁。