CertSafari
    Anthropic Claude Certified Developer – Foundations (CCDV-F)· Lessons

    Domain 5 · Lesson 12/25

    Claude model options: thinking, effort levels and fast mode

    LLM Fundamentals

    9 min read
    4.2% of exam
    4 sources
    Published 12 Oct 2026
    Docs as of 30 Sep 2026

    What you will be able to do

    • Distinguish extended thinking (manual budget_tokens) from adaptive thinking and know which models accept each
    • Explain how thinking tokens are billed and counted, including when display is omitted
    • Set the effort parameter and choose a level for a workload
    • Explain what fast mode changes and what it does not

    1.Extended thinking and adaptive thinking

    A model that answers in one pass has to get everything right the first time, with no scratch work. Thinking lifts that limit. With thinking active, Claude works through the problem in its own words before it answers: it restates the question, tries approaches, checks intermediate results and drops paths that fail. This reasoning arrives in thinking content blocks before the text. It is why thinking helps on math, coding, analysis and long agentic tasks. The text you can see in a thinking block is a summary of the reasoning, never the raw chain of thought.

    There are two ways to configure it. Extended thinking is the older, manual form: you send type: "enabled" with a fixed budget_tokens. It is deprecated on Opus 4.6 and Sonnet 4.6, and on Claude 4.7 and later models budget_tokens returns a 400 error. Adaptive thinking (type: "adaptive") lets Claude decide when to think and how much, based on the effort setting and how complex the query is. Easy queries get a direct answer. On Claude Opus 5.5, Fable 5.1 and the Fable and Mythos 5 models, adaptive thinking is always on and cannot be disabled.

    What each model does with each thinking setting (selected models)
    ModelNo thinking field"adaptive""enabled" with budget_tokens
    Claude Opus 5.5Adaptive thinkingAdaptive thinking400 error
    Claude Opus 4.8Thinking offAdaptive thinking400 error
    Claude Sonnet 4.6Thinking offAdaptive thinkingExtended thinking (deprecated)
    Claude Haiku 4.5Thinking off400 errorExtended thinking

    Thinking is never free. Reasoning tokens are billed as output tokens and count toward max_tokens, so leave room for both the thinking and the reply. The display field only controls whether you see the summary. "omitted", the default on the Claude 5 models and Opus 4.7 and 4.8, returns an empty thinking field and speeds up the first text token when streaming, but you still pay for the full thinking. You can also steer when adaptive thinking triggers. If a large system prompt makes Claude reason through trivial questions, add an instruction telling it to answer directly when thinking would not meaningfully improve the answer.

    Checkpoint 1 of 5· Check yourself

    A FAQ bot on Claude Opus 4.8 uses adaptive thinking, but it reasons at length over trivial questions and users notice the latency. The team wants thinking kept available for hard questions. What is the best fix?

    Checkpoint 2 of 5· Exam question

    A team using Claude Sonnet 5 wants to guarantee the lowest possible latency on simple lookup queries by turning reasoning off completely for those requests. Simply omitting the thinking configuration does not achieve this. What should they do instead?

    Sources12

    2.Effort levels: how many tokens Claude spends

    The effort parameter sets how many tokens Claude spends on a response, so one model can trade thoroughness against token efficiency. You set it with output_config.effort. It affects every output token: the response text, tool calls and their arguments, and thinking when thinking is active. That is why effort works whether or not thinking is on, and why lower effort also means fewer, terser tool calls. On a model where adaptive thinking cannot be turned off, such as Opus 5.5, effort becomes the main control over how much the model reasons and what a request costs.

    Running one request at medium effortpython
    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-opus-5-5",
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Analyze the trade-offs between microservices and monolithic architectures",
            }
        ],
        output_config={"effort": "medium"},
    )

    Most models default to high. Claude Opus 5.5 defaults to medium, so a request that leaves effort out runs one level lower than it did on Opus 5. Not every model has every level. max and xhigh exist only on newer models, and not every model with max also has xhigh. At the higher levels, set a large max_tokens, because it is a hard limit on total output, thinking plus response text.

    Effort levels and typical uses
    LevelDescriptionTypical use case
    maxAbsolute maximum capability with no constraints on token spendingTasks requiring the deepest possible reasoning
    xhighExtended capability for long-horizon workLong-running agentic and coding tasks (over 30 minutes)
    highSpends as many tokens as the task needs; default on most modelsComplex reasoning, difficult coding problems, agentic tasks
    mediumBalanced approach with moderate token savings; default on Claude Opus 5.5Agentic tasks balancing speed, cost, and performance
    lowMost efficient, with some capability reductionSimpler tasks needing the best speed and lowest costs, such as subagents

    Checkpoint 3 of 5· Fill the gap

    Which request field completes this sample so it runs at medium effort?

    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-opus-5-5",
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Analyze the trade-offs between microservices and monolithic architectures",
            }
        ],
         ? ={"effort": "medium"},
    )

    Sources3

    3.Fast mode: the same model, faster output

    Fast mode is a research preview that gives up to 2.5x more output tokens per second on Claude Opus 5.5, Opus 5 and Opus 4.8, at premium pricing. It is not a different model. It runs the same weights with the same behaviour on a faster inference configuration, so you keep Opus-level capability without moving to a smaller model. You opt in by setting speed: "fast" and sending the fast-mode-2026-02-01 beta header.

    Opting a request into fast modepython
    response = client.beta.messages.create(
        model="claude-opus-5-5",
        max_tokens=4096,
        speed="fast",
        betas=["fast-mode-2026-02-01"],
        messages=[
            {"role": "user", "content": "Refactor this module to use dependency injection"}
        ],
    )

    Where the speed shows up is important. Fast mode raises output tokens per second, not time to first token, so it pays off on long generations and is easiest to see when streaming. If your problem is the wait before the first token, fast mode is the wrong tool. Effort and fast mode also act on different things. Effort changes how many tokens Claude produces. Fast mode changes how quickly each one arrives.

    Checkpoint 4 of 5· Check yourself

    A streaming code assistant on Claude Opus 5 needs long refactors to finish faster, and the team will pay a premium but will not change models. Which change fits?

    Checkpoint 5 of 5· Exam question

    A prompt engineer is building an extraction task that must follow a specific output format consistently, including on tricky edge cases. They want the most reliable way to steer Claude's format and structure using a small number of well-crafted demonstrations. What should they do?

    Sources4

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 1.Fast mode swaps in a smaller, faster model, so you trade some intelligence for speed.Why is that wrong?

      Fast mode uses the same model weights and behaviour on a faster inference configuration. Only output speed and price change.

      Covered in Fast mode: the same model, faster output

    2. 2.Setting thinking display to "omitted" cuts thinking costs, because the thinking text is not returned.Why is that wrong?

      Omitted display skips streaming the thinking text, which lowers latency, but every thinking token is still generated and billed.

      Covered in Extended thinking and adaptive thinking

    3. 3.Effort only matters when thinking is enabled, because it is a thinking budget.Why is that wrong?

      Effort applies to every output token, including response text and tool calls, so it works with or without thinking.

      Covered in Effort levels: how many tokens Claude spends

    Sources

    Every claim above is drawn from one of these pages, quoted as it was written on the date shown.

    1. 1.
      “When thinking is active, Claude works through the problem in its own words before answering”
      ↩︎ Extended thinking and adaptive thinking
      “what you see is never the raw chain of thought: the text in a thinking block is a summary of Claude's reasoning.”
      ↩︎ Extended thinking and adaptive thinking
      “If your model supports only extended thinking (see the per-model configuration table), configure it with type: "enabled" and a budget_tokens value instead.”
      ↩︎ Extended thinking and adaptive thinking
      “the tokens Claude spends reasoning are billed as output tokens, even when the thinking text isn't returned to you”
      ↩︎ Extended thinking and adaptive thinking
      “You're still charged for the full thinking tokens. Omitting reduces latency, not cost.”
      ↩︎ Exam trap 2
    2. 2.
      “On Claude 4.7 and later models, setting budget_tokens returns a 400 error.”
      ↩︎ Extended thinking and adaptive thinking
      “Claude calibrates its thinking based on two factors: the effort parameter and query complexity.”
      ↩︎ Extended thinking and adaptive thinking
      “The triggering behavior for adaptive thinking is promptable.”
      ↩︎ Checkpoint
    3. 3.
      “The effort parameter lets you control how many tokens Claude spends when responding to requests.”
      ↩︎ Effort levels: how many tokens Claude spends
      “Lower effort also means fewer and terser tool calls.”
      ↩︎ Effort levels: how many tokens Claude spends
      “Most Claude models default to high effort, spending as many tokens as needed for excellent results; Claude Opus 5.5 defaults to medium.”
      ↩︎ Effort levels: how many tokens Claude spends
      “so effort is the primary control for how much the model reasons and what a request costs.”
      ↩︎ Effort levels: how many tokens Claude spends
      “It's a hard limit on total output (thinking plus response text).”
      ↩︎ Effort levels: how many tokens Claude spends
      “Because effort applies to every output token, it works whether or not thinking is enabled.”
      ↩︎ Exam trap 3
    4. 4.
      “Set speed: "fast" with the fast-mode-2026-02-01 beta header on your request to opt in.”
      ↩︎ Fast mode: the same model, faster output
      “Speed benefits are focused on output tokens per second (OTPS), not time to first token (TTFT)”
      ↩︎ Fast mode: the same model, faster output
      “Fast mode runs the same model with a faster inference configuration. There is no change to intelligence or capabilities.”
      ↩︎ Exam trap 1
      “Fast mode runs the same model with a faster inference configuration. There is no change to intelligence or capabilities.”
      ↩︎ Prediction

    Ready to test yourself?

    Practise the 20 questions on this subdomain.

    Spotted a mistake, or was something unclear? Tell us.