Skip to content

Commit f7f4e64

Browse files
Mithilesh Gauriharclaude
authored andcommitted
feat(llm_minimax): add MiniMax M3 model profile
Add the `MiniMax-M3` cloud profile to the llm_minimax node - MiniMax's frontier multimodal coding model with a 1M-token context window and 128K recommended output. Surfaces automatically in the canvas profile selector via the existing dynamic field/conditional plumbing. Discovered and written by `tools/src/sync_models.py` against the live `https://api.minimax.io/v1/models` endpoint. Two override blocks in `tools/src/sync_models.config.json` lock the docs-correct values so discovery noise (OpenRouter/LiteLLM disagree with MiniMax's own docs) doesn't silently shift them: - `token_limit_overrides`: 1M for M3, 200K for every M2.x model - `model_output_tokens.overrides`: 128K for M3, 64K for M2.x (per MiniMax's `text-chat-openai` API reference) The 64K M2.x output upgrade (was 8192) is a real behavior change. Profile `modelSource` flips manual->provider for the M2.x family - sync has now confirmed those IDs via the native API. Closes #1045 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent e033856 commit f7f4e64

3 files changed

Lines changed: 157 additions & 70 deletions

File tree

nodes/src/nodes/llm_minimax/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ The MiniMax API is OpenAI-compatible, so this node uses the OpenAI SDK / `langch
3434

3535
| Profile | Model | Context |
3636
| ---------------------- | ------------------------- | ----------- |
37+
| MiniMax M3 | `MiniMax-M3` | 1M tokens |
3738
| MiniMax M2 _(default)_ | `MiniMax-M2` | 200K tokens |
3839
| MiniMax M2.1 | `MiniMax-M2.1` | 200K tokens |
3940
| MiniMax M2.1 Highspeed | `MiniMax-M2.1-highspeed` | 200K tokens |
@@ -43,7 +44,7 @@ The MiniMax API is OpenAI-compatible, so this node uses the OpenAI SDK / `langch
4344
| MiniMax M2.7 Highspeed | `MiniMax-M2.7-highspeed` | 200K tokens |
4445
| Custom Model | User-defined | User-defined |
4546

46-
The cloud catalogue above is what `models.list()` returns as of 2026-05-21. The `-highspeed` variants are MiniMax's faster/cheaper tier of the same generation.
47+
The cloud catalogue above is what `models.list()` returns as of 2026-05-29. The `-highspeed` variants are MiniMax's faster/cheaper tier of the same generation. **MiniMax M3** is MiniMax's frontier multimodal coding model — 5× the M2-family context (1M tokens) and a 128K-token recommended output limit (max 512K). M3 is multimodal at the API level (text + image + video), though the `llm_minimax` node only exposes the text path.
4748

4849
**Local deploy**
4950

nodes/src/nodes/llm_minimax/services.json

