Claude Fable 5.2 API 遷移:排查 Thinking Prefix Check 400
本文目錄
第一輪可以呼叫 Claude Fable 5.2,第二輪卻回 HTTP 400,先看錯誤是否提到 The block is bound to a different conversation。這是 thinking block 的 prefix check:你送回的推理區塊只對產生它時的前文有效。改了 system、工具定義或前面的訊息,再把舊區塊送回去,重試相同內容仍會失敗。
依 Anthropic 遷移指南,claude-fable-5-2 對所有帳號執行這項檢查。用舊帳號跑過 5.1 的自製 agent,仍要用新版驗收。本文針對自行組裝 Claude Messages API 訊息的程式;由 Claude Code 或 Agent SDK 管理對話歷史的使用者,無須自行做這段遷移。Copilot 模型可用性則要依其平台設定判讀。
從一個可以重送的兩輪案例開始
在測試 workspace 準備一個回傳 thinking block 的對話。保留模型回傳的 assistant 內容陣列,包含空的 thinking block。第二輪照原樣帶回第一輪的 system、tools 和歷史,再追加一則 user 訊息。先確認這組對照能跑,再各做一份變體:
| 變體 | 要檢查的結果 |
|---|---|
| 只追加新訊息 | 可延續對話。用這組確認基本請求和模型存取正常。 |
| 改第一輪已使用的工具 schema,再重送原 thinking | 預設回 400;把工具 schema 變更安排在新對話。 |
| 摘要取代舊訊息,再重送原 thinking | 預設回 400;改用摘要開新對話,從新回應開始保留區塊。 |
| 實際 router、MCP 與歷史儲存層全接回 | 檢查是否有模板重寫、工具清單變動,或只存了 assistant 的文字。 |
若要在測試流量上找出多處問題,依官方文件送 anthropic-beta: thinking-binding-controls-2026-08-01,設 thinking.block_binding.prefix_mismatch_behavior 為 drop_block,並記錄回應 input_transformations 裡的 prefix_binding_mismatch。日誌可留輪次與錯誤類別,避免落地完整內容。區塊被捨棄後可能多花輸出 token;先修造成修改的程式,再恢復預設的錯誤行為。
Computer use 與 advisor 要另外測
在 Claude API,computer_20251124 本身也會回 400。把宣告換成 computer_toolset_20260801,依電腦操作工具遷移文件移除舊 beta header 和工具宣告裡的名稱、畫面尺寸,再驗收一次工具呼叫、執行和回傳結果的完整循環。官方對舊工具保留 Amazon Bedrock 例外;跨平台 router 應按各入口驗證。
以 Fable 5.2 當 executor 時,advisor 模型只能用 claude-fable-5-2 或 claude-mythos-5-2。advisor 改版會動到 tools,在新對話切換。若 router 把 Fable 5.2 對話送回 Fable 5.1,在支援此轉換的入口舊模型會略過它無法讀取的新版推理區塊;回退測試仍要看任務結果與延遲。
上線條件包括資料保留
依 Fable 5.2 模型頁,模型要求 30 天資料保留;零資料保留(ZDR)須經 Anthropic 明確授權。先確認測試與正式 workspace 的資料政策是否允許;原本依賴 ZDR 的流程若不能接受,就先保留原模型。本文於 2026-11-10 檢閱文件,未以帳號呼叫付費 API 或實際切換流量。
參考資料: