

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

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

在 Claude Fable 5.1 中，每个思维方块都与产生它的对话息息相关。当您在以后的请求中重播该区块时，API 会检查系统提示、工具列表和封禁前的所有消息是否未更改。这保护了推理Claude的完整性：根据一组指令产生的推理不能在另一组指令下重放。

如果您的安全带将对话历史记录与收到的内容完全相同，则对您来说没有任何变化。如果您在两次请求之间编辑历史记录（注入每回合提醒、汇总旧回合或重建系统提示音），则默认情况下，API 会拒绝该请求。

**重播时检查的内容 **


| **检查 ** | **描述** | 
| --- | --- | 
| 模型 | 允许读取方块的模型读取制片人的想法。除非两个模型明确兼容，否则模型无法读取另一个模型的想法。此检查适用于任何具有思维能力的模型。 | 
| 对话前缀 | 顶级系统提示、工具和区块前的所有消息内容与生成该区块的请求没有变化。Claude Fable 5.1 运行此检查。Claude Mythos 5.1 记录了相同的签名，但无法运行它。 | 

**注意**  
无论这些支票或 beta 值如何，签名已更改或无法解密的思维方块始终返回 400。

## block\_binding 请求对象（测试版）
<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 对未通过对话前缀检查的思维方块执行的操作。发送时不带测试值，`block_binding`返回 400。格式错误的值还会返回 400 命名该字段。

## 控制不匹配行为
<a name="claude-messages-thinking-block-binding-mismatch-behavior"></a>


| **值** | **检查失败时的行为 ** | 
| --- | --- | 
| "error"（默认值） | 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"`和测试版标题重试。

## 多圈和代理应用指南
<a name="claude-messages-thinking-block-binding-guidance"></a>
+ 重播助手的回合与返回时完全相同，并在对话中保持系统提示和工具的稳定。
+ 避免在较早的回合中注入一次性内容（例如，在最后一个用户回合中附加临时系统消息或提醒文本）。这些会更改对话前缀，使以后的思维方针失效。改用会话中的系统消息。
+ 如果您的应用程序重写了对话历史记录，请从重写点开始删除思考方块，或设置为。`mismatch_behavior` `"drop_block"`
+ 在将 Converse API 与支持它的模型一起使用时，请传递测试值并`thinking.block_binding`通过`additionalModelRequestFields`。