GPT-6 Astra en Codex CLI: configuración completa y reasoning effort
Configuraste gpt-6-astra en Codex CLI, elegiste model_reasoning_effort = "xhigh" y todavía tienes una duda: ¿el modelo está utilizando realmente ese nivel de razonamiento? Esta guía reúne la configuración y los datos que devolvió la API en nuestra prueba.
Hicimos las comprobaciones en la infraestructura de MandAPI. La idea es comparar lo que solicita el cliente con lo que aparece en la respuesta, incluidos los tokens de razonamiento y las llamadas estructuradas a herramientas.

Prueba de MandAPI del 7 de noviembre de 2026. Los resultados pueden variar según el proveedor, el cliente y la configuración.
¿Qué es GPT-6 Astra?
gpt-6-astra (alias actual gpt-6-astra-2026-09-03) es el modelo insignia de OpenAI, lanzado en septiembre de 2026. Para esta configuración importan estas especificaciones:
| Especificación | Valor |
|---|---|
| Ventana de contexto | 1.050.000 tokens |
| Salida máxima | 128.000 tokens |
| Fecha límite de conocimientos | 30 de abril de 2026 |
| Endpoints | v1/responses, v1/chat/completions, v1/batch, v1/realtime, v1/assistants |
| Function calling | Compatible |
| Streaming y Structured Outputs | Compatibles |
Para Codex CLI, la ruta decisiva es la API Responses (/v1/responses).
¿Es compatible GPT-6 Astra con Codex CLI 0.151.0?
Sí, siempre que la integración utilice la API Responses. En config.toml, configura wire_api = "responses" para el proveedor MandAPI.
Codex CLI usa Responses de forma predeterminada. Los problemas aparecen cuando un gateway solo implementa /v1/chat/completions o convierte /v1/responses a esa ruta sin avisar. Entonces el cliente puede fallar o comportarse de manera inesperada sin mostrar un error claro.
Cómo configurar GPT-6 Astra en Codex CLI
Paso 1: guarda la clave en una variable de entorno
export MANDAPI_API_KEY="sk-tu-clave-aqui"
Paso 2: edita ~/.codex/config.toml
model = "gpt-6-astra"
model_provider = "mandapi"
model_reasoning_effort = "xhigh"
approval_policy = "never"
[model_providers.mandapi]
name = "MandAPI"
base_url = "https://api.mandapi.com/v1"
env_key = "MANDAPI_API_KEY"
wire_api = "responses"
Paso 3: comprueba que Codex cargó la configuración
codex exec --skip-git-repo-check -C . "responde solo OK" < /dev/null
En esta prueba no interactiva, conserva < /dev/null. Sin la redirección, Codex puede quedarse en Reading additional input from stdin... esperando una entrada que no llegará. Ese síntoma se confunde fácilmente con una caída de la API. La cabecera de la salida muestra el modelo y la política de aprobación cargados.
Tres errores de configuración frecuentes
1. Colocar model_reasoning_effort dentro del bloque del proveedor
# INCORRECTO: Codex ignora esta ubicación sin avisar
[model_providers.mandapi]
model_reasoning_effort = "xhigh"
# CORRECTO: ubícalo en la raíz del archivo
model_reasoning_effort = "xhigh"
[model_providers.mandapi]
name = "MandAPI"
Esta opción debe quedar en el nivel raíz. Dentro de [model_providers.*], se descarta sin advertencia; puedes pensar que usas xhigh mientras el modelo recibe el valor predeterminado.
2. Usar un wire_api distinto de responses
En esta integración, reasoning_effort solo tiene efecto a través de la API Responses. Con wire_api = "chat", el parámetro no llega al modelo.
3. No reiniciar Codex
Codex lee config.toml al iniciar el proceso. Reinícialo después de modificar el archivo.
¿Funciona realmente reasoning_effort = "xhigh"?
Funciona si el proveedor envía el parámetro al modelo. Dos situaciones pueden verse iguales en el panel: el gateway acepta xhigh y lo muestra en el registro, o además lo transmite al modelo. El registro por sí solo no permite distinguirlas.
Nuestra prueba
Pedimos a GPT-6 Astra que identificara una moneda falsa entre 12 con solo tres pesajes en una balanza, determinando además si pesaba más o menos. La petición utilizó reasoning.effort = "xhigh" y max_output_tokens = 2000.
reasoning_tokens = 1.034
output_tokens = 1.958
elementos devueltos = reasoning, reasoning, message
eco del parámetro = {"effort":"xhigh","mode":"standard"}
tiempo de respuesta = 53 s
Los 1.034 tokens de razonamiento muestran que el modelo utilizó un presupuesto para pensar. Los dos elementos type=reasoning ofrecen otra señal y la respuesta reproduce el esfuerzo solicitado. Juntos, estos campos aportan más información que una etiqueta del panel.
Valores admitidos
low | medium | high | xhigh | max
En nuestra prueba, el modelo rechazó none y minimal con HTTP 400. max está disponible para trabajos exigentes, con más tiempo y consumo que xhigh.
¿Por qué reasoning_tokens puede devolver 0?
Si el proveedor transmite el parámetro, comprueba primero estas dos causas habituales del lado del cliente.
max_output_tokens es demasiado bajo
En la API Responses, max_output_tokens incluye los tokens de razonamiento. Un límite de 32 o 128 puede dejar muy poco espacio para pensar, aunque el esfuerzo sea xhigh. Para esta prueba, asigna al menos 2.000 tokens de salida y aumenta el presupuesto en tareas difíciles.
La pregunta es trivial
Un mensaje como «responde solo OK» sirve para comprobar la conexión, pero no la profundidad del razonamiento. Utiliza una tarea de varios pasos. También puedes añadir esta opción a config.toml y buscar un resumen de razonamiento:
model_reasoning_summary = "detailed"
Coste: los tokens de razonamiento cuentan como salida
Los tokens de razonamiento de la API Responses se incluyen en el consumo de salida. En nuestra prueba, la respuesta final tenía unos 2.500 caracteres, mientras que output_tokens marcó 1.958; de ellos, 1.034 eran razonamiento interno y no texto visible.
Por eso, subir de medium a xhigh puede aumentar el coste de una llamada aunque la respuesta final tenga la misma longitud. En nuestra sesión, 3.844 tokens de entrada provinieron de caché, lo que redujo el coste efectivo de entrada.
Como punto de partida, reserva xhigh para arquitectura, refactorizaciones complejas y depuración difícil. Para tareas mecánicas, prueba medium o low y compara calidad y coste.
Prueba el proveedor con curl antes de configurar Codex
Prueba 1: ¿responde /v1/responses?
curl -s https://api.mandapi.com/v1/responses \
-H "Authorization: Bearer $MANDAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-astra","input":"hola","max_output_tokens":16}' \
-o respuesta.json -w "%{http_code}\n"
Un HTTP 200 confirma que la ruta respondió a esta solicitud. Un 404 indica que la ruta esperada no está disponible en ese endpoint.
Prueba 2: ¿se transmite el razonamiento?
curl -s https://api.mandapi.com/v1/responses \
-H "Authorization: Bearer $MANDAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"gpt-6-astra",
"input":"Explica cómo identificar una moneda falsa entre 12 con una balanza y solo tres pesajes, sin saber si pesa más o menos.",
"max_output_tokens":2000,
"reasoning":{"effort":"xhigh"}
}' -o respuesta.json
Revisa usage.output_tokens_details.reasoning_tokens y el campo reasoning de la respuesta. En esta tarea, nuestra prueba devolvió más de cero tokens de razonamiento y el eco {"effort":"xhigh","mode":"standard"}.
Prueba 3: ¿se transmiten las herramientas?
curl -s https://api.mandapi.com/v1/responses \
-H "Authorization: Bearer $MANDAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"gpt-6-astra",
"input":"¿Qué tiempo hace en São Paulo? Usa la herramienta.",
"max_output_tokens":200,
"tools":[{"type":"function","name":"get_weather",
"description":"Devuelve el tiempo de una ciudad",
"parameters":{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}}]
}' -o respuesta.json
Busca un elemento "type": "function_call" en output. Nuestra prueba devolvió una llamada estructurada con nombre de función y argumentos JSON. Si un gateway elimina tools, el agente puede conversar, pero pierde las herramientas necesarias para editar archivos.
Tool calling y lista de comprobación
GPT-6 Astra admite function calling nativo. Para una integración con Codex CLI, comprueba estos tres puntos en orden:
- ¿El proveedor sirve
/v1/responses? - ¿Una tarea de varios pasos devuelve uso de razonamiento y el esfuerzo solicitado?
- ¿Una herramienta sencilla produce un
function_callestructurado?
Pide los campos de respuesta de la API como evidencia; una declaración genérica de compatibilidad resulta menos útil que estas pruebas.
Preguntas frecuentes
¿Funciona GPT-6 Astra con Codex CLI 0.151.0?
Sí, cuando el proveedor utiliza la API Responses y wire_api = "responses".
¿Qué valor de reasoning effort debo usar?
En nuestra prueba se aceptaron low, medium, high, xhigh y max. El modelo rechazó none y minimal. xhigh es un punto de partida para trabajo de ingeniería complejo.
¿Por qué reasoning_tokens es cero con xhigh?
Comprueba primero el presupuesto de tokens de salida y la dificultad de la pregunta. Una prueba trivial de conexión no demuestra el uso del razonamiento.
¿Debo reiniciar Codex tras cambiar config.toml?
Sí. Codex carga la configuración al iniciar el proceso.
¿Por qué codex exec se detiene en «Reading additional input from stdin»?
Para una prueba no interactiva, redirige la entrada estándar con < /dev/null.
¿Dónde está el archivo de configuración de Codex CLI?
En ~/.codex/config.toml; en Windows, %USERPROFILE%\.codex\config.toml.
Siguiente paso
Crea una cuenta de MandAPI, ejecuta las tres pruebas con tu clave y compara los campos de respuesta. Consulta los modelos disponibles, los precios actuales y la guía de API compatible.