Google Vertex AI in Practice

Extended Thinking on Vertex AI: Enabling Budget Tokens

Extended thinking lets Claude reason step by step before answering — at a price you control with a token budget. On Vertex AI it works, but which knob you turn depends on the model generation.

Claude 3P 101 · Updated July 2026 · Unofficial guide

"Thinking" is Claude's ability to work through a problem internally — drafting reasoning steps — before producing the answer you see. It measurably improves results on genuinely hard tasks: multi-step analysis, tricky code, ambiguous documents. Both variants Anthropic offers, extended thinking (you set an explicit budget) and adaptive thinking (the model decides how much to think), are generally available for Claude on Google Vertex AI. The catch is that not every model accepts every variant, so let's start there.

Which models take which knob

Manual extended thinking — the budget_tokens mechanism this article's title promises — is supported on models such as Claude Haiku 4.5, Opus 4.6, and Sonnet 4.6 (Google's docs note the mechanism applies to Claude 3.7 Sonnet and later). The newest generation flips the model of control: on Claude Fable 5, Opus 4.8, Opus 4.7, and Sonnet 5, manual extended thinking is not supported and returns an error; those models use adaptive thinking, steered with an effort setting rather than a token budget. If you send a thinking: {"type": "enabled"} request to Sonnet 5 expecting the old behavior, the 400 you get back is by design, not a Vertex problem.

Enabling extended thinking with a budget

On a model that supports it, you add a thinking object to the request. Vertex's documented constraints: budget_tokens must be at least 1,024 and less than your max_tokens, because thinking tokens are carved out of the same output allowance:

from anthropic import AnthropicVertex

client = AnthropicVertex(project_id="my-project", region="global")
resp = client.messages.create(
    model="claude-haiku-4-5",
    max_tokens=8000,
    thinking={"type": "enabled", "budget_tokens": 4000},
    messages=[{"role": "user",
               "content": "Reconcile these two ledgers and explain each discrepancy..."}])
print(resp.usage.output_tokens)  # includes thinking tokens

The budget is a ceiling, not a quota the model must spend — easy questions finish early. Think of it as "how long is Claude allowed to sit with the problem."

What it costs, and how it feels

Cost: thinking tokens are billed as output tokens — the most expensive token class — and count toward your rate limits. A 4,000-token thinking pass on Haiku 4.5 ($5 per million output tokens on Vertex's global endpoint) adds about two cents per request; the same budget on an Opus-class model at $25 per million adds roughly ten cents. Small per request, decisive at volume.

Latency: thinking happens before (and interleaved with) the visible answer, so time-to-first-useful-token grows with the budget. For interactive products, pair extended thinking with streaming so users see progress, and keep budgets modest. For offline pipelines, latency barely matters and bigger budgets are cheap insurance on quality.

When it's worth paying for

Worth itSkip it
Multi-step reasoning: reconciliation, root-cause analysis, complex extraction with cross-checksClassification, routing, simple summarization — thinking adds cost, not accuracy
High cost-of-error decisions where a wrong answer is expensive to catch downstreamLatency-critical chat where users expect instant responses
Hard cases escalated from a cheaper model tierTasks a well-crafted prompt already solves reliably
Rule of thumb: run your evaluation set with thinking off, then on at a moderate budget. Pay for thinking only where the measured quality lift shows up — and prefer routing hard cases to a thinking-enabled call over enabling it everywhere.

One operational note: because thinking consumes max_tokens, size max_tokens for budget plus the answer you expect, or long responses will be cut short.

Choosing a budget in practice

Teams often ask what number to put in budget_tokens. Treat it empirically rather than theoretically: start near the documented floor of 1,024 for moderately hard tasks, and increase in steps only while your evaluation metrics keep improving. Returns diminish — most tasks that benefit from thinking at all get the bulk of the lift from the first few thousand tokens, and past that point you are buying latency and output-token spend for flat quality. It also pays to make the budget a per-use-case configuration value rather than a global constant: the reconciliation pipeline and the FAQ assistant have no reason to share a thinking budget, and separating them lets you tune cost where the money actually goes. Whatever you choose, log actual thinking consumption from the usage data so finance sees the real number, not the ceiling.

Where to go next

For the concept across platforms, read the extended thinking explainer; for budgeting it into your unit economics, see the thinking-budget cost guide.

Sources