MiniMax retirará M2.5 y M2.7 el 18 de noviembre de 2026, y el cambio ya ha comenzado. Desde el 19 de octubre, las dos familias anteriores están cerradas a nuevos usuarios, y las solicitudes de los planes que las mencionan se atienden con M3.1 Flash. Si usas el modelo de pago por uso, tienes cuatro semanas para cambiar tú mismo el ID del modelo.
La mayor parte del código de M2.7 funciona sin cambios en M3.1 Flash. El problema se debe a una decisión de diseño: M3.1 Flash siempre razona y lo hace al nivel más profundo, a menos que indiques lo contrario. Esto provoca un error evidente, algunos aumentos de costo menos notorios y un par de opciones que ya no hacen nada.
AIHubMix ejecutó todas las solicitudes de esta publicación a través de su gateway el 19 de octubre de 2026 con minimax-m3.1-flash. Los textos de error se copiaron de esas respuestas. Las reglas de MiniMax se citan de su documentación de la API.
A quién afecta y cómo
| Usas M2.5/M2.7 a través de | Qué ocurre | Fecha límite |
|---|---|---|
| Plan M / Plan de tokens de MiniMax | Las solicitudes se atienden con M3.1 Flash bajo el nombre anterior | Ya ocurrió (19 oct) |
| Pago por uso de MiniMax | Los ID anteriores siguen funcionando y luego dejan de hacerlo | 18 nov 2026 |
| Cuenta nueva de MiniMax | M2.5/M2.7 no están disponibles | 19 oct 2026 |
La página de modelos de MiniMax lo explica así para los usuarios de planes: «todas las solicitudes a los modelos M2.5 y M2.7 de estos planes se redirigirán automáticamente a M3.1 Flash Preview» y «los nombres de modelo existentes seguirán funcionando». Para los usuarios de pago por uso: «Una vez retirados, las solicitudes a estos modelos en la API dejarán de funcionar». El aviso no menciona ninguna redirección automática para el pago por uso, así que cabe esperar errores, no una alternativa.
Los usuarios de planes deben tener en cuenta qué significa «redirigidas». En los registros seguirá apareciendo M2.7, pero los pesos son distintos, el contexto es 5× mayor y la profundidad de razonamiento predeterminada es max. Trátalo como un cambio de modelo y vuelve a ejecutar tus evaluaciones.
Qué errores son evidentes
400: «requires adaptive thinking»
Qué verás. Se rechaza una solicitud que desactiva el razonamiento:
{"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}}
Por qué. La referencia de la API Messages de MiniMax indica que el modelo «siempre razona»: si se envía thinking.type, debe ser adaptive, y disabled devuelve HTTP 400. El código escrito para M3 puede provocar este error, porque M3 permite desactivar el razonamiento. Los frameworks que clasifican el modelo como no razonador y envían «thinking off» de forma predeterminada lo provocan en cada llamada; los proyectos kodus-ai y 9router-go reportaron casos de este tipo.
Solicitud mínima que lo provoca (Chat Completions en 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"}}'
Solución. Elimina el campo thinking o configúralo como {"type": "adaptive"}. Si desactivabas el razonamiento para ahorrar tiempo, usa "reasoning_effort": "low" en su lugar.
400 con el mismo código 2013 en URL de imágenes
Qué verás. invalid param: remote returned status 400 (2013). Obtuvimos este error con una URL de imagen alojada en upload.wikimedia.org. La misma solicitud con una imagen en base64, o con una URL de imagen de otro host, devolvió 200.
Por qué. El código 2013 es el código general de MiniMax para «parámetros no válidos», no uno específico del razonamiento. En este caso, aparentemente el servicio upstream no pudo obtener la imagen remota. Esa es nuestra interpretación del mensaje; MiniMax no documenta este caso.
Solución. Envía las imágenes como base64 (data:image/png;base64,…) o alójalas en algún lugar que atienda solicitudes HTTP simples. Cuando busques el código 2013 en los registros, lee el mensaje completo antes de asumir que se trata del error de razonamiento.
Después del 18 de noviembre: ID de modelos retirados
Las llamadas de pago por uso a MiniMax-M2.5, MiniMax-M2.5-highspeed, MiniMax-M2.7 y MiniMax-M2.7-highspeed en la API de MiniMax dejarán de funcionar en esa fecha. M2.1 y M2 no aparecen en el aviso. Cambia el ID del modelo antes de esa fecha. En AIHubMix, el nuevo ID es minimax-m3.1-flash.
Qué problemas pasan inadvertidos
Todas estas solicitudes devuelven 200. La diferencia se nota en la factura, la latencia o el resultado.
1. Opciones de «desactivar el razonamiento» que ahora no hacen nada
A través de AIHubMix, se aceptan sin error tres formas de pedir que no haya razonamiento, pero el modelo razona de todos modos:
| Solicitud | Resultado en AIHubMix |
|---|---|
| API Messages, razonamiento desactivado | 200; 469–622 tokens de razonamiento en un acertijo breve |
| Chat, reasoning_effort none | 200; 265–372 tokens de razonamiento en el mismo acertijo |
| Chat, reasoning_effort minimal | 200; el modelo sigue razonando |
Las dos primeras filas corresponden a tres ejecuciones cada una del mismo acertijo lógico de tres cajas, en el que low usó 173–251 tokens de razonamiento. La comprobación de minimal fue una ejecución con una consigna aritmética de una línea.
Solo Chat Completions con thinking: {"type": "disabled"} produce el error 400 anterior. Si tu código de M2.x o M3 dependía de cualquiera de estas opciones para agilizar las llamadas, ahora estas razonan silenciosamente. La única palanca real es el nivel de esfuerzo, y el más bajo es low.
2. El nivel de esfuerzo predeterminado es max
M2.7 no tenía niveles de razonamiento. M3.1 Flash tiene cinco, y la documentación de MiniMax indica que, si se omite el campo, se usa max. En una pequeña corrección de dos errores en una función de Python, AIHubMix midió lo siguiente:
| Configuración | Promedio de tokens de razonamiento | Tiempo promedio | Costo promedio por corrección |
|---|---|---|---|
| Nivel de esfuerzo omitido | 6,364 | 56 s | $0.0045 |
| Nivel de esfuerzo low | 591 | 9.5 s | $0.0006 |
Todas las ejecuciones con ambas configuraciones superaron las 215 pruebas ocultas. Los costos se calcularon con las tarifas de AIHubMix de $0.165 por millón de tokens de entrada y $0.66 por millón de salida, con tres ejecuciones para cada configuración. Si migras sin añadir una opción de nivel de esfuerzo, el mismo trabajo tarda unas 6× más. La medición completa de los cinco niveles está en la publicación sobre esfuerzo de esta serie.
3. El razonamiento consume max_tokens
Los tokens de razonamiento cuentan para max_tokens. El código de M2.x suele establecer límites bajos para respuestas breves. Con max_tokens: 64 y una pregunta de dos oraciones, el modelo consumió el presupuesto razonando y luego devolvió finish_reason: "length" y la respuesta «La luz solar contiene muchos colores», cortada a mitad de oración. MiniMax recomienda 131,072 y permite hasta 524,288. Aumenta los límites bajos o comprueba finish_reason antes de confiar en el texto.
4. Cambiaron el almacenamiento en caché y los niveles de servicio
cache_controlno es compatible con M3.1 Flash (ni con M3), según la referencia de la API de MiniMax. M2.7 cobraba $0.375 por millón por las escrituras explícitas en caché. En M3.1 Flash, el almacenamiento en caché es automático. AIHubMix cobra $0.0165 por millón por las lecturas de caché, y cada solicitud que enviamos tuvo unos 175–195 tokens de la instrucción inicial servidos desde la caché, incluso la primera. Parece ser un preámbulo fijo del lado de MiniMax; a ese precio, cuesta aproximadamente un tercio de centavo por cada mil solicitudes. Elimina los bloquescache_control; aquí no hacen nada.service_tierno es compatible. Si usabas el nivel Priority de M3 para reducir la latencia, no hay un equivalente en Flash.
5. El mismo nombre, una estrategia de muestreo distinta
Los valores predeterminados de MiniMax cambiaron de top_p 0.9 en M2.x a 0.95 en M3.1 Flash, y la ventana de contexto creció de 204,800 a 1,000,000 tokens. Las instrucciones ajustadas para M2.7 pueden producir resultados más largos o menos precisos. Un modelo que conserva el mismo nombre sigue siendo un modelo nuevo: vuelve a ejecutar tus evaluaciones.
Reglas de facturación que es fácil pasar por alto
- El razonamiento se factura como salida. En AIHubMix cuesta $0.66 por millón. Con el nivel de esfuerzo predeterminado, el razonamiento representó el 95% de la salida en nuestra corrección de errores (6,364 de 6,673 tokens).
- MiniMax aún no ha publicado un precio oficial por token. Su página de precios incluye M3 y M2.x, pero no M3.1 Flash. AIHubMix cobra $0.165 / $0.66 / $0.0165 (entrada / salida / lectura de caché).
- El precio oficial de M3 se duplica por encima de 512K tokens de entrada. AIHubMix publica un único precio para M3.1 Flash. Si envías instrucciones muy largas, compara tu primera factura con tu propio cálculo.
Pasos para reducir la factura:
- Configura
reasoning_effort: "low"(Chat),output_config.effort: "low"(Messages) oreasoning.effort: "low"(Responses) como valor predeterminado, y súbelo según la tarea. - Mantén las instrucciones estables al principio de la instrucción para que el almacenamiento automático en caché pueda servirlas.
- Establece
max_tokensen un valor lo bastante alto para que el razonamiento no trunque la respuesta, porque tener que repetir una solicitud por una respuesta truncada cuesta más que dejar margen adicional.
Agentes con permisos reales
Hay tres comportamientos importantes cuando el modelo puede ejecutar comandos o editar archivos:
- Siempre razona antes de actuar, incluso con
low. Esto ayuda a elegir herramientas. También significa que cada paso con herramientas tiene latencia de razonamiento; en nuestras llamadas breves a herramientas, un paso tardó entre 2 y 7 segundos conlow. - Hace exactamente lo que le pides, sin ir más allá. Un evaluador inicial lo describió como «increíblemente rápido, pero necesita instrucciones claras y específicas; si no, es demasiado perezoso». Indica a los agentes cuándo detenerse y cómo verificar el resultado («ejecuta las pruebas y pega la salida») en lugar de darles objetivos abiertos.
tool_choiceoficialmente solo admiteauto. AIHubMix aceptó"required"(Chat) y{"type": "any"}(Messages), y el modelo llamó a la herramienta, pero MiniMax no documenta que funcione forzarla. No bases en ello una comprobación de seguridad.
MiniMax indica que se deben devolver los bloques de razonamiento sin cambios en los turnos posteriores (Messages) y mantener intacto reasoning_content (Chat). En nuestra prueba, una breve interacción de ida y vuelta con la herramienta siguió funcionando tras quitar el bloque de razonamiento, pero en ciclos largos de agentes sigue la regla documentada.
Herramientas de programación
AIHubMix ofrece minimax-m3.1-flash en los tres protocolos que necesitan las herramientas de programación más comunes. Cada una se probó el 19 de octubre con texto, una llamada a una herramienta y un intercambio de resultados de la herramienta.
| Herramienta | Protocolo necesario | Funciona a través de AIHubMix | Campo de nivel de esfuerzo |
|---|---|---|---|
| Claude Code | Anthropic Messages | Sí | output_config.effort |
| Codex CLI | OpenAI Responses | Sí | reasoning.effort |
| OpenCode | Compatible con OpenAI | Sí | reasoning_effort |
La ventana de contexto en la API de MiniMax es de 1,000,000. MiniMax Code configura por defecto su cliente en 512K «para equilibrar la experiencia y el costo», según una cita de la documentación de MiniMax hecha por un mantenedor en el proyecto magpie; la API no tiene un parámetro para la ventana.
Claude Code. Configúralo para que use AIHubMix, como se indica en la guía de Claude Code de AIHubMix, y establece el modelo en 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
Las dos configuraciones de pensamiento que envían los clientes de estilo Anthropic, enabled con un presupuesto y adaptive, devolvieron 200 en nuestras pruebas, así que no recibirás el error 400. Problema conocido: no está documentado si el ajuste de esfuerzo de Claude Code llega a un modelo que no sea de Claude como output_config.effort. Si no llega, el modelo se ejecuta con el valor predeterminado max y las interacciones serán más lentas que con M2.7. La prueba rápida de abajo muestra cómo comprobarlo.
Codex CLI. Codex se comunica mediante la API Responses, que funciona con este modelo: las llamadas a funciones se devuelven como elementos function_call. Configura un proveedor personalizado como se indica en la guía de Codex de AIHubMix, con wire_api = "responses", y luego establece model = "minimax-m3.1-flash" y model_reasoning_effort. Se aceptaron tanto xhigh como minimal; minimal no es uno de los niveles de MiniMax y el modelo sigue pensando.
OpenCode. El problema #54801 de OpenCode (reproducido en v2.0.27) informa que OpenCode no encuentra variantes de esfuerzo para este modelo, por lo que ctrl+t no hace nada. La solución alternativa propuesta en el problema consiste en declarar por tu cuenta las cinco variantes en opencode.json. Con el proveedor compatible con OpenAI de AIHubMix, el campo de la solicitud que debe definir cada variante es reasoning_effort (low … max), no output_config.effort, que aparece en el problema. No añadas una variante none.
Una prueba rápida de 15 minutos para cualquiera de las tres herramientas:
- Crea una carpeta temporal con una función que tenga un error conocido y un archivo de pruebas que falle por ese motivo.
- Pídele al agente: «Ejecuta las pruebas, corrige el error, vuelve a ejecutarlas y muéstrame el resultado».
- El resultado es satisfactorio si el agente ejecuta las pruebas antes y después, la última ejecución las supera, termina en pocas interacciones y ninguna devuelve un error 400.
- Consulta el registro de uso de AIHubMix. Deberías ver solicitudes a
minimax-m3.1-flashcon tokens de razonamiento. Si cada interacción tarda cerca de un minuto, el ajuste de esfuerzo no está llegando al modelo y este se ejecuta conmax.
Lista de comprobación para la migración
- Sustituye los ID de MiniMax-M2.5 / M2.7 por minimax-m3.1-flash (en AIHubMix) antes del 18 de noviembre.
- Elimina de las solicitudes el pensamiento desactivado, effort none y effort minimal.
- Añade un nivel de esfuerzo explícito a cada solicitud; empieza por low.
- Aumenta max_tokens para evitar que el pensamiento trunque las respuestas; comprueba finish_reason.
- Elimina los campos cache_control y service_tier.
- Envía las imágenes en base64 o desde un host al que pueda acceder el servicio upstream.
- Conserva intactos los bloques de pensamiento y reasoning_content durante los turnos de herramientas.
- Vuelve a ejecutar tus evaluaciones: mismo nombre, nuevo modelo y nuevos valores predeterminados de muestreo.
- En las herramientas de programación, confirma que el ajuste de esfuerzo llega al modelo (el tiempo por interacción es una señal rápida).
Preguntas frecuentes
¿Por qué aparece el error «requires adaptive thinking»?
Tu solicitud desactivó el pensamiento, normalmente mediante el tipo de pensamiento disabled en el endpoint Chat Completions. M3.1 Flash siempre piensa. Elimina el campo o establécelo en adaptive, y usa effort low si quieres más velocidad.
Mis solicitudes a M2.7 no cambiaron, pero las respuestas sí. ¿Por qué?
Si tienes un plan MiniMax M Plan o Token Plan, desde el 19 de octubre de 2026 las solicitudes que especifican M2.5 o M2.7 se han atendido con M3.1 Flash, aunque apareciera el nombre anterior.
¿Cuál es la fecha límite para quienes pagan por uso?
El 18 de noviembre de 2026. A partir de esa fecha, las solicitudes a M2.5 y M2.7 de la API de MiniMax dejarán de funcionar.
¿Funciona reasoning_effort none en AIHubMix?
Devuelve 200, pero el modelo sigue pensando. El nivel efectivo más bajo es low.
¿Sigo necesitando cache_control?
No. MiniMax no lo admite en M3.1 Flash. El almacenamiento en caché es automático y AIHubMix cobra $0.0165 por millón de tokens de entrada almacenados en caché.
¿Puedo usar M3.1 Flash en Claude Code y Codex?
Sí. AIHubMix lo ofrece mediante la API Anthropic Messages para Claude Code y mediante la API Responses para Codex. Ambas herramientas superaron las pruebas de texto, llamadas a herramientas y resultados de herramientas el 19 de octubre de 2026.
¿Por qué se cortan mis respuestas?
Los tokens de pensamiento cuentan para max_tokens. Si finish_reason es length, aumenta max_tokens. MiniMax recomienda 131,072.
Sigue leyendo: la serie MiniMax M3.1 Flash
- Antes de decidirte por la migración, descubre a qué modelo vas a cambiar: desde el lanzamiento de Space Bunny hasta el precio 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
- Tras la migración, el ajuste más importante es el esfuerzo. En esta publicación se miden los cinco niveles con la misma corrección de error: Niveles de esfuerzo de MiniMax M3.1 Flash: por qué el valor predeterminado costó 7× más que Low para corregir el mismo error
- Si la migración te hace replantearte el uso de MiniMax, aquí tienes la misma tarea y el costo con sus dos rivales más cercanos: MiniMax M3.1 Flash frente a DeepSeek V4.1 Flash y Claude Haiku 5.5: una corrección de error, tres facturas



