Anthropic released Claude Opus 5 on July 24, and most coverage has focused on the benchmarks — specifically, how it beats Fable 5 on coding at half the price. That story is real. But if you’re running Opus 4.8 in production, the more relevant story is that swapping the model ID is not a drop-in upgrade. Two breaking changes can silently fail your integrations, and the model’s behavior in agentic sessions changed enough that prompts you carried over from Opus 4.8 will work against you.
Breaking Change 1: Thinking Is On by Default
On Opus 4.8, requests ran without thinking unless you explicitly set thinking: {"type": "adaptive"}. On Claude Opus 5, every request runs with thinking enabled by default. The model decides when and how much to think on each turn.
The practical consequence: max_tokens now covers thinking and response text combined. If you set max_tokens: 16000 on Opus 4.8 for cost control, Opus 5 may spend a chunk of that budget on internal reasoning and then run short before generating a response. No error — just a truncated or missing reply.
You have two options. Option A: increase max_tokens to give the model room to think and respond. Option B: set thinking: {"type": "disabled"}, subject to the effort restriction below. Anthropic recommends option A for almost everyone — keeping thinking on and using lower effort levels to manage cost is more reliable than disabling it. See the full changelog for Opus 5 for the complete breakdown.
Breaking Change 2: Disable Thinking at High Effort, Get a 400
This one will throw an error. On Claude Opus 5, thinking: {"type": "disabled"} is only accepted at effort high or below. Set it with effort xhigh or max, and the API returns HTTP 400. This is enforced per request — a mid-conversation effort escalation with thinking disabled will also fail.
The fix is straightforward: either lower the effort level to high when disabling thinking, or remove the thinking field and let it run.
# Breaks on Opus 5 — returns HTTP 400
client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={"type": "disabled"},
output_config={"effort": "xhigh"},
messages=[...]
)
# Fix: Remove thinking disable, increase max_tokens
client.messages.create(
model="claude-opus-5",
max_tokens=20000,
output_config={"effort": "xhigh"},
messages=[...]
)
A secondary issue: when thinking is disabled (at effort high or below), Opus 5 occasionally writes tool calls into plain text instead of emitting structured tool_use blocks, or leaks internal <thinking> tags into the visible response. Keeping thinking enabled and managing cost through lower effort settings avoids both artifacts.
Three New Features Worth Adding
Mid-conversation tool changes are now in beta. You can add or remove tools between turns while preserving the prompt cache, instead of keeping a fixed tool list for the entire session. Enable it by including the mid-conversation-tool-changes-2026-07-01 beta header. This matters for agents that discover they need a new tool partway through a task — previously that meant restarting the session or losing cache.
Default fallbacks let you handle safety classifier refusals automatically. Set the fallbacks parameter to "default" and include the server-side-fallback-2026-07-01 header. When a request is flagged, it routes to Anthropic’s recommended fallback model instead of returning an error. Agents that previously got stuck on safety-triggered refusals can now degrade gracefully.
The prompt cache minimum dropped to 512 tokens, down from 1,024. No code changes needed — if your system prompts are in the 512–1,024 range, they now cache automatically on Claude Opus 5. For teams running high-volume agentic workloads with short system prompts, this is a free cost reduction.
Behavior Shifts in Agentic Sessions
Even without any code changes, Opus 5 behaves differently in ways that affect cost. Default responses are longer. In agentic sessions, the model narrates its progress more often, delegates to subagents more readily, and verifies its own work without being asked to. The last part is an improvement — the problem is that explicit verification instructions you wrote for Opus 4.8 now compound with the model’s built-in behavior and waste tokens.
Remove these from existing prompts: “include a final verification step,” “use a subagent to verify,” “double-check your answer.” Opus 5 already does all of these. Duplicating the instruction doubles the cost without improving quality.
For scope and verbosity, add explicit guidance: “Deliver what was asked, at the scope intended. Keep responses concise.” For delegation, cap it: “Delegate to a subagent only for large tasks that are genuinely independent and parallelizable.” The full set of prompting patterns is in Anthropic’s Opus 5 prompting guide.
When to Stay on Opus 4.8
Three cases where you should not upgrade yet. First, if you have a Priority Tier commitment — Opus 5 doesn’t support it. Second, if you have zero data retention requirements — Opus 5 requires 30-day retention, while Opus 4.8 has none. Third, if you’re using the web fetch tool — it’s not available on Opus 5.
Outside those constraints, the upgrade makes sense. Same price as Opus 4.8 ($5/$25 per million input/output tokens), better coding performance than Fable 5 on Frontier-Bench (43.3% vs 33.7%), and no data retention policy compared to Fable 5’s 30-day requirement. The official migration guide walks through each step.
The Migration Checklist
Four things to do before shipping Claude Opus 5 to production:
- Update model ID:
claude-opus-4-8→claude-opus-5 - Review
max_tokenson every call — thinking now shares that budget - Find any calls that combine
thinking: disabledwitheffort: xhighormax— fix them before they hit production - Audit agentic prompts for verification and delegation instructions — remove the ones Opus 5 now handles on its own
Claude Opus 5 is available now as claude-opus-5 on the Claude API, Amazon Bedrock, Google Cloud Vertex AI, and Microsoft Foundry. Fast mode (2.5x speed, $10/$50 per million tokens) is API-only for now. Read the official Anthropic announcement for the full capability and benchmark breakdown.













