本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
保留思维
概述
在 Claude Fable 5.1 中,每个思维方块都与产生它的对话息息相关。当您在以后的请求中重播该区块时,API 会检查系统提示、工具列表和封禁前的所有消息是否未更改。这保护了推理Claude的完整性:根据一组指令产生的推理不能在另一组指令下重放。
如果您的安全带将对话历史记录与收到的内容完全相同,则对您来说没有任何变化。如果您在两次请求之间编辑历史记录(注入每回合提醒、汇总旧回合或重建系统提示音),则默认情况下,API 会拒绝该请求。
重播时检查的内容
| 检查 | 描述 |
|---|---|
| 模型 | 允许读取方块的模型读取制片人的想法。除非两个模型明确兼容,否则模型无法读取另一个模型的想法。此检查适用于任何具有思维能力的模型。 |
| 对话前缀 | 顶级系统提示、工具和区块前的所有消息内容与生成该区块的请求没有变化。Claude Fable 5.1 运行此检查。Claude Mythos 5.1 记录了相同的签名,但无法运行它。 |
注意
无论这些支票或 beta 值如何,签名已更改或无法解密的思维方块始终返回 400。
block_binding 请求对象(测试版)
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 命名该字段。
控制不匹配行为
| 值 | 检查失败时的行为 |
|---|---|
"error"(默认值) |
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"和测试版标题重试。
多圈和代理应用指南
重播助手的回合与返回时完全相同,并在对话中保持系统提示和工具的稳定。
避免在较早的回合中注入一次性内容(例如,在最后一个用户回合中附加临时系统消息或提醒文本)。这些会更改对话前缀,使以后的思维方针失效。改用会话中的系统消息。
如果您的应用程序重写了对话历史记录,请从重写点开始删除思考方块,或设置为。
mismatch_behavior"drop_block"在将 Converse API 与支持它的模型一起使用时,请传递测试值并
thinking.block_binding通过additionalModelRequestFields。