Skip to content

Reasoning Control

For models that support reasoning (chain-of-thought), you can control the depth of reasoning with the reasoning_effort parameter.

What you’ll learn:

  • How to tell whether a model supports reasoning control
  • How to use the reasoning_effort parameter
  • How to disable reasoning for Qwen 3.6 models
Model (example)Reasoning Control
GPT-5, GPT-5 mini, GPT-5 nanoreasoning_effort parameter
Gemini 3reasoning_effort parameter
Claude 4.6, Claude Opus 5reasoning_effort parameter
Qwen 3.6/no_think prompt keyword

Most reasoning models follow one of these two patterns: an OpenAI-compatible reasoning_effort parameter, or a prompt keyword. reasoning_effort is accepted far more widely than the table suggests — GLM, Mistral, Gemma, Nemotron and the T-Cloud-hosted open-source models take it too.

A few models are exceptions worth knowing about:

  • Mistral models accept only none and high. Sending low or medium returns HTTP 400 with reasoning_effort=... is not supported by Mistral models.
  • Some newer Anthropic models reject reasoning_effort and control thinking differently; the error names the alternative to use.
  • Code-specialised models may reject the parameter outright with The requested operation is unsupported.

If a model rejects reasoning_effort, check its entry in Chat & Reasoning models.

from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="claude-sonnet-4.6",
messages=[
{"role": "system", "content": "You are a concise and helpful assistant."},
{"role": "user", "content": "What is the capital of France?"},
],
reasoning_effort="low", # "low", "medium", or "high"
)
print(response.choices[0].message.content)

The reasoning_effort parameter accepts three values:

  • low — Fast responses, minimal reasoning
  • medium — Balanced reasoning depth
  • high — Deep reasoning for complex problems

For Qwen 3.6 models, prepend /no_think to your prompt to disable reasoning:

from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="Qwen3.6-35B-A3B-FP8",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "/no_think What is your name?"},
],
)
print(response.choices[0].message.content)