Claude Opus 4.7 Adaptive Thinking Silently Broken in OpenClaw 4.15

Published April 17, 2026 · Issue #68078 · Affects: 2026.4.15 · Model: claude-opus-4-7

If you configured Claude Opus 4.7 with params.thinking = "adaptive" in OpenClaw, it appears to work — no errors, responses come back — but you're not actually getting adaptive thinking. OpenClaw is silently sending a fixed budget_tokens: 10000 to Anthropic instead. You're paying for standard thinking while believing you have adaptive.

What's Happening

The culprit is a one-line omission in OpenClaw's transport layer. The function supportsAdaptiveThinking() in anthropic-vertex-stream only checks for Opus 4.6 and Sonnet 4.6:

function supportsAdaptiveThinking(modelId) {
  return modelId.includes("opus-4-6") || modelId.includes("opus-4.6")
      || modelId.includes("sonnet-4-6") || modelId.includes("sonnet-4.6");
}

Opus 4.7 is simply missing from this list. When OpenClaw sees thinking: "adaptive" on an unlisted model, it doesn't throw an error — it silently falls back to thinking: { type: "enabled", budget_tokens: 10000 }.

The irony: other parts of the codebase already know about Opus 4.7. shouldUseAnthropicAdaptiveThinkingDefault includes ANTHROPIC_OPUS_47_MODEL_ID. ANTHROPIC_MODERN_MODEL_PREFIXES includes claude-opus-4-7. Only the transport-level whitelist was missed during the 4.7 rollout.

There's also a secondary issue: mapThinkingLevelToEffort's xhigh branch only maps to "max" for Opus 4.6. For Opus 4.7, it currently returns "high" — probably also incorrect.

How to Confirm You're Affected

Check your gateway logs for the raw request body sent to Anthropic. If you see:

"thinking": { "type": "enabled", "budget_tokens": 10000 }

…when you configured adaptive, you're affected. You should be seeing:

"thinking": { "type": "adaptive" }

Workaround

Until the fix ships, explicitly set a non-adaptive thinking level in your agent config. This forces OpenClaw into the fixed budget_tokens path intentionally, rather than landing there by accident:

# In your openclaw.json or agents config
agents:
  defaults:
    models:
      "anthropic*/claude-opus-4-7":
        params:
          thinking: "high"   # or "low", "medium" — avoids the silent fallback

Setting thinking: "high" uses a larger but fixed token budget and avoids the ambiguity of the broken adaptive path. You won't get true adaptive thinking until the whitelist is patched, but at least you'll know what you're getting.

What "Adaptive" Actually Does

Anthropic's adaptive thinking mode lets the model dynamically scale its reasoning budget based on problem complexity. Simple questions use fewer tokens; hard problems get more. The fixed budget_tokens: 10000 fallback is always 10K regardless of what the task needs — potentially wasteful on easy queries and insufficient on complex ones.

Affected Versions

Track the fix at issue #68078.

Need Help?

If you're running Opus 4.7 and want to verify your thinking configuration is actually doing what you expect, ClawReady's audit covers exactly this — we check your model config, provider routing, and thinking levels to make sure nothing is silently misbehaving.

← Back to blog