MiniMax M3.1 Flash tiene cinco niveles de razonamiento y no permite desactivarlo. Si no eliges un nivel, el modelo elige el más profundo por ti. La guía de generación de texto de MiniMax indica que el esfuerzo «se establece en max si se omite».
Ese valor predeterminado resulta caro de una forma fácil de pasar por alto. AIHubMix ejecutó la misma corrección de dos errores en todos los niveles. El valor predeterminado usó unas 10× más tokens de razonamiento que low y tardó unas 6× más; además, todas las ejecuciones de todos los niveles superaron las 215 pruebas. El coste de razonamiento del modelo aumentó con el nivel de esfuerzo, mientras que la dificultad de la tarea se mantuvo igual.
La respuesta breve: empieza con low, sube de nivel solo si una tarea falla o requiere reintentos, y nunca dejes el campo vacío.
Cinco niveles, sin opción para desactivarlo
| Protocolo | Campo | Valores | Valor predeterminado |
|---|---|---|---|
| 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 |
No se puede desactivar el razonamiento. Según la referencia de la API Messages de MiniMax, la API devuelve HTTP 400 si se especifica thinking: {"type": "disabled"} o el nivel de esfuerzo none, con el mensaje model "MiniMax-M3.1-Flash" requires adaptive thinking. Los modelos anteriores de MiniMax ignoran por completo el campo de esfuerzo. Hasta ahora, M3.1 Flash es el único modelo de MiniMax en el que tiene efecto.
Los tres protocolos están disponibles para minimax-m3.1-flash en AIHubMix. Hay una diferencia con la propia API de MiniMax: AIHubMix aceptó reasoning_effort: "none" y "minimal" con HTTP 200, pero el modelo razonó igualmente. Considera esos valores como opciones sin efecto, no como una forma de desactivar el razonamiento.
Cuánto costó cada nivel en una tarea
La prueba: una función de facturación con dos errores. Una pausa que se prolonga más allá del final del periodo cuenta dos veces un día, y las pausas superpuestas se restan dos veces. El modelo devuelve la función corregida y un entorno de pruebas local la verifica con 215 casos ocultos. Cada nivel se ejecutó tres veces mediante el endpoint Chat Completions de AIHubMix el 19 October 2026, con max_tokens establecido en 32,768. AIHubMix midió todas las cifras; nadie más las ha reproducido.
| Esfuerzo | Promedio de tokens de razonamiento | Rango (3 ejecuciones) | Tiempo promedio | Coste promedio por corrección | Pruebas |
|---|---|---|---|---|---|
| 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 |
| omitido | 6,364 | 4,284–9,376 | 56.3 s | $0.0045 | 215/215 ×3 |
Los costes se calculan con los precios de AIHubMix para minimax-m3.1-flash: $0.165 por millón de tokens de entrada, $0.66 por millón de tokens de salida y $0.0165 por millón de tokens de entrada en caché. Los tokens de razonamiento se cobran como tokens de salida. Por ejemplo, la fila «omitido» promedió 464 tokens de prompt (unos 192 en caché) y 6,673 tokens de salida, lo que equivale a unos $0.0045 por corrección.
Qué indican las cifras
low bastó para esta tarea. Todos los niveles produjeron una corrección correcta en todas las ejecuciones. En un error acotado de una sola función, el razonamiento adicional de los niveles superiores no aportó ningún beneficio medible.
De low a medium hay un salto claro. El promedio de medium fue de unas 2.6× más tokens de razonamiento que low y más del doble de tiempo.
Por encima de medium, los niveles se confunden. Nuestras ejecuciones con xhigh promediaron menos tokens que las de high, y los resultados de max se solaparon con ambos. Tres ejecuciones por nivel no bastan para diferenciarlos. En esta tarea, «high», «xhigh» y «max» significaron lo mismo: «más razonamiento, a veces mucho más».
Si se omite, se comporta como max. Esto coincide con la documentación de MiniMax. Nuestro promedio de «omitido» resultó superior al de «max», pero los rangos se solapan y la diferencia está dentro de la variación entre ejecuciones.
La variabilidad es alta en todos los niveles. Con el valor predeterminado, el tiempo osciló entre 39 y 82 segundos para el mismo prompt. En el endpoint Anthropic Messages, tres ejecuciones con low usaron 511, 1,861 y 6,060 tokens de razonamiento. La última tardó 56 segundos, lo mismo que una ejecución típica con max. El nivel de esfuerzo determina la profundidad promedio del razonamiento, no establece un límite estricto.
El rendimiento se mantuvo estable, en torno a 112 tokens de salida por segundo en las 24 ejecuciones de Flash, así que el tiempo aumenta casi linealmente con los tokens de razonamiento. A esta velocidad, razonar durante 6,000 tokens implica esperar casi un minuto.
MiniMax no ha publicado datos propios de tokens ni de latencia por nivel. No podemos decir a partir de esta única prueba qué ocurre cuando una tarea más difícil empieza a requerir los niveles superiores. Las cifras anteriores solo muestran cuánto cuesta cada nivel cuando la tarea no lo necesita.
Los prompts breves apenas requieren razonamiento
«Siempre razona» no significa «siempre razona mucho». El razonamiento es adaptativo, así que la profundidad depende de lo difícil que parezca el prompt:
- Clasificar cinco tickets de soporte en una de cuatro etiquetas: 0 tokens de razonamiento con
lowy un promedio de 6 con el valor predeterminado. Todas las etiquetas fueron correctas. - «¿Cuánto es 17 × 23?» con
low: nada de razonamiento, 2 tokens de salida.
Por eso, la falta de una opción para desactivar el razonamiento apenas cuesta en llamadas breves de clasificación, extracción y enrutamiento. El coste aparece en tareas abiertas como la programación, donde el modelo encuentra más cosas en las que pensar cuanto más profunda sea la configuración.
Por dónde empezar
Estos son puntos de partida. Solo las dos primeras filas se midieron directamente; el resto son recomendaciones nuestras, que debes contrastar con tus propios reintentos:
| Tipo de trabajo | Empezar en | Subir de nivel cuando |
|---|---|---|
| Clasificación, extracción, enrutamiento | low | Las etiquetas son incorrectas en casos difíciles |
| Correcciones de una sola función, revisiones pequeñas | low | Una corrección falla las pruebas dos veces |
| Cambios en varios archivos, refactorizaciones | medium | Al agente se le escapa un archivo relacionado |
| Bucles del agente con muchas llamadas a herramientas | low o medium | Los pasos se repiten o se estancan |
| Depuración difícil, cuestiones de diseño | high | Las respuestas siguen siendo superficiales |
| Chat interactivo con una persona esperando | low | Nunca uses max como valor predeterminado en este caso |
Usa max solo cuando hayas visto que high falla en ese tipo de tarea.
Qué puede fallar o encarecerse al cambiar el nivel de esfuerzo
- Respuestas truncadas. El razonamiento cuenta para el límite de
max_tokens. Una ejecución con el valor predeterminado usó 9,376 tokens de razonamiento para una sola función, así que un límite de 4K u 8K configurado para respuestas de M2.x puede cortar la respuesta confinish_reason: "length". MiniMax recomienda 131,072 y permite 524,288. - Tiempo de espera agotado. Con high o niveles superiores, una sola llamada puede tardar un minuto. Los tiempos de espera del cliente y del proxy configurados para un modelo rápido deben aumentarse a 120 segundos o más.
- Valores que no hacen nada sin avisar. A través de AIHubMix, se aceptaron
none,minimaly un valor desconocido comoauto, pero el modelo siguió razonando. Según las pruebas de un proyecto de gateway, los propios endpoints de MiniMax rechazan los valores desconocidos (incidencia #8025 de sub2api). Usa uno de los cinco valores documentados. - Herramientas que no permiten elegir los niveles. Actualmente, OpenCode no resuelve variantes de esfuerzo para este modelo, y algunos frameworks envían «thinking disabled», lo que provoca el error 400. Comprueba qué envía realmente tu herramienta.
- Mezclar modelos en una misma canalización. M3 y M2.x ignoran el campo de esfuerzo. Si alternas entre modelos, un nivel de esfuerzo que ahorra dinero en Flash no tendrá efecto en los demás.
Cómo configurarlo en cada protocolo
Los tres protocolos están disponibles a través de AIHubMix con una sola clave. La guía de inicio rápido explica cómo obtener las claves, y la página de parámetros de razonamiento unificados explica cómo gestiona AIHubMix los campos de razonamiento de distintos proveedores.
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 de Python; incluye output_config en extra_body si tu versión del SDK no reconoce el campo):
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)
Revisa usage en las primeras llamadas. Chat Completions informa del razonamiento como completion_tokens_details.reasoning_tokens, Messages como output_tokens_details.thinking_tokens y Responses como output_tokens_details.reasoning_tokens. Si esas cifras no cambian al cambiar de nivel, la configuración no está llegando al modelo.
Preguntas frecuentes
¿Cuál es el nivel de esfuerzo predeterminado de MiniMax M3.1 Flash?
Max. Si la solicitud no incluye un campo de esfuerzo, el modelo razona al nivel más profundo.
¿Puedo desactivar por completo el razonamiento?
No. Desactivar el razonamiento devuelve HTTP 400 en la API de MiniMax. El nivel más bajo es low y, en prompts breves, low suele usar 0 tokens de razonamiento.
¿Qué nivel de esfuerzo debería usar para programar?
Empieza con low para correcciones de una sola función y revisiones pequeñas, usa medium para cambios en varios archivos y sube de nivel solo si una tarea falla. En nuestra prueba, low corrigió correctamente una función con dos errores en todas las ejecuciones.
¿Es más preciso el nivel de esfuerzo max?
No en nuestra tarea de prueba: todos los niveles superaron las 215 pruebas. Max usó muchos más tokens y tiempo. Los niveles superiores pueden ayudar con tareas más difíciles, pero nadie ha publicado datos que indiquen en qué casos.
¿Por qué la misma solicitud tardó 10 segundos una vez y 56 segundos la siguiente?
La profundidad del razonamiento varía entre ejecuciones incluso si el nivel se mantiene fijo. Una ejecución con low en el endpoint Messages usó unas diez veces más tokens de razonamiento que otra.
¿Funciona reasoning_effort none a través de AIHubMix?
Se acepta sin error, pero el modelo sigue razonando. Usa low en su lugar.
¿Cómo puedo ver cuántos tokens de razonamiento usó una llamada?
Consulta el objeto usage: reasoning_tokens en Chat Completions y Responses, y thinking_tokens en la API Messages.
Sigue leyendo: la serie MiniMax M3.1 Flash
- Para conocer el contexto general de esta configuración, desde el lanzamiento de Space Bunny hasta los precios frente a M2.7 y M3: MiniMax M3.1 Flash es Space Bunny: qué cambió respecto a M2.7 y M3 y cuánto cuesta
- El nivel de esfuerzo es uno de los varios aspectos que cambian al pasar el código de M2.5/M2.7 a otro modelo. Esta publicación explica los errores 400 y el resto: Dejar atrás MiniMax M2.5/M2.7 antes del 18 de noviembre: cómo corregir el error 400 «requires adaptive thinking» de M3.1 Flash
- Con el nivel low, Flash fue el más barato de tres modelos para la misma corrección. Así se compara su valor predeterminado con los de DeepSeek y Haiku: MiniMax M3.1 Flash frente a DeepSeek V4.1 Flash y Claude Haiku 5.5: una corrección de errores, tres facturas



