mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-07-27 09:45:16 +00:00
The learned fast path only rewrote `reasoning_effort` when it was already present
and not "none", so a learned model with the parameter absent kept sending nothing
-- which these models reject exactly like "high", because they apply a server-side
default. The cache recorded the conflict but every call still paid the 400.
Reproduced before fixing:
LLM(model='openai/gpt-5.6-sol') # no reasoning_effort anywhere
1st call -> 400, recovered, model learned
2nd call -> reasoning_effort ABSENT # 400 again, forever
Now "none" is forced whenever the model is known and the value isn't already
"none". Same call after the fix sends reasoning_effort=none.
`_retry_params_without_reasoning_effort` already handled the absent case correctly;
only the fast path was wrong.
tests/llms/openai -> 160 passed, 1 skipped. Ruff + mypy clean.