Claude API 新版本移除溫度參數

Anthropic 發布了 Claude API 的新版本號 2026-10-21。開發者從 2023 年起一直在請求標頭裡寫 anthropic-version: 2023-06-01,這次是它之後第一個正式的新版本。

最顯眼的改動是,Messages API 裡的 temperature、top_p、top_k 三個取樣參數被移除。依照遷移文件的說法,用新版本發送請求時只要帶了這三個欄位,即使填的就是預設值,也會直接回傳 400 錯誤。不傳的話,請求會以預設值取樣,temperature 為 1.0,與舊版本不傳參數時的效果相同。

舊版本並未被棄用。文件給出的建議很直接:哪個請求依賴非預設的取樣值,要嘛移除參數,要嘛繼續留在 2023-06-01。

哪些人會受到影響

對 Claude 4.7 及之後的模型來說,這次移除參數幾乎沒有實際差異,文件說明這些模型本來就只接受預設值。受影響的是仍在使用 Claude Sonnet 4.6 這類舊模型,又特地把溫度調低來換取穩定輸出的應用。文件寫得很清楚,這類請求升級後會失去原本的效果,也沒有任何其他設定可以取代。

除了取樣參數,Messages API 還有兩處會回報 400 的變動:

  • 在 assistant 訊息中直接放 document 區塊,改為報錯,文件必須放進 user 訊息;
  • 在 user 訊息的 text 區塊中帶入非空的 citations,同樣報錯。

管理端也有更名。Admin API 裡 RBAC 群組的 roles 變成 role_ids,API 金鑰上的 workspace_id 被移除,改讀 scope;企業分析介面裡的 actor.email 改為 actor.email_address。新版本下不再回傳舊的欄位名稱。

SDK 一起跳大版本

各語言官方 SDK 這次都升了主版本號,新版預設送出 2026-10-21:Python 套件 anthropic 升到 2.0.0,TypeScript 的 @anthropic-ai/sdk 升到 1.0.0,Go 升到 v2(匯入路徑要加上 /v2),Java 升到 3.0.0,C# 升到 13.0.0,PHP 升到 1.0.0,Ruby 升到 2.0.0。命令列工具 ant 升到 2.0.0。

Go 使用者要多留個心眼。CLI 的模組路徑改為 github.com/anthropics/anthropic-cli/v2,文件特別提醒,用舊路徑執行 go install 仍會繼續安裝最新的 v1,不會報錯,也沒有任何警告。

在 Amazon Bedrock 上,新版本只開放給 Claude 4.7 及之後的模型。仍在 Bedrock 上呼叫 Opus 4.6 等舊模型的使用者,要嘛停在現有的 SDK 版本,要嘛先換模型再升級。

金鑰換了個請求標頭

對中國大陸開發者而言,影響面可能最大的一項藏在 SDK 改動裡。新版 SDK 與 CLI 不再把 API 金鑰放進 X-Api-Key 標頭,統一改為 Authorization: Bearer <key>。

Claude API 本身兩種標頭都接受,直連官方介面的程式不受影響。麻煩出在中間層:自建的反向代理、API 閘道、額度統計中介軟體,只要是從 X-Api-Key 讀取金鑰來做驗證或計費的,SDK 一升級就會讀不到。文件給了兩條路,一是修改閘道改讀 Authorization,二是在用戶端手動把金鑰塞回 X-Api-Key。

另一個連帶的變化是,一個用戶端只能持有一種憑證。過去在 Python 裡同時傳入 api_key 和 auth_token,會把兩個標頭一起送出,現在則直接拋出 ValueError。

從兩年多的舊版本號說起

2023-06-01 這個版本號涵蓋了 Claude 從 Claude 2 時代到 Claude 5 系列的全部演進,期間新增的工具呼叫、提示快取、延伸思考等功能,大多是透過 beta 標頭與新欄位疊加上去,版本號本身一直沒有動過。

取樣參數的退場其實早有鋪陳。從 Claude 4.7 起,模型就只認預設值,開發者在新模型上調整溫度早已沒有作用,這次是把這條規則寫進介面契約,讓請求在入口處就直接失敗,免得呼叫方以為參數仍在生效。

舊版本會保留多久,遷移文件沒有給出時間表,Anthropic 目前也尚未公布 2023-06-01 的停用日期。

參考來源:Claude 平台遷移文件、Claude 開發者官方帳號、CocoLoop;各語言 SDK 版本號、報錯條件與 Bedrock 適用模型範圍,以官方遷移文件為準。