Claude 4.6 Migration Guide

Migrate to Claude 4.6 with adaptive thinking and max effort level
Update · June 22, 2026

As of June 22, 2026, OpenRouter maps reasoning.effort to Anthropic’s output_config.effort on Claude 4.6 and newer models — previously it was ignored. verbosity is unchanged: it still sets output_config.effort, and wins if both are passed.

What’s New

See Anthropic’s What’s new in Claude 4.6 for a full overview of new features.

Claude 4.6 Opus and 4.6 Sonnet introduce two major changes to reasoning:

  1. Adaptive Thinking — Claude decides how much to think based on task complexity, replacing budget-based extended thinking
  2. Max Effort Level — A new 'max' effort level above 'high' (Opus 4.6 and Sonnet 4.6 only)

Adaptive Thinking

For Claude 4.6 Opus and 4.6 Sonnet, OpenRouter now uses adaptive thinking (thinking.type: 'adaptive') by default instead of budget-based thinking (thinking.type: 'enabled' with budget_tokens).

How it works

  • When you enable reasoning without specifying reasoning.max_tokens, Claude 4.6 Opus and 4.6 Sonnet use adaptive thinking
  • Claude automatically determines the appropriate amount of reasoning based on task complexity
  • You don’t need to estimate or tune token budgets

When budget-based thinking is still used

  • If you explicitly set reasoning.max_tokens, budget-based thinking is used
  • If you pass the raw Anthropic thinking parameter directly
1// Adaptive thinking (recommended for 4.6)
2{
3 "model": "anthropic/claude-4.6-opus", // or "anthropic/claude-4.6-sonnet"
4 "reasoning": { "enabled": true }
5}
1// Budget-based thinking (still supported)
2{
3 "model": "anthropic/claude-4.6-opus", // or "anthropic/claude-4.6-sonnet"
4 "reasoning": { "enabled": true, "max_tokens": 10000 }
5}

Max Effort Level

A new 'max' effort level is available for Claude 4.6 Opus and 4.6 Sonnet via the verbosity parameter. See Anthropic’s effort documentation for details on how effort controls response thoroughness and token usage.

1{
2 "model": "anthropic/claude-4.6-opus", // or "anthropic/claude-4.6-sonnet"
3 "verbosity": "max"
4}

'max' is only supported on Claude 4.6 Opus and 4.6 Sonnet. For other models, it automatically falls back to 'high'.

Verbosity vs Reasoning Effort

On Claude 4.6, both parameters set the same upstream value: Anthropic’s output_config.effort.

ParameterWhen it appliesEffect on 4.6
verbosityAlwaysSets output_config.effort
reasoning.effortWhen reasoning is enabledSets output_config.effort

Details:

  • If both are passed, verbosity wins.
  • reasoning.effort: 'minimal' maps to 'low' (Anthropic’s lowest level); 'none' disables reasoning entirely, so no output_config.effort is sent.
  • Thinking itself stays adaptive either way. On 4.6, reasoning.effort no longer influences a thinking token budget.
1// verbosity works - controls response detail
2{ "model": "anthropic/claude-4.6-opus", "verbosity": "max" } // also works with anthropic/claude-4.6-sonnet
1// reasoning.effort maps to output_config.effort (thinking stays adaptive)
2{ "model": "anthropic/claude-4.6-opus", "reasoning": { "enabled": true, "effort": "low" } } // also applies to anthropic/claude-4.6-sonnet

Breaking Changes

None. Existing requests continue to work:

  • Budget-based thinking still works when reasoning.max_tokens is set
  • reasoning.effort values still convert to thinking.budget_tokens for older models. For Opus 4.6 and Sonnet 4.6, reasoning.effort instead maps to Anthropic’s output_config.effort (same as verbosity; verbosity wins if both are passed).
  • Older models (4.5 Opus, 3.7 Sonnet, etc.) behave exactly as before
FeatureOpus 4.5Opus 4.6 / Sonnet 4.6
Default thinking modeBudget-basedAdaptive
reasoning.max_tokensSets a thinking budgetSets a thinking budget
reasoning.effortConverts to thinking.budget_tokensMaps to output_config.effort
'max' effort levelFalls back to 'high'Supported