-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
Please read this first
Currently, when using models that differ from OpenAI's reasoning format (like Qwen3 etc.) through custom providers like LiteLLM, there's no way to explicitly pass reasoning_effort="none"
to the underlying API. Setting ModelSettings(reasoning=None) is treated as a default/unset value rather than an explicit instruction to disable reasoning.
See Qwen API doc:

Feature Request
Could you add "none" to the enum?
https://github.com/openai/openai-python/blob/main/src/openai/types/shared_params/reasoning_effort.py
class Reasoning(BaseModel):
effort: Optional[ReasoningEffort] = None
ReasoningEffort: TypeAlias = Optional[Literal["minimal", "low", "medium", "high"]]
Describe the question
When integrating non-OpenAI models through LiteLLM or other providers, some models require an explicit reasoning_effort="none" parameter to indicate that reasoning should be disabled. However:
ModelSettings(reasoning=None)
doesn't pass any reasoning parameter to the providerReasoning(effort="none")
is not a valid option (only "minimal", "low", "medium", "high" are allowed)- Using
extra_body
orextra_args
to pass reasoning_effort can cause conflicts with LiteLLM's own parameter handling
Current Behavior
# This doesn't pass reasoning_effort to the provider at all
ModelSettings(reasoning=None) # Treated as unset/default
# This raises a validation error
ModelSettings(reasoning=Reasoning(effort="none")) # "none" is not a valid effort level
# This causes duplicate parameter errors in LiteLLM
ModelSettings(extra_body={"reasoning_effort": "none"}) # Conflicts with LiteLLM's reasoning_effort parameter
Expected Behavior
# Should explicitly pass reasoning_effort="none" to the provider
ModelSettings(reasoning=Reasoning(effort="none"))
Debug information
- Agents SDK version: (e.g.
v0.0.3
) - Python version (e.g. Python 3.10)
Repro steps
Ideally provide a minimal python script that can be run to reproduce the issue.
Expected behavior
A clear and concise description of what you expected to happen.