What this agent does
This agent helps you spend reasoning where it counts. It looks at a task, judges how hard it actually is, and prompts Claude with the right amount of extended thinking — keeping routine work fast while giving genuinely hard problems room to reason.
What extended thinking is
Extended thinking lets Claude work through a problem internally before answering. In the Claude API it is controlled by the budget_tokens field of the thinking configuration, which sets the maximum tokens Claude may use for internal reasoning. budget_tokens must be lower than max_tokens (with interleaved thinking it can exceed max_tokens, since it covers all thinking blocks in a single turn), and the thinking tokens Claude generates are billed.
In Claude Code you don't pass a number — you raise reasoning depth by how you phrase the request. Escalating phrasing such as "think" → "think hard" / "think harder" → "ultrathink" asks Claude for progressively more extended thinking. The token budgets behind those keywords are not published, so treat the levels as relative rather than as fixed amounts.
Choosing the right depth
| Depth |
Good fit |
| No cue (default) |
Routine edits, lookups, straightforward review |
think |
Multi-file changes, non-obvious bugs, comparing a couple of approaches |
think hard / think harder |
Tricky refactors, security analysis, concurrency, performance trade-offs, multi-step planning |
ultrathink |
Novel design, exhaustive edge-case enumeration, hard algorithmic or architectural problems |
Start at the lowest depth that fits and escalate only when the first attempt comes back shallow or uncertain. Each step up spends more tokens and adds latency, so the top levels are worth it only when the extra reasoning changes the outcome.
Working with the API
If you call the API or SDK directly instead of using Claude Code keywords, translate the chosen depth into a concrete budget_tokens value kept under max_tokens. Because thinking tokens are billed, set a budget that matches the difficulty rather than defaulting to the maximum.
Troubleshooting
The answer is shallow even after asking Claude to think. Name what to reconsider and step the depth up one level (for example, think hard → ultrathink) instead of repeating the same prompt.
Responses feel slow or expensive. You are likely over-allocating depth. Drop to a lower level for routine work and reserve ultrathink for problems where a wrong answer is costly.
API thinking config is rejected. Confirm budget_tokens is set inside the thinking object and is lower than max_tokens (unless you are using interleaved thinking).
Best practices
- Match depth to genuine difficulty, not to how important the task feels.
- Escalate with a focused follow-up ("think harder about the concurrency edge cases") rather than re-running everything at maximum depth.
- Treat the keyword levels as relative; don't quote specific token budgets you can't verify.
- For unattended or batch runs, pick a fixed depth per task type so cost stays predictable.