Lines changed: 129 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -91,103 +91,98 @@
9191
"minimax-m2": {
9292
"title": "MiniMax M2",
9393
"model": "MiniMax-M2",
94-
"modelSource": "manual",
95-
"modelTotalTokens": 204800,
96-
"modelOutputTokens": 8192,
94+
"modelSource": "provider",
95+
"modelTotalTokens": 204800, // sync_models.config.json
96+
"modelOutputTokens": 65536, // sync_models.config.json
9797
"serverbase": "https://api.minimax.io/v1",
9898
"apikey": ""
9999
},
100100
"minimax-m2-1": {
101101
"title": "MiniMax M2.1",
102102
"model": "MiniMax-M2.1",
103-
"modelSource": "manual",
104-
"modelTotalTokens": 204800,
105-
"modelOutputTokens": 8192,
103+
"modelSource": "provider",
104+
"modelTotalTokens": 204800, // sync_models.config.json
105+
"modelOutputTokens": 65536, // sync_models.config.json
106106
"serverbase": "https://api.minimax.io/v1",
107107
"apikey": ""
108108
},
109109
"minimax-m2-1-highspeed": {
110110
"title": "MiniMax M2.1 Highspeed",
111111
"model": "MiniMax-M2.1-highspeed",
112-
"modelSource": "manual",
113-
"modelTotalTokens": 204800,
114-
"modelOutputTokens": 8192,
112+
"modelSource": "provider",
113+
"modelTotalTokens": 204800, // sync_models.config.json
114+
"modelOutputTokens": 65536, // sync_models.config.json
115115
"serverbase": "https://api.minimax.io/v1",
116116
"apikey": ""
117117
},
118118
"minimax-m2-5": {
119119
"title": "MiniMax M2.5",
120120
"model": "MiniMax-M2.5",
121-
"modelSource": "manual",
122-
"modelTotalTokens": 204800,
123-
"modelOutputTokens": 8192,
121+
"modelSource": "provider",
122+
"modelTotalTokens": 204800, // sync_models.config.json
123+
"modelOutputTokens": 65536, // sync_models.config.json
124124
"serverbase": "https://api.minimax.io/v1",
125125
"apikey": ""
126126
},
127127
"minimax-m2-5-highspeed": {
128128
"title": "MiniMax M2.5 Highspeed",
129129
"model": "MiniMax-M2.5-highspeed",
130-
"modelSource": "manual",
131-
"modelTotalTokens": 204800,
132-
"modelOutputTokens": 8192,
130+
"modelSource": "provider",
131+
"modelTotalTokens": 204800, // sync_models.config.json
132+
"modelOutputTokens": 65536, // sync_models.config.json
133133
"serverbase": "https://api.minimax.io/v1",
134134
"apikey": ""
135135
},
136136
"minimax-m2-7": {
137137
"title": "MiniMax M2.7",
138138
"model": "MiniMax-M2.7",
139-
"modelSource": "manual",
140-
"modelTotalTokens": 204800,
141-
"modelOutputTokens": 8192,
139+
"modelSource": "provider",
140+
"modelTotalTokens": 204800, // sync_models.config.json
141+
"modelOutputTokens": 65536, // sync_models.config.json
142142
"serverbase": "https://api.minimax.io/v1",
143143
"apikey": ""
144144
},
145145
"minimax-m2-7-highspeed": {
146146
"title": "MiniMax M2.7 Highspeed",
147147
"model": "MiniMax-M2.7-highspeed",
148-
"modelSource": "manual",
149-
"modelTotalTokens": 204800,
150-
"modelOutputTokens": 8192,
148+
"modelSource": "provider",
149+
"modelTotalTokens": 204800, // sync_models.config.json
150+
"modelOutputTokens": 65536, // sync_models.config.json
151151
"serverbase": "https://api.minimax.io/v1",
152152
"apikey": ""
153153
},
154-
// Local-deploy profiles. Defaults target vLLM / SGLang on port 8000 with the
155-
// HuggingFace model path (MiniMaxAI/MiniMax-M2.X) — that's the path MiniMax
156-
// itself documents at platform.minimax.io/docs/guides/local-deploy.
157-
//
158-
// MiniMax open-weight models are MIT-licensed but very large (M2 = 230B MoE /
159-
// 10B active; M2.5 / M2.7 likewise) and need ≥96 GB unified memory or a
160-
// multi-GPU server. M2.7 is the only variant whose local-deploy steps are
161-
// formally documented today; M2 / M2.5 entries here are scaffolded against
162-
// the same HF naming so they work as soon as their guides land.
163-
//
164-
// To use Ollama instead: edit serverbase to http://localhost:11434/v1 and set
165-
// `model` to the Ollama tag you pulled. To use MLX on Apple Silicon: set
166-
// serverbase to http://localhost:8080/v1 and model to e.g.
167-
// mlx-community/MiniMax-M2.7-4bit.
168154
"minimax-m2-local": {
169155
"title": "MiniMax M2 (Local)",
170156
"model": "MiniMaxAI/MiniMax-M2",
171157
"modelSource": "manual",
172-
"modelTotalTokens": 204800,
173-
"modelOutputTokens": 8192,
158+
"modelTotalTokens": 204800, // manual
159+
"modelOutputTokens": 8192, // manual
174160
"serverbase": "http://localhost:8000/v1"
175161
},
176162
"minimax-m2-5-local": {
177163
"title": "MiniMax M2.5 (Local)",
178164
"model": "MiniMaxAI/MiniMax-M2.5",
179165
"modelSource": "manual",
180-
"modelTotalTokens": 204800,
181-
"modelOutputTokens": 8192,
166+
"modelTotalTokens": 204800, // manual
167+
"modelOutputTokens": 8192, // manual
182168
"serverbase": "http://localhost:8000/v1"
183169
},
184170
"minimax-m2-7-local": {
185171
"title": "MiniMax M2.7 (Local)",
186172
"model": "MiniMaxAI/MiniMax-M2.7",
187173
"modelSource": "manual",
188-
"modelTotalTokens": 204800,
189-
"modelOutputTokens": 8192,
174+
"modelTotalTokens": 204800, // manual
175+
"modelOutputTokens": 8192, // manual
190176
"serverbase": "http://localhost:8000/v1"
177+
},
178+
"minimax-m3": {
179+
"title": "MiniMax M3",
180+
"model": "MiniMax-M3",
181+
"modelSource": "provider",
182+
"modelTotalTokens": 1000000, // sync_models.config.json
183+
"modelOutputTokens": 131072, // sync_models.config.json
184+
"serverbase": "https://api.minimax.io/v1",
185+
"apikey": ""
191186
}
192187
}
193188
},
@@ -216,100 +211,170 @@
216211
},
217212
"minimax.custom": {
218213
"object": "custom",
219-
"properties": ["model", "modelTotalTokens", "minimax.serverbase", "llm.cloud.apikey", "llm.cloud.modelSource"]
214+
"properties": [
215+
"model",
216+
"modelTotalTokens",
217+
"minimax.serverbase",
218+
"llm.cloud.apikey",
219+
"llm.cloud.modelSource"
220+
]
220221
},
221222
"minimax.minimax-m2": {
222223
"object": "minimax-m2",
223-
"properties": ["llm.cloud.apikey", "llm.cloud.modelSource"]
224+
"properties": [
225+
"llm.cloud.apikey",
226+
"llm.cloud.modelSource"
227+
]
224228
},
225229
"minimax.minimax-m2-1": {
226230
"object": "minimax-m2-1",
227-
"properties": ["llm.cloud.apikey", "llm.cloud.modelSource"]
231+
"properties": [
232+
"llm.cloud.apikey",
233+
"llm.cloud.modelSource"
234+
]
228235
},
229236
"minimax.minimax-m2-1-highspeed": {
230237
"object": "minimax-m2-1-highspeed",
231-
"properties": ["llm.cloud.apikey", "llm.cloud.modelSource"]
238+
"properties": [
239+
"llm.cloud.apikey",
240+
"llm.cloud.modelSource"
241+
]
232242
},
233243
"minimax.minimax-m2-5": {
234244
"object": "minimax-m2-5",
235-
"properties": ["llm.cloud.apikey", "llm.cloud.modelSource"]
245+
"properties": [
246+
"llm.cloud.apikey",
247+
"llm.cloud.modelSource"
248+
]
236249
},
237250
"minimax.minimax-m2-5-highspeed": {
238251
"object": "minimax-m2-5-highspeed",
239-
"properties": ["llm.cloud.apikey", "llm.cloud.modelSource"]
252+
"properties": [
253+
"llm.cloud.apikey",
254+
"llm.cloud.modelSource"
255+
]
240256
},
241257
"minimax.minimax-m2-7": {
242258
"object": "minimax-m2-7",
243-
"properties": ["llm.cloud.apikey", "llm.cloud.modelSource"]
259+
"properties": [
260+
"llm.cloud.apikey",
261+
"llm.cloud.modelSource"
262+
]
244263
},
245264
"minimax.minimax-m2-7-highspeed": {
246265
"object": "minimax-m2-7-highspeed",
247-
"properties": ["llm.cloud.apikey", "llm.cloud.modelSource"]
266+
"properties": [
267+
"llm.cloud.apikey",
268+
"llm.cloud.modelSource"
269+
]
248270
},
249271
"minimax.minimax-m2-local": {
250272
"object": "minimax-m2-local",
251-
"properties": ["llm.local.serverbase"]
273+
"properties": [
274+
"llm.local.serverbase"
275+
]
252276
},
253277
"minimax.minimax-m2-5-local": {
254278
"object": "minimax-m2-5-local",
255-
"properties": ["llm.local.serverbase"]
279+
"properties": [
280+
"llm.local.serverbase"
281+
]
256282
},
257283
"minimax.minimax-m2-7-local": {
258284
"object": "minimax-m2-7-local",
259-
"properties": ["llm.local.serverbase"]
285+
"properties": [
286+
"llm.local.serverbase"
287+
]
260288
},
261289
"minimax.profile": {
262290
"title": "Model",
263291
"description": "MiniMax LLM model",
264292
"type": "string",
265293
"default": "minimax-m2",
266-
"enum": ["*>preconfig.profiles.*.title"],
294+
"enum": [
295+
"*>preconfig.profiles.*.title"
296+
],
267297
"conditional": [
268298
{
269299
"value": "custom",
270-
"properties": ["minimax.custom"]
300+
"properties": [
301+
"minimax.custom"
302+
]
271303
},
272304
{
273305
"value": "minimax-m2",
274-
"properties": ["minimax.minimax-m2"]
306+
"properties": [
307+
"minimax.minimax-m2"
308+
]
275309
},
276310
{
277311
"value": "minimax-m2-1",
278-
"properties": ["minimax.minimax-m2-1"]
312+
"properties": [
313+
"minimax.minimax-m2-1"
314+
]
279315
},
280316
{
281317
"value": "minimax-m2-1-highspeed",
282-
"properties": ["minimax.minimax-m2-1-highspeed"]
318+
"properties": [
319+
"minimax.minimax-m2-1-highspeed"
320+
]
283321
},
284322
{
285323
"value": "minimax-m2-5",
286-
"properties": ["minimax.minimax-m2-5"]
324+
"properties": [
325+
"minimax.minimax-m2-5"
326+
]
287327
},
288328
{
289329
"value": "minimax-m2-5-highspeed",
290-
"properties": ["minimax.minimax-m2-5-highspeed"]
330+
"properties": [
331+
"minimax.minimax-m2-5-highspeed"
332+
]
291333
},
292334
{
293335
"value": "minimax-m2-7",
294-
"properties": ["minimax.minimax-m2-7"]
336+
"properties": [
337+
"minimax.minimax-m2-7"
338+
]
295339
},
296340
{
297341
"value": "minimax-m2-7-highspeed",
298-
"properties": ["minimax.minimax-m2-7-highspeed"]
342+
"properties": [
343+
"minimax.minimax-m2-7-highspeed"
344+
]
299345
},
300346
{
301347
"value": "minimax-m2-local",
302-
"properties": ["minimax.minimax-m2-local"]
348+
"properties": [
349+
"minimax.minimax-m2-local"
350+
]
303351
},
304352
{
305353
"value": "minimax-m2-5-local",
306-
"properties": ["minimax.minimax-m2-5-local"]
354+
"properties": [
355+
"minimax.minimax-m2-5-local"
356+
]
307357
},
308358
{
309359
"value": "minimax-m2-7-local",
310-
"properties": ["minimax.minimax-m2-7-local"]
360+
"properties": [
361+
"minimax.minimax-m2-7-local"
362+
]
363+
},
364+
{
365+
"value": "minimax-m3",
366+
"properties": [
367+
"minimax.minimax-m3"
368+
]
311369
}
312370
]
371+
},
372+
"minimax.minimax-m3": {
373+
"object": "minimax-m3",
374+
"properties": [
375+
"llm.cloud.apikey",
376+
"llm.cloud.modelSource"
377+
]
313378
}
314379
},
315380
//

tools/src/sync_models.config.json

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -422,13 +422,23 @@
422422
["minimax-m2-5", "2026-10-09"],
423423
["minimax-m2-5-highspeed", "2026-10-09"],
424424
["minimax-m2-7", "2026-10-09"],
425-
["minimax-m2-7-highspeed", "2026-10-09"]
425+
["minimax-m2-7-highspeed", "2026-10-09"],
426+
["minimax-m3", "2026-10-09"]
426427
],
427428
"token_limit_overrides": {
428-
// "MiniMax-M2": 204800,
429-
// "MiniMax-M2.1": 204800,
430-
// "MiniMax-M2.5": 204800,
431-
// "MiniMax-M2.7": 204800
429+
// MiniMax's /v1/models endpoint doesn't return context_window. Lock every
430+
// MiniMax model at its docs-stated context window so discovery (which can
431+
// otherwise pull stale or wrong numbers from OpenRouter/LiteLLM) never
432+
// silently shifts these values.
433+
// https://platform.minimax.io/docs/api-reference/text-chat-openai.md
434+
"MiniMax-M3": 1000000,
435+
"MiniMax-M2": 204800,
436+
"MiniMax-M2.1": 204800,
437+
"MiniMax-M2.1-highspeed": 204800,
438+
"MiniMax-M2.5": 204800,
439+
"MiniMax-M2.5-highspeed": 204800,
440+
"MiniMax-M2.7": 204800,
441+
"MiniMax-M2.7-highspeed": 204800
432442
}
433443
}
434444
},
@@ -497,6 +507,17 @@
497507
"embed": 0 // embedding models have no output tokens
498508
},
499509
"overrides": {
510+
// MiniMax — see https://platform.minimax.io/docs/api-reference/text-chat-openai.md
511+
// "For MiniMax-M3 the recommended value is 131072 (128K); for other models the
512+
// recommended value is 65536 (64K)."
513+
"MiniMax-M3": 131072,
514+
"MiniMax-M2": 65536,
515+
"MiniMax-M2.1": 65536,
516+
"MiniMax-M2.1-highspeed": 65536,
517+
"MiniMax-M2.5": 65536,
518+
"MiniMax-M2.5-highspeed": 65536,
519+
"MiniMax-M2.7": 65536,
520+
"MiniMax-M2.7-highspeed": 65536,
500521
// // Anthropic — see comment block above for source
501522
// "claude-opus-4-6": 131072,
502523
// "claude-sonnet-4-6": 65536,

0 commit comments

Comments
 (0)