View a markdown version of this page

保留思维 - Amazon Bedrock

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

保留思维

概述

在 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。