{"slug": "claude-sonnet-5-effort-levels-what-adaptive-thinking-costs", "title": "Claude Sonnet 5 Effort Levels: What Adaptive Thinking Costs", "summary": "Claude Sonnet 5, shipped June 30 by Anthropic, introduces a five-position effort dial that controls thinking tokens per request, with adaptive thinking enabled by default and a new tokenizer producing 30% more tokens than Sonnet 4.6, creating a hidden cost multiplier for developers. Standard pricing takes effect September 1, and developers must explicitly opt out of thinking via `thinking={\"type\": \"disabled\"}` on the Anthropic API, while Amazon Bedrock users cannot disable adaptive thinking on Sonnet 5. At `xhigh` effort, Sonnet 5 can cost more than Opus 4.8 at high effort for the same quality, and adaptive thinking should be disabled for structured extraction tasks to avoid truncated JSON output.", "body_md": "Claude Sonnet 5 shipped June 30 with a five-position effort dial that controls how many thinking tokens the model burns per request. The default is `high`\n\n. Most developers haven’t touched it. Pair that with a new tokenizer producing 30% more tokens than Sonnet 4.6, and you have a hidden cost multiplier running inside every agent loop you’ve deployed. [Standard pricing hits September 1.](https://platform.claude.com/docs/en/about-claude/models/whats-new-sonnet-5) Here’s what the dial does and how to set it before the bill arrives.\n\n## What Adaptive Thinking Actually Is\n\nExtended thinking on Sonnet 4.6 was opt-in. You passed `thinking: {type: \"enabled\", budget_tokens: N}`\n\nto enable it. On Sonnet 5, that parameter is gone — it returns a 400 error. In its place is adaptive thinking, which is on by default for every request.\n\nThe behavioral change catches teams off guard: on Sonnet 4.6, omitting the `thinking`\n\nfield meant no thinking. On Sonnet 5, omitting it enables adaptive thinking. If your integration never used extended thinking, you’re getting it now unless you explicitly opt out.\n\nOne thing worth knowing about the `display`\n\nsetting: it controls what comes back in the response, not what gets billed. Setting `display`\n\nto `\"omitted\"`\n\n— the new default — hides thinking output but does not stop thinking from happening. You pay for it either way. To actually disable thinking, pass `thinking={\"type\": \"disabled\"}`\n\n. Note: that option exists on the Anthropic API. On Amazon Bedrock, you cannot disable adaptive thinking on Sonnet 5.\n\n## The Five Effort Levels\n\nEffort is a behavioral signal, not a hard token cap. The model uses your setting to calibrate how much to think, but it retains discretion. Here’s the practical breakdown:\n\n| Level | Token Usage | When to Use |\n|---|---|---|\n`low` | Minimal | Chat, simple classification, latency-sensitive high-volume work |\n`medium` | Moderate | Cost-sensitive tasks; roughly Sonnet 4.6 at high effort |\n`high` | Balanced (default) | Complex reasoning, coding, agentic tasks |\n`max` | Heavy | Extended autonomous work, multi-step planning |\n`xhigh` | Maximum | Hardest coding and agentic tasks |\n\nThe effort parameter lives in `output_config`\n\n. You can set it per request — every call can carry a different effort level. That’s the point: a classification task and a debugging session shouldn’t share the same setting. See [Anthropic’s effort documentation](https://platform.claude.com/docs/en/build-with-claude/effort) for the full parameter reference.\n\n```\nresponse = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=16000,\n    output_config={\"effort\": \"medium\"},\n    messages=[{\"role\": \"user\", \"content\": \"...\"}]\n)\n```\n\n## The xhigh Trap\n\nAt `xhigh`\n\neffort, Sonnet 5 performs roughly at Opus 4.8’s high-effort level on agentic benchmarks. Benchmark data from independent evaluators puts them close on OSWorld and BrowseComp. But at `xhigh`\n\n, Sonnet 5 can cost *more* than Opus 4.8 at high effort for the same quality output.\n\nThe rule follows directly: if you need Opus 4.8-class quality, use Opus 4.8. Don’t escalate Sonnet to its ceiling — you end up paying flagship prices for a model that isn’t the flagship.\n\n## Turn Thinking Off for Structured Extraction\n\nAdaptive thinking and structured extraction don’t mix well. For tasks where you’re asking the model to read input and emit a fixed JSON schema — extraction, form filling, strict classification — thinking competes with output tokens within the `max_tokens`\n\nbudget. The model thinks first, uses up tokens, then clips the JSON output. You get a truncated or empty result with no obvious error message. [This edge case is well-documented](https://ian-provencher.com/tips/sonnet-5-thinking-off-for-extraction/) but easy to miss during migration.\n\nThe fix is one line:\n\n```\nresponse = client.messages.create(\n    model=\"claude-sonnet-5\",\n    max_tokens=2048,\n    thinking={\"type\": \"disabled\"},\n    messages=[{\"role\": \"user\", \"content\": \"Extract these fields as JSON: ...\"}]\n)\n```\n\nThere’s no reasoning to do in a pure extraction task. Disabling thinking here doesn’t cost you quality — it prevents a silent failure mode.\n\n## The September Cost Math\n\nIntroductory API pricing through August 31: $2 input / $10 output per million tokens. [Standard pricing starting September 1](https://platform.claude.com/docs/en/about-claude/models/migration-guide): $3 input / $15 output — a 50% increase on both sides.\n\nLayer that on top of the tokenizer change. The same prompt that cost X on Sonnet 4.6 uses 30% more tokens on Sonnet 5. Independent benchmark data shows an average task costs $2.29 on Sonnet 5 versus $1.20 on Sonnet 4.6, at current introductory prices. After September 1, untuned agent loops built on Sonnet 5 can run 2–3x what the same workload cost on 4.6.\n\nThe introductory price is masking that. Most teams won’t notice until the September bill arrives.\n\n## Three Settings to Check Before September 1\n\nFirst: audit every integration running Sonnet 5 and set `output_config={\"effort\": ...}`\n\nexplicitly. Don’t accept the default `high`\n\nfor workloads that don’t need it. Classify tasks into simple (use `low`\n\nor `medium`\n\n), standard (use `high`\n\n), and exceptional (use `max`\n\nor `xhigh`\n\n).\n\nSecond: add `thinking={\"type\": \"disabled\"}`\n\nto any extraction or strict structured output workflow. The adaptive thinking default is not appropriate for those tasks.\n\nThird: re-run token counts against Sonnet 5 before you finalize `max_tokens`\n\nlimits. Counts from Sonnet 4.6 don’t transfer — the new tokenizer changes the math. A `max_tokens`\n\nlimit tuned for 4.6 may truncate equivalent output on Sonnet 5. The [adaptive thinking documentation](https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking) covers how to leave adequate headroom for thinking tokens.\n\nThe effort dial is there precisely because different tasks need different amounts of compute. The default is a reasonable starting point for general use — but it’s not the right answer for everything, and it costs more starting in 34 days.", "url": "https://wpnews.pro/news/claude-sonnet-5-effort-levels-what-adaptive-thinking-costs", "canonical_source": "https://byteiota.com/claude-sonnet-5-effort-levels-what-adaptive-thinking-costs/", "published_at": "2026-07-28 21:10:10+00:00", "updated_at": "2026-07-28 21:23:45.756557+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-products", "ai-tools", "ai-infrastructure"], "entities": ["Claude Sonnet 5", "Anthropic", "Amazon Bedrock", "Sonnet 4.6", "Opus 4.8"], "alternates": {"html": "https://wpnews.pro/news/claude-sonnet-5-effort-levels-what-adaptive-thinking-costs", "markdown": "https://wpnews.pro/news/claude-sonnet-5-effort-levels-what-adaptive-thinking-costs.md", "text": "https://wpnews.pro/news/claude-sonnet-5-effort-levels-what-adaptive-thinking-costs.txt", "jsonld": "https://wpnews.pro/news/claude-sonnet-5-effort-levels-what-adaptive-thinking-costs.jsonld"}}