Skip to main content
Messages API uses Anthropic-style thinking blocks rather than Responses reasoning items or chat-style reasoning_details fields. Use this page when you need reasoning controls but your integration depends on the Anthropic Messages protocol.

Request Controls

Two request surfaces affect reasoning behavior here:
  • thinking with type: enabled, disabled, or adaptive
  • output_config.effort with low, medium, high, or max
output_config is a reasoning control on this API. It is not the generic structured-output equivalent. Start with a modest reasoning budget and raise it only when the extra quality is worth the cost and latency.

Non-Streaming Response Shape

Thinking can appear as a typed content block before text blocks.

Streaming Behavior

The stream can emit thinking before text.
  • a thinking block starts with content_block_start
  • thinking text streams through content_block_delta
  • signatures arrive as content_block_delta with type: signature_delta
  • normal answer text can begin in a later content block
From the protocol tests, a streamed thinking block starts as:
And the signature can arrive as:

Preserve Thinking Blocks Across Tool Turns

If you continue a tool-using conversation in a later request, replay the assistant’s prior thinking blocks unchanged before you send the later tool_result block.
Preserve the replayed thinking text and signature exactly as generated. If you mutate them, reasoning continuity across later tool turns can break.
Keep the thinking text and signature exactly as generated if you want reasoning continuity across turns.

Caveats

  • clients that only read text blocks can miss thinking output completely
  • thinking: {"type":"disabled"} takes precedence over effort-style hints
  • adaptive maps to a medium-style reasoning setting internally
  • output_config.effort: "max" maps to the highest normalized reasoning effort internally

Common mistakes

  • treating output_config like a generic output-format feature instead of a reasoning control
  • modifying replayed thinking blocks before a later tool turn
  • assuming all models expose visible thinking blocks