MiniMax dismetterà M2.5 e M2.7 il 18 novembre 2026 e la migrazione è già iniziata. Dal 19 ottobre, le due famiglie precedenti non sono più disponibili per i nuovi utenti e le richieste dei piani che le indicano vengono servite da M3.1 Flash. Se usi il servizio a consumo, hai quattro settimane per modificare manualmente l’ID del modello.
La maggior parte del codice per M2.7 funziona invariata su M3.1 Flash. Il problema deriva da una scelta di progettazione: M3.1 Flash ragiona sempre e, se non specifichi diversamente, lo fa al livello più profondo. Questo provoca un errore evidente, alcuni aumenti di costo meno visibili e un paio di impostazioni che ormai non hanno più effetto.
AIHubMix ha inviato tramite il proprio gateway tutte le richieste di questo post il 19 ottobre 2026, usando minimax-m3.1-flash. I testi degli errori sono riportati direttamente dalle risposte. Le regole di MiniMax sono citate dalla documentazione della sua API.
Chi è interessato e in che modo
| Usi M2.5/M2.7 tramite | Cosa succede | Scadenza |
|---|---|---|
| Piano M / Token Plan di MiniMax | Le richieste vengono servite da M3.1 Flash con il vecchio nome | È già successo (19 ottobre) |
| MiniMax a consumo | I vecchi ID continuano a funzionare, poi smettono | 18 novembre 2026 |
| Nuovo account MiniMax | M2.5/M2.7 non disponibili | 19 ottobre 2026 |
La pagina dei modelli di MiniMax spiega così il cambiamento per gli utenti dei piani: «tutte le richieste ai modelli M2.5 e M2.7 nell’ambito di questi piani verranno automaticamente indirizzate a M3.1 Flash Preview» e «i nomi dei modelli esistenti continueranno a funzionare». Per gli utenti a consumo: «Una volta dismessi, le richieste API a questi modelli non funzioneranno più». L’avviso non menziona alcun reindirizzamento automatico per gli utenti a consumo: aspettati quindi degli errori, non un modello alternativo.
Gli utenti dei piani dovrebbero tenere presente cosa significa «indirizzate». Nei log compare ancora M2.7, ma i pesi sono diversi, il contesto è 5× più ampio e la profondità di ragionamento predefinita è max. Consideralo un cambio di modello e ripeti le valutazioni.
Cosa genera errori evidenti
400: «requires adaptive thinking»
Cosa vedrai. Una richiesta che disattiva il ragionamento viene rifiutata:
{"error": {"message": "invalid params, model \"MiniMax-M3.1-Flash\" requires adaptive thinking; thinking.type=\"disabled\" (including reasoning.effort=none) is not allowed (2013) (tid: …)", "type": "bad_request_error", "param": "", "code": null}}
Perché. La documentazione di riferimento dell’API Messages di MiniMax specifica che il modello «ragiona sempre»: se viene inviato thinking.type, deve essere adaptive, mentre disabled restituisce HTTP 400. Può succedere anche con codice scritto per M3, perché M3 consente di disattivare il ragionamento. I framework che indicano il modello come non abilitato al ragionamento e inviano «thinking off» per impostazione predefinita riscontrano l’errore a ogni chiamata; i progetti kodus-ai e 9router-go hanno entrambi segnalato casi simili.
Richiesta minima che provoca l’errore (Chat Completions su AIHubMix):
curl https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "minimax-m3.1-flash",
"messages": [{"role": "user", "content": "hi"}],
"thinking": {"type": "disabled"}}'
Soluzione. Elimina il campo thinking oppure impostalo su {"type": "adaptive"}. Se disattivavi il ragionamento per risparmiare tempo, usa invece "reasoning_effort": "low".
400 con lo stesso codice 2013 per gli URL delle immagini
Cosa vedrai. invalid param: remote returned status 400 (2013). Abbiamo ricevuto questo errore con un URL di un’immagine ospitata su upload.wikimedia.org. La stessa richiesta, con un’immagine codificata in base64 o con un URL da un altro host, ha restituito 200.
Perché. Il codice 2013 è il codice generico di MiniMax per «parametri non validi», non un codice specifico per il ragionamento. In questo caso, a quanto pare il sistema a monte non è riuscito a recuperare l’immagine remota. Questa è la nostra interpretazione del messaggio; MiniMax non documenta questo caso.
Soluzione. Invia le immagini in base64 (data:image/png;base64,…) oppure ospitale su un server che risponda a normali richieste HTTP. Quando cerchi il codice 2013 nei log, leggi il messaggio completo prima di presumere che si tratti dell’errore relativo al ragionamento.
Dopo il 18 novembre: ID dei modelli dismessi
Le chiamate a consumo all’API di MiniMax con MiniMax-M2.5, MiniMax-M2.5-highspeed, MiniMax-M2.7 e MiniMax-M2.7-highspeed smetteranno di funzionare in quella data. L’avviso non riguarda M2.1 e M2. Modifica l’ID del modello prima di allora. Su AIHubMix il nuovo ID è minimax-m3.1-flash.
Cosa non genera errori evidenti
Queste richieste restituiscono tutte 200. Le differenze si notano in fattura, nella latenza o nell’output.
1. Le opzioni «ragionamento disattivato» che ora non fanno nulla
Tramite AIHubMix, tre modi per chiedere di non eseguire il ragionamento vengono accettati senza errori, ma il modello ragiona comunque:
| Richiesta | Risultato su AIHubMix |
|---|---|
| API Messages, ragionamento disattivato | 200; 469–622 token di ragionamento per un breve rompicapo |
| Chat, reasoning_effort none | 200; 265–372 token di ragionamento per lo stesso rompicapo |
| Chat, reasoning_effort minimal | 200; il modello ragiona comunque |
Le prime due righe riportano tre esecuzioni ciascuna dello stesso rompicapo di logica con tre scatole; con low sono stati usati 173–251 token di ragionamento. La verifica di minimal consisteva in un’unica esecuzione con un semplice problema di aritmetica, espresso in una riga.
Solo Chat Completions con thinking: {"type": "disabled"} genera l’errore 400 descritto sopra. Se il tuo codice per M2.x o M3 si affidava a una di queste opzioni per velocizzare le chiamate, ora il modello ragiona senza che tu te ne accorga. L’unica vera leva è il livello di impegno, il cui valore minimo è low.
2. Il livello di impegno predefinito è max
M2.7 non aveva livelli di ragionamento. M3.1 Flash ne ha cinque e, secondo la documentazione di MiniMax, se ometti il campo il valore predefinito è max. In una piccola correzione di due bug in una funzione Python, AIHubMix ha misurato:
| Impostazione | Media dei token di ragionamento | Tempo medio | Costo medio per correzione |
|---|---|---|---|
| Livello di impegno omesso | 6,364 | 56 s | $0.0045 |
| Livello di impegno low | 591 | 9.5 s | $0.0006 |
Tutte le esecuzioni con entrambe le impostazioni hanno superato tutti i 215 test nascosti. I costi si basano sulle tariffe AIHubMix di $0.165 per milione di token in input e $0.66 per milione in output, con tre esecuzioni per impostazione. Se migri senza aggiungere un livello di impegno, lo stesso lavoro richiede circa 6× il tempo. La misurazione completa per tutti e cinque i livelli è disponibile nel post dedicato al livello di impegno di questa serie.
3. Il ragionamento consuma max_tokens
I token di ragionamento vengono conteggiati in max_tokens. Il codice per M2.x spesso imposta limiti ridotti per le risposte brevi. Con max_tokens: 64 e una domanda di due frasi, il modello ha esaurito il budget ragionando, poi ha restituito finish_reason: "length" e la risposta «La luce del sole contiene molti colori», troncata a metà frase. MiniMax consiglia 131,072 e consente fino a 524,288. Aumenta i limiti ridotti oppure controlla finish_reason prima di fidarti del testo.
4. La memorizzazione nella cache e i livelli di servizio sono cambiati
cache_controlnon è supportato su M3.1 Flash (né su M3), secondo la documentazione di riferimento dell’API di MiniMax. M2.7 addebitava $0.375 per milione di scritture esplicite nella cache. Su M3.1 Flash la memorizzazione nella cache è automatica. AIHubMix addebita $0.0165 per milione di letture dalla cache e ogni richiesta che abbiamo inviato includeva circa 175–195 token del prompt serviti dalla cache, anche la prima. Sembra trattarsi di un preambolo fisso sul lato MiniMax; a questa tariffa costa circa un terzo di centesimo ogni mille richieste. Rimuovi i blocchicache_control: qui non hanno alcun effetto.service_tiernon è supportato. Se usavi il livello Priority di M3 per ridurre la latenza, su Flash non esiste un’opzione equivalente.
5. Stesso nome, sampling diverso
I valori predefiniti di MiniMax sono passati da top_p 0.9 su M2.x a 0.95 su M3.1 Flash e la finestra di contesto è aumentata da 204,800 a 1,000,000 token. I prompt ottimizzati per M2.7 potrebbero produrre output più lunghi o meno concisi. Un modello che mantiene lo stesso nome è comunque un modello nuovo: ripeti le valutazioni.
Regole di fatturazione facili da trascurare
- Il ragionamento viene fatturato come output. Su AIHubMix costa $0.66 per milione. Con il livello di impegno predefinito, nel nostro test di correzione dei bug il ragionamento costituiva il 95% dell’output (6,364 token su 6,673).
- MiniMax non ha ancora pubblicato un prezzo ufficiale per token. La sua pagina dei prezzi elenca M3 e M2.x, ma non M3.1 Flash. AIHubMix applica tariffe di $0.165 / $0.66 / $0.0165 (input / output / lettura dalla cache).
- Il prezzo ufficiale di M3 raddoppia oltre 512K token in input. AIHubMix indica un’unica tariffa per M3.1 Flash. Se invii prompt molto lunghi, confronta la prima fattura con la tua stima.
Per ridurre la fattura:
- Imposta come predefinito
reasoning_effort: "low"(Chat),output_config.effort: "low"(Messages) oreasoning.effort: "low"(Responses), aumentando il livello per ogni attività quando serve. - Metti le istruzioni stabili all’inizio del prompt, così la memorizzazione automatica nella cache può riutilizzarle.
- Imposta
max_tokenssu un valore abbastanza alto da evitare che il ragionamento tronchi la risposta: ripetere una richiesta perché la risposta è stata troncata costa più che lasciare un margine adeguato.
Agenti con permessi effettivi
Quando il modello può eseguire comandi o modificare file, sono importanti tre comportamenti:
- Ragiona sempre prima di agire, anche con
low. Questo aiuta a scegliere gli strumenti. Significa anche che ogni passaggio con uno strumento comporta latenza di ragionamento: nei nostri brevi test con strumenti, un passaggio richiedeva circa 2 to 7 secondi conlow. - Esegue alla lettera le istruzioni, senza andare oltre. Un tester iniziale lo ha definito «incredibilmente veloce, ma ha bisogno di istruzioni chiare e specifiche, altrimenti è troppo pigro». Fornisci agli agenti condizioni esplicite per fermarsi e passaggi di verifica («esegui i test e incolla l’output») invece di obiettivi vaghi.
- Ufficialmente,
tool_choicesupporta soloauto. AIHubMix ha accettato"required"(Chat) e{"type": "any"}(Messages) e il modello ha effettivamente chiamato lo strumento, ma MiniMax non documenta il supporto alla forzatura. Non basare su questo un controllo di sicurezza.
MiniMax indica di restituire invariati i blocchi di ragionamento nei turni successivi (Messages) e di mantenere intatto reasoning_content (Chat). Nel nostro test, un breve ciclo di chiamata a uno strumento ha funzionato anche rimuovendo il blocco di ragionamento, ma nei lunghi cicli degli agenti attieniti alla regola documentata.
Strumenti di programmazione
AIHubMix offre minimax-m3.1-flash su tutti e tre i protocolli richiesti dai principali strumenti di programmazione. Ognuno è stato testato il 19 ottobre con testo, una chiamata a uno strumento e il relativo scambio del risultato.
| Strumento | Protocollo richiesto | Funziona tramite AIHubMix | Campo per il livello di impegno |
|---|---|---|---|
| Claude Code | Anthropic Messages | Sì | output_config.effort |
| Codex CLI | OpenAI Responses | Sì | reasoning.effort |
| OpenCode | OpenAI-compatible | Sì | reasoning_effort |
La finestra di contesto nell’API di MiniMax è di 1,000,000. MiniMax Code imposta per impostazione predefinita il proprio client a 512K «per bilanciare l’esperienza e i costi», secondo quanto citato da un manutentore dalla documentazione di MiniMax nel progetto magpie; l’API non ha un parametro per la finestra.
Claude Code. Configuralo per usare AIHubMix seguendo la guida di AIHubMix per Claude Code e imposta il modello su minimax-m3.1-flash:
export ANTHROPIC_BASE_URL="https://aihubmix.com"
export ANTHROPIC_AUTH_TOKEN="$AIHUBMIX_API_KEY"
export ANTHROPIC_MODEL="minimax-m3.1-flash"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="minimax-m3.1-flash" # background tasks too
Le due modalità di thinking inviate dai client in stile Anthropic, enabled con un budget e adaptive, nei nostri test hanno entrambe restituito 200, quindi non riceverai l’errore 400. Problema noto: non è documentato se l’impostazione effort di Claude Code venga trasmessa a un modello non Claude come output_config.effort. In caso contrario, il modello funziona con il valore predefinito max e le interazioni saranno più lente che con M2.7. Il test rapido qui sotto mostra come verificarlo.
Codex CLI. Codex comunica tramite l’API Responses, compatibile con questo modello: le chiamate alle funzioni vengono restituite come elementi function_call. Configura un provider personalizzato come nella guida di AIHubMix a Codex, con wire_api = "responses", quindi imposta model = "minimax-m3.1-flash" e model_reasoning_effort. Sono stati accettati sia xhigh sia minimal; minimal non è uno dei livelli di MiniMax, ma il modello continua comunque a ragionare.
OpenCode. Il problema #54801 di OpenCode (riprodotto sulla v2.0.27) segnala che OpenCode non rileva alcuna variante effort per questo modello, quindi ctrl+t non fa nulla. La soluzione alternativa indicata nel problema consiste nel dichiarare manualmente le cinque varianti in opencode.json. Con il provider compatibile con OpenAI di AIHubMix, il campo della richiesta da impostare per ciascuna variante è reasoning_effort (low … max), non output_config.effort come indicato nel problema. Non aggiungere una variante none.
Un test rapido di 15 minuti per uno qualsiasi dei tre:
- Crea una cartella temporanea con una funzione che contiene un bug noto e un file di test che fallisce a causa del bug.
- Chiedi all’agente: "Esegui i test, correggi il bug, esegui di nuovo i test e mostrami l’output."
- Il test ha esito positivo se l’agente esegue i test prima e dopo la correzione, l’esecuzione finale va a buon fine, completa il lavoro in pochi turni e nessuno di questi restituisce un errore 400.
- Controlla il registro di utilizzo di AIHubMix. Dovresti vedere richieste
minimax-m3.1-flashcon token di ragionamento. Se ogni turno dura quasi un minuto, l’impostazione effort non viene trasmessa al modello, che sta funzionando amax.
Checklist di migrazione
- Sostituisci gli ID MiniMax-M2.5 / M2.7 con minimax-m3.1-flash (su AIHubMix) prima del 18 novembre.
- Rimuovi dalle richieste thinking disabled, effort none ed effort minimal.
- Aggiungi un livello effort esplicito a ogni richiesta; inizia da low.
- Aumenta max_tokens per evitare che il thinking tronchi le risposte; controlla finish_reason.
- Rimuovi i campi cache_control e service_tier.
- Invia le immagini in base64 o da un host a cui il servizio upstream possa accedere.
- Mantieni intatti i blocchi di thinking e reasoning_content nei vari turni degli strumenti.
- Ripeti le valutazioni: stesso nome, nuovo modello, nuovi valori predefiniti di campionamento.
- Negli strumenti di coding, verifica che l’impostazione effort venga trasmessa al modello (la durata dei turni è un indizio rapido).
Domande frequenti
Perché ricevo l’errore "requires adaptive thinking"?
La richiesta ha disattivato il thinking, di solito impostando il tipo di thinking su disabled nell’endpoint Chat Completions. M3.1 Flash usa sempre il thinking. Rimuovi il campo o impostalo su adaptive; se vuoi più velocità, usa effort low.
Le mie richieste M2.7 non sono cambiate, ma le risposte sì. Perché?
Se hai un piano MiniMax M Plan o Token Plan, dal 19 ottobre 2026 le richieste che specificano M2.5 o M2.7 vengono gestite da M3.1 Flash, mantenendo il nome precedente.
Qual è la scadenza per gli utenti con pagamento a consumo?
18 novembre 2026. Dopo tale data, le richieste all’API MiniMax per M2.5 e M2.7 smetteranno di funzionare.
reasoning_effort none funziona su AIHubMix?
Restituisce 200, ma il modello continua a ragionare. Il livello minimo effettivo è low.
Mi serve ancora cache_control?
No. MiniMax non lo supporta in M3.1 Flash. La memorizzazione nella cache è automatica e AIHubMix applica una tariffa di $0.0165 per milione di token agli input memorizzati nella cache.
Posso usare M3.1 Flash in Claude Code e Codex?
Sì. AIHubMix lo rende disponibile tramite l’API Anthropic Messages per Claude Code e tramite l’API Responses per Codex. Il 19 ottobre 2026, entrambi hanno superato i test di testo, chiamate agli strumenti e risultati degli strumenti.
Perché le mie risposte vengono troncate?
I token di thinking vengono conteggiati in max_tokens. Se finish_reason è length, aumenta max_tokens. MiniMax consiglia 131,072.
Continua a leggere: la serie MiniMax M3.1 Flash
- Prima di decidere se effettuare il passaggio, scopri a cosa stai passando: dal lancio di Space Bunny al confronto dei prezzi con M2.7 e M3: MiniMax M3.1 Flash è Space Bunny: cosa è cambiato rispetto a M2.7 e M3 e quanto costa
- Dopo la migrazione, l’impostazione più importante è effort. Questo articolo misura tutti e cinque i livelli su una stessa correzione di bug: Livelli effort di MiniMax M3.1 Flash: perché il valore predefinito è costato 7× rispetto a low per la stessa correzione di bug
- Se la migrazione ti porta a riconsiderare MiniMax nel complesso, ecco lo stesso compito e la stessa fattura con i due concorrenti più simili: MiniMax M3.1 Flash vs DeepSeek V4.1 Flash vs Claude Haiku 5.5: una correzione di bug, tre fatture



