claude-opus-4-1-20250805
)claude-opus-4-20250514
)claude-sonnet-4-20250514
)claude-3-7-sonnet-20250219
)thinking
内容块,在其中输出其内部推理。Claude在制作最终回应之前会融入这种推理的见解。
API响应将包含thinking
内容块,然后是text
内容块。
以下是默认响应格式的示例:
thinking
对象,将type
参数设置为enabled
,并将budget_tokens
设置为扩展思维的指定令牌预算。
budget_tokens
参数决定了Claude在其内部推理过程中允许使用的最大令牌数。在Claude 4模型中,此限制适用于完整的思维令牌,而不是总结输出。更大的预算可以通过为复杂问题启用更彻底的分析来提高响应质量,尽管Claude可能不会使用分配的全部预算,特别是在超过32k的范围内。
budget_tokens
必须设置为小于max_tokens
的值。但是,当使用交错思维与工具时,您可以超过此限制,因为令牌限制变成您的整个上下文窗口(200k令牌)。
thinking_delta
事件接收思维内容。
有关通过Messages API进行流式传输的更多文档,请参阅流式消息。
以下是如何处理带有思维的流式传输:
tool_choice: {"type": "auto"}
(默认)或tool_choice: {"type": "none"}
。使用tool_choice: {"type": "any"}
或tool_choice: {"type": "tool", "name": "..."}
将导致错误,因为这些选项强制工具使用,这与扩展思维不兼容。
thinking
块传回API以获取最后一条助手消息。将完整的未修改块包含回API以维持推理连续性。
示例:使用工具结果传递思维块
thinking
块传回API,并且必须将完整的未修改块包含回API。这对于维持模型的推理流程和对话完整性至关重要。
assistant
角色轮次中省略thinking
块,但我们建议在任何多轮对话中始终将所有思维块传回API。API将:thinking
块时,连续thinking
块的整个序列必须与模型在原始请求期间生成的输出匹配;您不能重新排列或修改这些块的序列。
interleaved-thinking-2025-05-14
。
以下是交错思维的一些重要考虑因素:
budget_tokens
可以超过max_tokens
参数,因为它代表一个助手轮次内所有思维块的总预算。interleaved-thinking-2025-05-14
。interleaved-thinking-2025-05-14
,没有效果。interleaved-thinking-2025-05-14
传递给除Claude Opus 4.1、Opus 4或Sonnet 4之外的任何模型,您的请求将失败。不使用交错思维的工具使用
使用交错思维的工具使用
cache_control
标记系统提示缓存(思维更改时保留)
消息缓存(思维更改时失效)
cache_creation_input_tokens=1370
和cache_read_input_tokens=0
,证明当思维参数更改时基于消息的缓存失效。max_tokens
的总和超过了模型的上下文窗口,系统会自动调整max_tokens
以适应上下文限制。这意味着您可以设置一个大的max_tokens
值,系统会根据需要静默减少它。
对于Claude 3.7和4模型,max_tokens
(当启用思维时包括您的思维预算)被强制执行为严格限制。如果提示令牌 + max_tokens
超过上下文窗口大小,系统现在将返回验证错误。
max_tokens
限制max_tokens
行为,您可能需要:
max_tokens
值signature
字段中返回。此字段用于验证思维块是由Claude生成的,当传回API时。
content_block_delta
事件内的signature_delta
添加,就在content_block_stop
事件之前。signature
值比先前模型中的显著更长。signature
字段是一个不透明字段,不应被解释或解析 - 它仅用于验证目的。signature
值在平台间兼容(Anthropic APIs、Amazon Bedrock和Vertex AI)。在一个平台上生成的值将与另一个平台兼容。thinking
块并将其作为redacted_thinking
块返回给您。redacted_thinking
块在传回API时被解密,允许Claude继续其响应而不丢失上下文。
当构建使用扩展思维的面向客户的应用程序时:
ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
thinking
和redacted_thinking
块传回API时,您必须将完整的未修改块包含回API以获取最后一个助手轮次。这对于维持模型的推理流程至关重要。我们建议始终将所有思维块传回API。有关更多详细信息,请参阅上面的保留思维块部分。
示例:处理编辑的思维块
功能 | Claude Sonnet 3.7 | Claude 4模型 |
---|---|---|
思维输出 | 返回完整思维输出 | 返回总结思维 |
交错思维 | 不支持 | 支持interleaved-thinking-2025-05-14 beta标头 |
模型 | 基础输入令牌 | 缓存写入 | 缓存命中 | 输出令牌 |
---|---|---|---|---|
Claude Opus 4.1 | $15 / MTok | $18.75 / MTok | $1.50 / MTok | $75 / MTok |
Claude Opus 4 | $15 / MTok | $18.75 / MTok | $1.50 / MTok | $75 / MTok |
Claude Sonnet 4 | $3 / MTok | $3.75 / MTok | $0.30 / MTok | $15 / MTok |
Claude Sonnet 3.7 | $3 / MTok | $3.75 / MTok | $0.30 / MTok | $15 / MTok |
max_tokens
大于21,333时需要流式传输。流式传输时,准备处理到达的思维和文本内容块。temperature
或top_k
修改以及强制工具使用不兼容。top_p
设置为1到0.95之间的值。