---
type: email
from: okdolly <notifications@github.com>
subject: [openai/openai-agents-python] Support for

 reasoning=ReasoningEffort(effort="none") to explicitly disable reasoning for

 non-reasoning models (Issue #1764)
received: 2026-03-06 07:37:20
date_header: Wed, 17 Sep 2025 12:58:56 -0700
priority: normal
status: awaiting_approval
uid: 30706
---

## Email Content

**From:** okdolly <notifications@github.com>
**Subject:** [openai/openai-agents-python] Support for

 reasoning=ReasoningEffort(effort="none") to explicitly disable reasoning for

 non-reasoning models (Issue #1764)
**Date:** Wed, 17 Sep 2025 12:58:56 -0700

### Body (preview)

okdolly created an issue (openai/openai-agents-python#1764)



### Please read this first



Currently, when using models that don't support 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.



### 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:

1. `ModelSettings(reasoning=None)` doesn't pass any reasoning parameter to the provider

2. `Reasoning(effort="none")` is not a valid option (only "minimal", "low", "medium", "high" are allowed)

3. Using `extra_body` or `extra_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.

---

## Suggested Actions
- [ ] Reply
- [ ] Archive
- [ ] Escalate
