

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 保留的思維
<a name="claude-messages-thinking-block-binding"></a>

## 概觀
<a name="claude-messages-thinking-block-binding-overview"></a>

在 Claude Fable 5.1 上，每個思維區塊都與產生它的對話繫結在一起。當您在稍後的請求中重播該區塊時，API 會檢查系統提示、工具清單和區塊之前的所有訊息是否保持不變。這可保護 Claude推理的完整性：在一組指示下產生的推理無法在另一組下重播。

如果您的繫帶將對話歷史記錄傳送回原來的位置，則不會有任何變更。如果您在請求之間編輯歷史記錄 — 注入每圈提醒、摘要較舊的回合或重建系統提示 — API 預設會拒絕請求。

**重播時檢查的內容**


| **檢查** | **Description** | 
| --- | --- | 
| 模型 | 允許讀取區塊的模型讀取生產者的思維。除非兩者明確相容，否則模型無法讀取另一個模型的思維。此檢查適用於任何具備思考能力的模型。 | 
| 對話字首 | 區塊前的最上層系統提示、工具和所有訊息內容與產生它的請求保持不變。Claude Fable 5.1 會執行此檢查。Claude Mythos 5.1 會記錄相同的簽章，但不會執行。 | 

**注意**  
簽章已變更或無法解密的思維區塊一律會傳回 400，無論這些檢查或 Beta 值為何。

## block\_binding 請求物件 (beta)
<a name="claude-messages-thinking-block-binding-request-object"></a>

將 `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 命名 欄位。

## 控制不相符行為
<a name="claude-messages-thinking-block-binding-mismatch-behavior"></a>


| **Value** | **失敗檢查的行為** | 
| --- | --- | 
| "error" (default) | 請求失敗並400 invalid\_request\_error命名失敗的區塊。無法重試；在任何串流事件之前傳回。 | 
| "drop\_block" | 使用 200 請求成功。失敗的區塊會在模型之前移除，以及對話中的每個後續思考區塊，而每個移除的區塊都會列在 中input\_transformations。 | 

這兩個值都不會變更模型檢查，一律會捨棄。

## input\_transformations 回應陣列
<a name="claude-messages-thinking-block-binding-input-transformations"></a>

傳送 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`。

## 錯誤回應
<a name="claude-messages-thinking-block-binding-error-responses"></a>

當 `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 版標頭重試。

## 多迴轉和代理應用程式的指引
<a name="claude-messages-thinking-block-binding-guidance"></a>
+ 重播助理會完全依照傳回的方式旋轉，並在對話中保持系統提示和工具的穩定。
+ 避免一次性內容插入較早的回合 （例如，暫時性系統訊息或附加到上次使用者回合的提醒文字）。這些變更了對話字首，並使稍後的思維區塊失效。請改用中融合系統訊息。
+ 如果您的應用程式重寫對話歷史記錄，請從重寫點捨棄思維區塊，或將 `mismatch_behavior`設定為 `"drop_block"`。
+ 將 Converse API 與支援它的模型搭配使用時，請透過 傳遞 Beta 值 和 `thinking.block_binding` `additionalModelRequestFields`。