OpenHands / OpenHands/software-agent-sdk
[Bug]: SDK sends unsupported reasoning_effort to MiniMax M3
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 539
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 137
Description
Bug Description
The SDK sends the default reasoning_effort=high to minimax/MiniMax-M3, and LiteLLM rejects it with UnsupportedParamsError: minimax does not support parameters: ['reasoning_effort']. (Same bug as #4934, whose linked PR #4935 was closed unmerged; the faulty inference is still on main.)
Actual Behavior
get_features treats generic supports_reasoning: true metadata as proof of reasoning_effort support:
pytest tests/sdk/llm/test_model_features.py -q -k generic_reasoning
# fails on main: MiniMax M3-style metadata resolves supports_reasoning_effort=True
and select_chat_options then emits the parameter:
pytest tests/sdk/llm/test_chat_options.py -q -k minimax
# fails on main: reasoning_effort present in chat options for MiniMax M3
Expected Behavior
Generic supports_reasoning alone never enables reasoning_effort. Only an explicit override, an exact supports_reasoning_effort metadata flag, an explicit False on generic reasoning (disables), or LiteLLM-supported-params/allowlist evidence decides.
Acceptance Criteria
- MiniMax M3-style metadata (
supports_reasoning: true, no exact flag) resolvessupports_reasoning_effort=False. -
select_chat_optionsomitsreasoning_effortfor such models. - Explicit overrides and exact metadata flags keep precedence;
supports_reasoning: falsestill disables. - Existing
test_model_features.py/test_chat_options.pyexpectations hold.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with get_features and select_chat_options, then run the named focused tests: tests/sdk/llm/test_model_features.py -k generic_reasoning and tests/sdk/llm/test_chat_options.py -k minimax. Verify that generic supports_reasoning metadata does not enable reasoning_effort, while explicit overrides, exact metadata, and explicit false retain their stated precedence and the focused tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100