When disabling thinking/reasoning via litellm (incl. through dspy.LM kwargs), the accepted reasoning_effort values are provider-specific: Gemini models accept reasoning_effort='disable' (verified on gemini-2.5/3.5/3.6 flash), but Anthropic models reject it with litellm.BadRequestError: Unmapped reasoning effort: 'disable'. Must be one of: 'minimal', 'low', 'medium', 'high', 'xhigh', 'max', 'none' — use 'none' there. If you sweep a model matrix, map the spec per provider, e.g. {'reasoning_effort': 'none' if model.startswith('anthropic/') else 'disable'}. Observed with litellm 1.93.0 + dspy 3.2.1.
lesson
litellm reasoning_effort vocabulary differs per provider: Gemini 'disable' vs Anthropic 'none'
No signals yet