Skip to main content
Some providers expose a separate “thinking” channel that streams the model’s reasoning metadata alongside the normal message output. This lets you display or inspect the model’s inner monologue without sending it back to the model or to end users who just want the final answer. OpenAI Responses, Anthropic, and Google all support extended thinking. The generated output is provider-agnostic, so additional providers can adopt it later without requiring any changes to your code.

Enable Thinking

Enable thinking at the Agent level using the enableThinking parameter:

Provider-Specific Defaults

Each provider has sensible defaults when enableThinking: true:
  • OpenAI Responses: Uses reasoningSummary: detailed automatically
  • Anthropic: Uses 4096 token budget for extended thinking
  • Google: Uses dynamic token budget (model decides based on task complexity)

Advanced Configuration

For fine-tuning provider-specific behavior, use the options classes:

OpenAI Responses

Anthropic

Anthropic recommends starting with smaller budgets (4k-10k) and scaling up based on task complexity.

Google

Key Points

  • Access thinking via result.thinking for both streaming and non-streaming
  • Thinking is also stored as ThinkingPart in consolidated messages for history
  • You control where (or if) thinking is displayed
  • Important: When using Anthropic with tool calls, thinking blocks are automatically preserved in conversation history as required by their API. This increases token costs on subsequent turns.

Streaming Thinking

The stream delivers reasoning deltas incrementally through chunk.thinking, so you can render a live “thought bubble” while the model is working. Each chunk may include text output (chunk.output), thinking (chunk.thinking), or both.

Examples