Skip to content

[FEATURE]: support thinking mode variants for MiniMax M3 #31180

Closed

Description

@lucidfrontier45

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

https://platform.minimax.io/docs/api-reference/text-anthropic-api#thinking-control

MiniMax M3 supports two different thinking modes. The default is thinking mode, we can add non-thinking mode as a variant.


FYI I tried to add an variant as follows. The variant itself was added correctly, I can switch to it, but thinking was not disabled. Seems like the way I specified the option was wrong.

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "minimax-coding-plan": {
      "models": {
        "MiniMax-M3": {
          "variants": {
            "nothinking": {
              "thinking": {
                "type": "disabled"
              }
            }
          }
        }
      }
    }
  }
}

[update]
I comfirmed the MiniMax API does support disabling thinking

ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
ANTHROPIC_API_KEY=sk-cp-***
import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="MiniMax-M3",
    max_tokens=1000,
    system="You are a helpful assistant.",
    messages=[
        {"role": "user", "content": [{"type": "text", "text": "Hi, how are you?"}]}
    ],
    thinking={"type": "disabled"},
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking:\n{block.thinking}\n")
    elif block.type == "text":
        print(f"Text:\n{block.text}\n")

>>>
Text:
Hi! I'm doing well, thanks for asking. How can I help you today? 😊

Activity

  1. qiyuanhuakai commented on Jun 7, 2026

    @qiyuanhuakai

    I have tested this and found that the corret option is

    "models": {
            "MiniMax-M3": {
              "reasoning": true,
              "variants": {
                "none": {
                  "thinking": {
                    "type": "disabled"
                  }
                },
                "think":{
                  "thinking": {
                    "type": "adaptive"
                  }
                }
              }
          }
        }
    

    Without "reasoning":true,the option thinking does not seem to work.

    I strongly agree that this support should be added.

    By the way, while filling in the settings, I noticed that the OpenCode schema seems to be broken—the model.options field lacks the corresponding schema hints. Has anyone else encountered this issue?

  2. lucidfrontier45 commented on Jun 7, 2026

    @lucidfrontier45
    Author

    @qiyuanhuakai

    Thank you for sharing the setting. Unfortunately I tried it but it still generated thinking tokens.
    Tested on OpenCode 1.16.2

    Image
  3. qiyuanhuakai commented on Jun 7, 2026

    @qiyuanhuakai

    @qiyuanhuakai

    Thank you for sharing the setting. Unfortunately I tried it but it still generated thinking tokens. Tested on OpenCode 1.16.2

    Image

    Well, I did some more tests, and it seems that this may be because you didn't fill in npm, baseUrl, and apiKey fields, which led to this not being a valid provider setup. At the same time, you reused the built-in name minimax-coding-plan, so OpenCode automatically fell back to its built-in MiniMax-M3 model settings instead of the one you set. I'm not entirely sure if this reasoning is correct, but it is consistent with the results of my tests.

  4. lucidfrontier45 commented on Jun 7, 2026

    @lucidfrontier45
    Author

    @qiyuanhuakai

    Yes. That's my intention. I wanted to override built-in minimax-coding-plan.
    I followed the official doc to do that.
    https://opencode.ai/docs/en/models/#configure-models

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions