OpenClaw + Opus 4.7: Thinking Is Silently Disabled (And You'd Never Know)

Published April 17, 2026 · Bug #67888 · Affects: 2026.4.15 · Model: anthropic/claude-opus-4-7

You upgraded to Claude Opus 4.7, set thinkingDefault: "xhigh", and everything looks normal. No errors. But your agent is secretly running with thinking completely disabled on every single turn. You're paying for Opus 4.7 and getting none of its extended reasoning capability.

What's Happening

OpenClaw 2026.4.15 ships with a hard-coded list of model IDs that support adaptive thinking. Opus 4.7 is not on the list. When OpenClaw sends a thinking request for Opus 4.7, it uses the wrong format — thinking: {type: "enabled"} — which Anthropic rejects with HTTP 400:

"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort".

OpenClaw catches the 400, silently retries with thinking=off, and succeeds. You never see an error. Your agent just quietly loses all extended reasoning — even if you explicitly set thinkingDefault: "xhigh".

The Root Cause

The supportsAdaptiveThinking() function in OpenClaw's Anthropic adapter lists every 4.6 variant but stops there:

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 missing
}

When your model ID is claude-opus-4-7, this returns false, and OpenClaw falls through to the legacy budget_tokens path — which Anthropic no longer accepts for this model family.

Workarounds

Option 1: Force Thinking Level in Model Params (Best Workaround)

Add an explicit thinking config to your model params in openclaw.json. This bypasses the broken automatic detection:

{
  "models": {
    "providers": {
      "anthropic": {
        "models": [
          {
            "id": "claude-opus-4-7",
            "thinkingDefault": "high",
            "params": {
              "thinking": { "type": "adaptive" },
              "output_config": { "effort": "high" }
            }
          }
        ]
      }
    }
  }
}

For xhigh effort (Opus 4.7 adds this tier):

"output_config": { "effort": "xhigh" }

Option 2: Use /reasoning Command Per Session

Rather than relying on the automatic config, use the slash command to force thinking on in each new session:

/reasoning high
# or
/reasoning xhigh

This sets thinking for the current session and bypasses the broken auto-detection.

Option 3: Stay on Opus 4.6 Until Patched

Opus 4.6 is correctly listed in supportsAdaptiveThinking() and works as expected. If extended thinking is critical to your workflow, staying on 4.6 is the safest option for now:

openclaw configure
# Select: anthropic/claude-opus-4-6

Option 4: Wait for the Fix

The fix is straightforward — add opus-4-7 to the supportsAdaptiveThinking() whitelist and update the xhigh effort mapping. Track it at issue #67888.

How to Confirm You're Affected

# Check your OpenClaw version
openclaw --version
# Affected: 2026.4.15

# Enable gateway debug logging and watch for the 400 + fallback
OPENCLAW_LOG_LEVEL=debug openclaw gateway start --no-detach 2>&1 | grep -i "unsupported thinking\|thinking.*off\|budget_tokens"
# If you see these lines, you're affected

Why This Matters

Opus 4.7 is Anthropic's most capable model for complex reasoning tasks. Running it with thinking disabled is roughly equivalent to using a much cheaper model — you're burning tokens for context handling while getting no benefit from the extended reasoning that makes Opus worth its cost.

If you're using Opus 4.7 for any task that requires multi-step logic, code analysis, or structured reasoning, this bug likely means you've been getting worse results than expected since upgrading.

Need help tuning your OpenClaw model config? ClawReady's setup service covers exactly this — model selection, thinking config, and cost optimization across providers.

← Back to blog