#How do i add no reasoning model on minimax

1 messages · Page 1 of 1 (latest)

cerulean anvil
#

As title.

i have this in my oepnclaw.json.
I want to add minimax-2.5 but disabled reasoning

"minimax-portal": {
"baseUrl": "https://api.minimax.io/anthropic",
"apiKey": "minimax-oauth",
"api": "anthropic-messages",
"models": [
{
"id": "MiniMax-M2.1",
"name": "MiniMax M2.1",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
},
{
"id": "MiniMax-M2.5",
"name": "MiniMax M2.5",
"reasoning": true,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
},

pale swallowBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

graceful gateBOT
#

Yep — you can override it. Just set reasoning: false on the MiniMax-M2.5 entry (even though the built-in catalog marks it as reasoning-capable).

{
  models: {
    providers: {
      "minimax-portal": {
        baseUrl: "https://api.minimax.io/anthropic",
        apiKey: "minimax-oauth",
        api: "anthropic-messages",
        models: [
          {
            id: "MiniMax-M2.5",
            name: "MiniMax M2.5",
            reasoning: false, // <- disable reasoning for this model
            input: ["text"],
#
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 200000,
            maxTokens: 8192,
          },
        ],
      },
    },
  },
}

Two related knobs (people often mix these up):

  • Model catalog reasoning: false = “treat this model as not reasoning-capable” (affects /think fallback behavior, etc).
  • /reasoning off = hide/show the separate Reasoning: message in chat (session toggle). If you’re seeing reasoning output, run /reasoning off (or start a fresh /new session).

After changing config, restart the gateway (openclaw gateway restart).

cerulean anvil
#

Issue: i want both
MiniMax-M2.5 reasoning (default)
MiniMax-M2.5 non-reasoning

so on whatsapp i can do
/model MiniMax-M2.5-no-reasoning
and /model MiniMax-M2.5

graceful gateBOT
#

You can’t have two different “models” with the exact same key provider/modelId (so you can’t have two separate entries that both resolve to minimax-portal/MiniMax-M2.5).

You’ve got two good options:

Option A (simplest): keep one M2.5, toggle thinking per session

On WhatsApp just do:

  • /think off (no reasoning/thinking)
  • /think low (reasoning/thinking back on)

This works with the same /model MiniMax-M2.5.

Docs: https://docs.openclaw.ai/tools/thinking

Option B: expose two selectable entries by duplicating the provider id + use aliases

Make a second provider that points at the same upstream model, but set reasoning: false there:

#
{
  models: {
    providers: {
      "minimax-portal": {
        baseUrl: "https://api.minimax.io/anthropic",
        apiKey: "minimax-oauth",
        api: "anthropic-messages",
        models: [
          { id: "MiniMax-M2.5", name: "MiniMax M2.5", reasoning: true, input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 200000, maxTokens: 8192 },
        ],
      },

      "minimax-portal-nr": {
        baseUrl: "https://api.minimax.io/anthropic",
#
        apiKey: "minimax-oauth",
        api: "anthropic-messages",
        models: [
          { id: "MiniMax-M2.5", name: "MiniMax M2.5 (no reasoning)", reasoning: false, input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 200000, maxTokens: 8192 },
        ],
      },
    },
  },

  agents: {
    defaults: {
      // Optional but recommended: give them short names for WhatsApp
      models: {
        "minimax-portal/MiniMax-M2.5": { alias: "m25" },
#
        "minimax-portal-nr/MiniMax-M2.5": { alias: "m25-nr" },
      },
    },
  },
}

Then you can do:

  • /model m25 (reasoning-default)
  • /model m25-nr (non-reasoning-default)

Note: if you type /model MiniMax-M2.5 while both exist, OpenClaw will usually pick the “best” match (often the default). So aliases are the clean way to pick the exact variant.

Aliases docs: https://docs.openclaw.ai/help/faq (see “model shortcuts / aliases”)

After changes: openclaw gateway restart.

#

If this doesn’t behave as expected on your install, paste openclaw --version (some older builds handled model catalogs differently).

cerulean anvil
#

"minimax": {
"baseUrl": "https://api.minimax.io/anthropic",
"api": "anthropic-messages",
"models": [
{
"id": "MiniMax-M2.5",
"name": "MiniMax M2.5",
"reasoning": true,
"input": [
"text"
],
"cost": {
"input": 15,
"output": 60,
"cacheRead": 2,
"cacheWrite": 10
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
},
"minimax-nr": {
"baseUrl": "https://api.minimax.io/anthropic",
"api": "anthropic-messages",
"models": [
{
"id": "MiniMax-M2.5",
"name": "MiniMax M2.5 (nr)",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 15,
"output": 60,
"cacheRead": 2,
"cacheWrite": 10
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
}

"agents": {
"defaults": {
"model": {
"primary": "minimax/MiniMax-M2.5",
"fallbacks": [
"deepseek/deepseek-chat",
"deepseek/deepseek-reasoner",
"google-gemini-cli/gemini-3-pro-preview",
"google-gemini-cli/gemini-3-flash-preview"
]
},
"models": {
"deepseek/deepseek-chat": {
"alias": "deepseek-chat"
},
"deepseek/deepseek-reasoner": {},
"google-gemini-cli/gemini-3-pro-preview": {},
"google-gemini-cli/gemini-3-flash-preview": {},
"minimax/MiniMax-M2.5": {
"alias": "Minimax"
},
"minimax-nr/MiniMax-M2.5": {
"alias": "Minimax-nr"
}
},
"workspace": "F:\openclaw\workspace"
}
},
and i have error

[diagnostic] lane task error: API not found. btw i do have .env

#

03:00:54 [diagnostic] lane task error: lane=main durationMs=54 error="FailoverError: No API key found for provider "minimax-nr". Auth store: C:\Users\Wapapapow.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\Wapapapow.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
03:00:54 [diagnostic] lane task error: lane=session:agent:main:main durationMs=65 error="FailoverError: No API key found for provider "minimax-nr". Auth store: C:\Users\Wapapapow.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\Wapapapow.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."

I addeed auth-profiles.json
"minimax:default": {
"type": "api_key",
"provider": "minimax",
"key": "xxx"
},
"minimax-nr:default": {
"type": "api_key",
"provider": "minimax",
"key": "xxx"
}

graceful gateBOT
#

That config shape is fine for “two M2.5s”, but your minimax-nr provider has no auth right now, and MiniMax often returns API not found when you hit the endpoint without valid credentials / wrong endpoint.

Fix 1: give minimax-nr an apiKey (don’t rely on auto-env for custom provider ids)

OpenClaw only auto-maps MINIMAX_API_KEY for the built-in provider id minimax. For minimax-nr you need to set it explicitly:

models: {
  mode: "merge",
  providers: {
    minimax: {
      baseUrl: "https://api.minimax.io/anthropic",
      api: "anthropic-messages",
      apiKey: "${MINIMAX_API_KEY}", // recommended: make it explicit too
      models: [
        { id: "MiniMax-M2.5", name: "MiniMax M2.5", reasoning: true, input: ["text"],
          cost: { input: 15, output: 60, cacheRead: 2, cacheWrite: 10 }, contextWindow: 200000, maxTokens: 8192 },
#
      ],
    },

    "minimax-nr": {
      baseUrl: "https://api.minimax.io/anthropic",
      api: "anthropic-messages",
      apiKey: "${MINIMAX_API_KEY}", // <-- this is the important bit
      models: [
        { id: "MiniMax-M2.5", name: "MiniMax M2.5 (nr)", reasoning: false, input: ["text"],
          cost: { input: 15, output: 60, cacheRead: 2, cacheWrite: 10 }, contextWindow: 200000, maxTokens: 8192 },
      ],
    },
  },
}
#

Fix 2: make sure your .env is actually being loaded (Windows gotcha)

OpenClaw loads env from:

  1. process env
  2. CWD .env
  3. ~/.openclaw/.env (Windows: C:\Users\<you>\.openclaw\.env)
  4. config env block

So if your .env is sitting in F:\openclaw\workspace\.env, the Gateway service often won’t see it.

Docs: https://docs.openclaw.ai/help/environment

Quick sanity checks

  1. What version? (matters a lot for MiniMax provider behavior)
openclaw --version
#
  1. See whether both providers have auth:
openclaw models status --probe

If you paste that output (it redacts secrets), I can tell you exactly whether it’s missing MINIMAX_API_KEY, or you’re on the wrong endpoint (api.minimax.io vs api.minimaxi.com).

#

That error is exactly because your auth profile says the credential is for provider minimax, but your model is running under provider minimax-nr.

Auth profiles are matched by credential.provider (normalized), so minimax-nr will never pick up a profile whose provider is minimax.

Fix your auth-profiles.json so the second one uses provider: "minimax-nr" (and make sure it’s under the profiles object):

{
  "version": 1,
  "profiles": {
    "minimax:default": {
      "type": "api_key",
      "provider": "minimax",
      "key": "xxx"
    },
    "minimax-nr:default": {
#
      "type": "api_key",
      "provider": "minimax-nr",
      "key": "xxx"
    }
  }
}

Then restart the gateway.

Sanity check after restart:

openclaw models status --probe
#

Alternative (no auth-profiles editing): set models.providers["minimax-nr"].apiKey: "${MINIMAX_API_KEY}" in openclaw.json (but then you must ensure MINIMAX_API_KEY is available to the Gateway process).

cerulean anvil
#

I see the issue:

[minimax-nr] endpoint: https://api.minimax.io/anthropic api: anthropic-messages auth: missing
• minimax-nr/MiniMax-M2.5 (Minimax-nr)

the
"models": {
"mode": "merge",
"providers": {
must be minimax too

graceful gateBOT
#

No — the models.providers key does not have to be "minimax". It can be any provider id ("minimax-nr" is fine).

What matters is: the provider id must match everywhere auth is resolved.

Right now your status says:

[minimax-nr] … auth: missing

That means OpenClaw can’t find credentials for provider minimax-nr via any of these sources:

  • auth-profiles.json profiles where credential.provider === "minimax-nr"
  • env var mapping (only works automatically for some built-in provider ids)
  • models.providers["minimax-nr"].apiKey

The easiest fix (recommended)

Put an explicit apiKey on the minimax-nr provider (and optionally on minimax too):

#
models: {
  mode: "merge",
  providers: {
    minimax: {
      baseUrl: "https://api.minimax.io/anthropic",
      api: "anthropic-messages",
      apiKey: "${MINIMAX_API_KEY}",
      models: [ /* … */ ]
    },
    "minimax-nr": {
      baseUrl: "https://api.minimax.io/anthropic",
      api: "anthropic-messages",
      apiKey: "${MINIMAX_API_KEY}",  // <- this is the key part
      models: [ /* … */ ]
    }
#
  }
}

Then ensure MINIMAX_API_KEY is available to the Gateway process (Windows service often won’t read a random .env in your workspace). Best place:

  • C:\\Users\\<you>\\.openclaw\\.env

Docs: https://docs.openclaw.ai/help/environment

Restart the gateway, then:

openclaw models status --probe

If you want to use auth-profiles.json instead

Make sure BOTH are true: