MiniMax M3.1 Flash ha cinque livelli di ragionamento e non offre un interruttore per disattivarlo. Se non scegli un livello, lo sceglie il modello al posto tuo, selezionando quello più profondo. La guida di MiniMax alla generazione di testo afferma che l’effort «è impostato su max se il parametro viene omesso».
Questo valore predefinito è costoso in un modo facile da non notare. AIHubMix ha eseguito la stessa correzione di due bug a ogni livello. Il valore predefinito ha usato circa 10× i token di ragionamento di low e ha richiesto circa 6× più tempo, e tutte le esecuzioni a ogni livello hanno superato tutti i 215 test. Il costo di ragionamento del modello è aumentato con il livello di effort, mentre la difficoltà dell’attività è rimasta la stessa.
In breve: inizia da low, passa a un livello superiore solo se un’attività fallisce o richiede nuovi tentativi e non lasciare mai il campo vuoto.
Cinque livelli, nessun interruttore per disattivarlo
| Protocollo | Campo | Valori | Valore predefinito |
|---|---|---|---|
| OpenAI Chat Completions | reasoning_effort | low, medium, high, xhigh, max | max |
| Anthropic Messages | output_config.effort | low, medium, high, xhigh, max | max |
| OpenAI Responses | reasoning.effort | low, medium, high, xhigh, max | max |
Non è possibile disattivare il ragionamento. Come indicato nella documentazione di riferimento dell’API Messages di MiniMax, l’API restituisce HTTP 400 per thinking: {"type": "disabled"} e per l’effort none, con il messaggio model "MiniMax-M3.1-Flash" requires adaptive thinking. I modelli MiniMax più vecchi ignorano del tutto il campo effort. Finora M3.1 Flash è l’unico modello MiniMax su cui ha effetto.
Tutti e tre i protocolli sono disponibili per minimax-m3.1-flash su AIHubMix. Una differenza rispetto all’API ufficiale di MiniMax: AIHubMix ha accettato reasoning_effort: "none" e "minimal" con HTTP 200, ma il modello ha comunque ragionato. Considera questi valori come operazioni senza effetto, non come un modo per disattivare il ragionamento.
Quanto è costato ogni livello per un’attività
Il test: una funzione di fatturazione con due bug. Una pausa che si protrae oltre la fine del periodo conta due volte un giorno, mentre le pause sovrapposte vengono sottratte due volte. Il modello restituisce la funzione corretta e un harness locale la verifica con 215 casi nascosti. Ogni livello è stato eseguito tre volte tramite l’endpoint Chat Completions di AIHubMix il 19 ottobre 2026, con max_tokens impostato a 32,768. Tutti i dati sono stati misurati da AIHubMix e nessun altro li ha riprodotti.
| Effort | Media dei token di ragionamento | Intervallo (3 esecuzioni) | Tempo medio | Costo medio per correzione | Test |
|---|---|---|---|---|---|
| low | 591 | 344–812 | 9.5 s | $0.0006 | 215/215 ×3 |
| medium | 1,522 | 970–2,488 | 21.7 s | $0.0013 | 215/215 ×3 |
| high | 2,863 | 2,194–3,673 | 27.1 s | $0.0022 | 215/215 ×3 |
| xhigh | 1,949 | 1,019–2,562 | 19.2 s | $0.0015 | 215/215 ×3 |
| max | 4,699 | 2,612–6,246 | 40.4 s | $0.0034 | 215/215 ×3 |
| omesso | 6,364 | 4,284–9,376 | 56.3 s | $0.0045 | 215/215 ×3 |
I costi si basano sui prezzi di AIHubMix per minimax-m3.1-flash: $0.165 per milione di token di input, $0.66 per milione di token di output e $0.0165 per milione di token di input memorizzati nella cache. I token di ragionamento vengono fatturati come token di output. Per esempio, la riga «omesso» ha registrato in media 464 token di prompt (circa 192 memorizzati nella cache) e 6,673 token di output, per un totale di circa $0.0045 per correzione.
Cosa indicano i numeri
Per questa attività bastava low. Ogni livello ha prodotto una correzione corretta a ogni esecuzione. Per un bug circoscritto a una singola funzione, il ragionamento aggiuntivo dei livelli superiori non ha apportato benefici misurabili.
Da low a medium si nota un netto salto. In media, medium ha usato circa 2.6× i token di ragionamento di low e ha richiesto più del doppio del tempo.
Oltre medium, le differenze tra i livelli si attenuano. Le nostre esecuzioni con xhigh hanno registrato in media meno token di quelle con high, mentre max si è sovrapposto a entrambi. Tre esecuzioni per livello non bastano per distinguerli. In questa attività, «high», «xhigh» e «max» hanno tutti comportato «più ragionamento, a volte molto di più».
Se omesso, il parametro si comporta come max. È quanto indicato nella documentazione di MiniMax. La media delle nostre esecuzioni con il parametro «omesso» è risultata superiore a quella di «max», ma gli intervalli si sovrappongono e la differenza rientra nella variabilità tra un’esecuzione e l’altra.
La variabilità è elevata a ogni livello. Con lo stesso prompt, il valore predefinito ha registrato tempi compresi tra 39 e 82 secondi. Sull’endpoint Anthropic Messages, tre esecuzioni con low hanno usato 511, 1,861 e 6,060 token di ragionamento. L’ultima ha richiesto 56 secondi, quanto una tipica esecuzione con max. L’effort determina la profondità media del ragionamento, ma non ne impone un limite rigido.
La velocità è rimasta stabile, circa 112 token di output al secondo per tutte le 24 esecuzioni di Flash, quindi il tempo è aumentato quasi linearmente con i token di ragionamento. A questa velocità, ragionare su 6,000 token significa aspettare quasi un minuto.
MiniMax non ha pubblicato dati propri sul numero di token o sulla latenza per ciascun livello. Non possiamo dire, sulla base di questo singolo test, quando un’attività più difficile richieda livelli superiori. I numeri sopra mostrano solo quanto costa ogni livello quando l’attività non ne ha bisogno.
I prompt brevi richiedono pochissimo ragionamento
«Ragiona sempre» non significa «ragiona sempre a lungo». Il ragionamento è adattivo, quindi la sua profondità dipende dalla difficoltà apparente del prompt:
- Classificare cinque ticket di assistenza in una delle quattro categorie: 0 token di ragionamento con
lowe una media di 6 con il valore predefinito. Tutte le categorie erano corrette. - «Quanto fa 17 × 23?» con
low: nessun ragionamento, 2 token di output.
Quindi, l’assenza di un interruttore per disattivarlo ha un costo quasi nullo per le chiamate brevi di classificazione, estrazione e instradamento. Il costo emerge con attività aperte come la programmazione: più a fondo lasci ragionare il modello, più elementi trova su cui riflettere.
Da dove iniziare
Questi sono punti di partenza. Solo le prime due righe sono state misurate direttamente; il resto sono nostre raccomandazioni, da verificare in base ai tentativi ripetuti nel tuo caso:
| Carico di lavoro | Inizia da | Passa a un livello superiore quando |
|---|---|---|
| Classificazione, estrazione, instradamento | low | Le categorie sono errate nei casi difficili |
| Correzioni a una singola funzione, revisioni brevi | low | Una correzione fallisce i test due volte |
| Modifiche su più file, refactoring | medium | L’agente non individua un file dipendente |
| Cicli dell’agente con molte chiamate agli strumenti | low o medium | I passaggi si ripetono o si bloccano |
| Debugging difficile, domande di progettazione | high | Le risposte restano superficiali |
| Chat interattiva con una persona in attesa | low | In questo caso, non usare mai max come valore predefinito |
Usa max solo se hai già visto high fallire con quel tipo di attività.
Cosa si rompe o diventa costoso quando cambia l’effort
- Risposte troncate. Il ragionamento viene conteggiato in
max_tokens. In una singola esecuzione con il valore predefinito, il modello ha usato 9,376 token di ragionamento su una sola funzione; quindi, un limite di 4K o 8K impostato per le risposte di M2.x può troncare la risposta, confinish_reason: "length". MiniMax consiglia 131,072 e consente 524,288. - Timeout. Con high e livelli superiori, una singola chiamata può durare un minuto. I timeout del client e del proxy, configurati per un modello veloce, vanno portati ad almeno 120 secondi.
- Valori che non producono alcun effetto senza segnalarlo. Tramite AIHubMix,
none,minimale un valore sconosciuto comeautosono stati tutti accettati, ma il modello ha comunque ragionato. Stando ai test di un progetto gateway, gli endpoint ufficiali di MiniMax rifiutano i valori sconosciuti (issue #8025 di sub2api). Usa uno dei cinque valori documentati. - Strumenti che non espongono i livelli. Al momento, OpenCode non seleziona alcuna variante di effort per questo modello, e alcuni framework inviano «thinking disabled», provocando l’errore 400. Controlla cosa invia effettivamente il tuo strumento.
- Modelli diversi nella stessa pipeline. M3 e M2.x ignorano il campo effort. Se instradi le richieste tra modelli, un livello di effort che riduce i costi su Flash non ha alcun effetto sugli altri.
Come impostarlo per ciascun protocollo
Tutti e tre i protocolli sono disponibili tramite AIHubMix con un’unica chiave. La guida introduttiva spiega come ottenere le chiavi, mentre la pagina sui parametri di ragionamento unificati illustra come AIHubMix gestisce i campi di ragionamento tra i vari fornitori.
Chat Completions:
curl https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "minimax-m3.1-flash",
"reasoning_effort": "low",
"max_tokens": 32768,
"messages": [{"role": "user", "content": "Write a function that merges overlapping date ranges."}]}'
Anthropic Messages (SDK Python; se la tua versione dell’SDK non riconosce il campo, inserisci output_config in extra_body):
import os
import anthropic
client = anthropic.Anthropic(base_url="https://aihubmix.com", api_key=os.environ["AIHUBMIX_API_KEY"])
msg = client.messages.create(
model="minimax-m3.1-flash",
max_tokens=32768,
messages=[{"role": "user", "content": "Write a function that merges overlapping date ranges."}],
extra_body={"output_config": {"effort": "medium"}},
)
print(msg.usage)
Responses:
import os
from openai import OpenAI
client = OpenAI(base_url="https://aihubmix.com/v1", api_key=os.environ["AIHUBMIX_API_KEY"])
resp = client.responses.create(
model="minimax-m3.1-flash",
reasoning={"effort": "low"},
max_output_tokens=32768,
input="Write a function that merges overlapping date ranges.",
)
print(resp.usage)
Controlla usage per le prime chiamate. Chat Completions riporta il ragionamento in completion_tokens_details.reasoning_tokens, Messages in output_tokens_details.thinking_tokens e Responses in output_tokens_details.reasoning_tokens. Se questi numeri non cambiano quando modifichi il livello, l’impostazione non sta raggiungendo il modello.
Domande frequenti
Qual è il livello di effort predefinito di MiniMax M3.1 Flash?
Max. Se la richiesta non include il campo effort, il modello ragiona al livello più profondo.
Posso disattivare completamente il ragionamento?
No. Disattivare il ragionamento restituisce HTTP 400 sull’API di MiniMax. Il livello più basso è low e, con prompt brevi, low spesso non usa alcun token di ragionamento.
Quale livello di effort dovrei usare per programmare?
Inizia con low per correzioni a una singola funzione e revisioni brevi, con medium per modifiche su più file, e passa a un livello superiore solo quando un’attività fallisce. Nel nostro test, low ha corretto una funzione con due bug in modo corretto a ogni esecuzione.
Il livello di effort max è più preciso?
Non nell’attività del nostro test: tutti i livelli hanno superato tutti i 215 test. Max ha richiesto molti più token e più tempo. I livelli superiori potrebbero aiutare con attività più difficili, ma nessuno ha pubblicato dati che mostrino in quali casi.
Perché la stessa richiesta una volta ha richiesto 10 secondi e la volta successiva 56 secondi?
La profondità del ragionamento varia da un’esecuzione all’altra anche a parità di livello. Un’esecuzione con low sull’endpoint Messages ha usato circa dieci volte i token di ragionamento di un’altra.
reasoning_effort none funziona tramite AIHubMix?
Viene accettato senza errori, ma il modello continua a ragionare. Usa invece low.
Come faccio a vedere quanti token di ragionamento ha usato una chiamata?
Controlla l’oggetto usage: reasoning_tokens in Chat Completions e Responses, thinking_tokens nell’API Messages.
Continua a leggere: la serie MiniMax M3.1 Flash
- Per avere un quadro più ampio di questa impostazione, dal lancio di Space Bunny ai prezzi rispetto a M2.7 e M3: MiniMax M3.1 Flash è Space Bunny: cosa è cambiato rispetto a M2.7 e M3 e quanto costa
- L’effort è una delle varie cose che cambiano quando si passa da M2.5/M2.7. Questo articolo tratta gli errori 400 e il resto: Abbandonare MiniMax M2.5/M2.7 prima del 18 nov: come correggere l’errore 400 «requires adaptive thinking» di M3.1 Flash
- Con effort low, Flash è stato il più economico dei tre modelli per la stessa correzione. Ecco come il valore predefinito si confronta con quelli di DeepSeek e Haiku: MiniMax M3.1 Flash vs DeepSeek V4.1 Flash vs Claude Haiku 5.5: una correzione di bug, tre fatture



