本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
保留的思維
概觀
在 Claude Fable 5.1 上,每個思維區塊都與產生它的對話繫結在一起。當您在稍後的請求中重播該區塊時,API 會檢查系統提示、工具清單和區塊之前的所有訊息是否保持不變。這可保護 Claude推理的完整性:在一組指示下產生的推理無法在另一組下重播。
如果您的繫帶將對話歷史記錄傳送回原來的位置,則不會有任何變更。如果您在請求之間編輯歷史記錄 — 注入每圈提醒、摘要較舊的回合或重建系統提示 — API 預設會拒絕請求。
重播時檢查的內容
| 檢查 | Description |
|---|---|
| 模型 | 允許讀取區塊的模型讀取生產者的思維。除非兩者明確相容,否則模型無法讀取另一個模型的思維。此檢查適用於任何具備思考能力的模型。 |
| 對話字首 | 區塊前的最上層系統提示、工具和所有訊息內容與產生它的請求保持不變。Claude Fable 5.1 會執行此檢查。Claude Mythos 5.1 會記錄相同的簽章,但不會執行。 |
注意
簽章已變更或無法解密的思維區塊一律會傳回 400,無論這些檢查或 Beta 值為何。
block_binding 請求物件 (beta)
將 block_binding新增至thinking物件,並在 中包含 Beta 值anthropic_beta,以控制偵測到字首不相符時會發生的情況:
{ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["thinking-binding-controls-2026-08-01"], "max_tokens": 16000, "thinking": { "type": "adaptive", "block_binding": { "mismatch_behavior": "drop_block" } }, "messages": [{ "role": "user", "content": "Your prompt here" }] }
block_binding 接受一個欄位 mismatch_behavior,它控制 API 對未通過對話字首檢查的思維區塊執行的操作。在沒有 Beta 值的情況下傳送, block_binding會傳回 400。格式不正確的值也會傳回 400 命名 欄位。
控制不相符行為
| Value | 失敗檢查的行為 |
|---|---|
"error" (default) |
請求失敗並400 invalid_request_error命名失敗的區塊。無法重試;在任何串流事件之前傳回。 |
"drop_block" |
使用 200 請求成功。失敗的區塊會在模型之前移除,以及對話中的每個後續思考區塊,而每個移除的區塊都會列在 中input_transformations。 |
這兩個值都不會變更模型檢查,一律會捨棄。
input_transformations 回應陣列
傳送 Beta 值時,回應可能包含頂層input_transformations陣列,描述任何已移除的區塊:
{ "type": "message", "role": "assistant", "content": [ ... ], "stop_reason": "end_turn", "usage": {"input_tokens": 18234, "output_tokens": 911}, "input_transformations": [ {"type": "thinking_dropped", "path": "messages.3.content.0", "reason": "prefix_binding_mismatch"} ] }
這是最上層陣列 ( 的同級伺服器usage),僅具有 Beta 值;未移除任何區塊且沒有其他區塊[]時。每個項目都包含path識別已移除的區塊和 reason- model_binding_mismatch或 之一prefix_binding_mismatch。在串流回應中,陣列會出現在message_start事件內的訊息物件內。移除的區塊不會計入 input_tokens。
錯誤回應
當 mismatch_behavior為 時"error",字首不相符會傳回:
{ "type": "error", "error": { "type": "invalid_request_error", "message": "messages.3.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.mismatch_behavior` to \"drop_block\"." } }
此錯誤對於該請求而言是永久性的 — 自動重試迴圈不會清除它。當您擷取時,請將所有思維區塊從歷史記錄中除去並重試,或使用 mismatch_behavior: "drop_block" 和 Beta 版標頭重試。
多迴轉和代理應用程式的指引
重播助理會完全依照傳回的方式旋轉,並在對話中保持系統提示和工具的穩定。
避免一次性內容插入較早的回合 (例如,暫時性系統訊息或附加到上次使用者回合的提醒文字)。這些變更了對話字首,並使稍後的思維區塊失效。請改用中融合系統訊息。
如果您的應用程式重寫對話歷史記錄,請從重寫點捨棄思維區塊,或將
mismatch_behavior設定為"drop_block"。將 Converse API 與支援它的模型搭配使用時,請透過 傳遞 Beta 值 和
thinking.block_bindingadditionalModelRequestFields。