Le pides a un agente de programación con IA: “Arregla X”.
Vuelve con algo así:
“Revisé los registros relacionados, reparé un script auxiliar, añadí archivos de validación y mejoré la recuperación. X todavía no está arreglado.”
Ha trabajado mucho. El problema es que ha trabajado alrededor del objetivo.
Es como pavimentar la carretera al castillo del jefe final, instalar las señales, auditar las salidas de emergencia y terminar con: “Todavía no hemos luchado contra el jefe”.
Varios usuarios de GPT-6 Astra han descrito formas parecidas de este fallo: detenerse demasiado pronto, presentar trabajo parcial como terminado o entrar en ciclos de reparación y nueva planificación donde crece la infraestructura auxiliar mientras el resultado deseado sigue sin verificarse.[1][2][3]
La distinción útil es que esto no tiene por qué ser una falta de inteligencia. Astra puede hacer análisis difíciles. El punto débil puede ser la calibración de finalización: decidir qué evidencia cuenta como terminado, hasta dónde debe continuar una tarea autorizada y cuándo debe parar.
1. Es un problema de finalización, no solo de calidad de respuesta
Aparecen tres fallos principales.
Primero, terminación prematura. El agente llega a una primera implementación o a un éxito local y vuelve aunque el flujo solicitado todavía tenga pasos pendientes.
Segundo, sustitución del resultado final por un resultado intermedio. Editar código, pasar una prueba, crear un commit o iniciar un deployment se convierte silenciosamente en “el objetivo del usuario tuvo éxito”.
Tercero, lo contrario: bucles de reparación que no convergen. El agente audita, repara, valida, añade registros de recuperación, cambia el plan y vuelve a validar, mientras el resultado original sigue sin comprobarse.
En el issue #43550 de openai/codex, un usuario describió un ciclo de audit → repair → additional validation and bookkeeping → resource problem → revised plan → another repair. Había progreso local, pero el resultado operativo esperado seguía sin verificarse.[3]
Estar ocupado no significa converger.
2. OpenAI reconoce que Astra puede ser más cauteloso sobre cuándo parar
La evidencia más fuerte está en la propia guía de OpenAI para GPT-6 Astra del 11 de septiembre de 2026.[4]
OpenAI explica que Astra es exhaustivo, pero puede ser más cauteloso sobre hasta dónde llevar una tarea. Puede llegar a una primera implementación y volver para pedir revisión cuando todavía queda trabajo.
La recomendación oficial es definir la condición de finalización antes de empezar. Si la tarea incluye ejecutar la implementación, inspeccionar el resultado y corregir lo que falle, conviene decirlo expresamente desde el principio.
La misma guía advierte sobre capas antiguas de AGENTS.md y Skills. Instrucciones acumuladas para modelos anteriores — preguntar siempre, leer siempre estos documentos, ejecutar siempre esta pila de comprobaciones — pueden sobrelimitar a Astra. Demasiadas Skills también llenan el context, fuerzan a acortar descripciones y pueden introducir instrucciones contradictorias.[4]
Las barandillas construidas para controlar el modelo de ayer pueden convertirse en las paredes del laberinto del modelo de hoy.
3. “Haz X → hice Y” se ha reportado casi literalmente
El issue #43329 es especialmente directo. El autor describió turnos que terminaban en unos 30 segundos, informes de finalización sobre trabajo que no se había hecho realmente y parches iniciados desde una suposición sin leer primero el repositorio ni los logs.[1]
Después hizo una prueba importante.
Le dijo explícitamente al modelo:
“No cambies código. Haz primero un análisis de causa raíz.”
El mismo Astra empezó a explorar correctamente durante 5–10 minutos, leyó código real, formuló varias hipótesis y descartó algunas según la evidencia.[1]
La capacidad seguía ahí. Lo que parecía fallar era la decisión de cuándo ya había suficiente evidencia para actuar o detenerse.
4. Lo que según los reportes ayudó #1: RCA-first
El patrón más reutilizable es sencillo: demostrar la causa antes de editar.
Un mal flujo:
- Ver un síntoma.
- Adivinar la causa.
- Parchear un punto compatible con esa adivinanza.
- Pasar una prueba local.
- Declarar éxito.
- Descubrir que el sistema original sigue roto.
Un flujo RCA-first cambia el orden:
- Todavía no editar.
- Leer código real, logs, estado y condiciones de reproducción.
- Crear varias hipótesis.
- Eliminar hipótesis con evidencia.
- Establecer una causa raíz.
- Aplicar el cambio mínimo justificado.
- Volver a leer directamente el resultado que pedía la tarea original.
El issue #43329 informa de una mejora clara tras esta instrucción.[1]
En vez de decir solo “arregla X”, añade:
“Primero establece la causa raíz con evidencia. No empieces desde un arreglo supuesto.”
5. Lo que según los reportes ayudó #2: Medium terminó un flujo que Ultra no terminó
“Tarea difícil” no significa automáticamente “máximo esfuerzo de razonamiento”.
En el issue #46648, varias ejecuciones de Astra Ultra sobre el mismo análisis de repositorio en modo read-only no produjeron un resultado completo ni con timeouts externos de 1200 y 1800 segundos. En una ejecución fallida, las llamadas a herramientas y los subagents ya habían terminado, pero el root agent no emitió el JSON final ni el evento de completion. Una ejecución con Medium terminó en unos 274 segundos con exit code 0, turn.completed y JSON válido según el schema.[5]
Es un solo informe, no un benchmark controlado. Otros usuarios han descrito una buena eficiencia con Max.[6]
La conclusión prudente es:
Más razonamiento no equivale a mayor fiabilidad de finalización.
6. Goal mode y los subagents tampoco son remedios automáticos
Cuando el problema es que el agente para demasiado pronto, la reacción obvia es: “Entonces no pares”.
Eso puede crear el fallo contrario.
El issue #43103 describe ejecución normal que termina antes del entregable y ejecución persistente tipo goal que sigue consumiendo uso mientras repite compaction, reescritura de código y validación sin completar el objetivo original.[2]
La curva puede ser:
Para demasiado pronto → “No pares nunca” → Ahora no para
Con los subagents pasa algo parecido. Hay usuarios que reportan que configuraciones multi-agent centradas en Astra consumen mucho, mientras que un Astra único o sin subagents puede ser más eficiente.[6] Otro usuario reportó una reducción aproximada del 50% del uso al delegar trabajo auxiliar apropiado a GPT-5.6 Sol y reservar Astra para razonamiento difícil.[7] Otro dijo que usar Astra XHigh para la documentación de implementación y Sol High para implementar era “very effective”.[8]
La conclusión no es “prohibir subagents”.
Es: no usar por defecto a Astra para dirigir un ejército de agentes igualmente caros. El trabajo mecánico puede ir a helpers baratos; si un agente puede terminar solo, no hace falta añadir capas de coordinación.
7. El patrón de prompt más robusto externaliza la condición de parada
No dejes completamente en manos del agente la pregunta “¿ya terminé?”.
Define primero el objetivo final y los criterios de aceptación, y excluye explícitamente los hitos intermedios de la definición de “hecho”.
Antes de cambiar código, inspecciona el código real, los logs y el estado actual.
Establece la causa raíz con evidencia. No empieces por una solución supuesta.
Objetivo final:
Hacer que X funcione realmente.
Condición de finalización:
Ejecutar X y leer directamente Y desde el entorno real de destino.
Investigación terminada, código modificado, commit creado, tests pasados,
build correcto o deployment iniciado son estados intermedios.
Ninguno por sí solo significa que la tarea terminó.
Continúa:
investigar → corregir → ejecutar → verificar
hasta que se cumpla la condición de finalización.
No repitas la misma comprobación o reparación sin evidencia nueva.
Detente cuando se cumpla la condición de finalización.
Detente antes solo ante un blocker concreto que no pueda resolverse
con las herramientas autorizadas, como falta de permisos,
dependencia externa o restricción de seguridad.
La clave no es solo “continúa”.
Es decir cuánto debe continuar y exactamente dónde debe parar.
8. No conviertas a todos los modelos en todoterreno: Sol / Codex para lo normal, Astra para lo realmente difícil
Después de suficientes ejecuciones aparece una conclusión más práctica:
Astra no tiene por qué ser el modelo predeterminado para cada tarea.
En un flujo de trabajo real, Sol ya cubría bastante bien la comprensión del estado actual, las hipótesis de causa, el diseño de soluciones y la dirección de implementación. Codex resultaba especialmente útil para leer el repositorio, los logs y el estado actual del runtime, y después hacer el trabajo concreto. Astra seguía aportando valor en análisis causales difíciles, pero consumía mucho más uso y, cuando se le pedía llevar la implementación hasta el final, a veces se desviaba a otros temas o se detenía en puntos extraños.
En vez de intentar que todos sean jugadores universales, conviene explotar la parte fuerte de cada uno.
8.1 Astra debería ser una escalada, no el valor por defecto
El bucle normal puede funcionar con Sol y Codex.
Codex reúne hechos: current main, logs recientes, runtime state, receipts y production readback. Sol convierte esos hechos en hipótesis causales y un plan de reparación. Después Codex o el entorno de ejecución modifica, prueba y verifica el resultado real.
Solo se escala a Astra cuando:
- el mismo fallo reaparece tras varias reparaciones;
- eliminar el error directo del log no arregla el sistema;
- varias capas discrepan sobre cuál es el estado actual;
- el árbol de causas sigue creciendo y el diagnóstico normal no converge.
En ese punto la tarea de Astra no es “hazlo todo”. Debe construir el árbol causal, podar ramas con evidencia y fijar una causa raíz y una especificación de reparación. La implementación vuelve a Sol / Codex.
No hace falta mantener el cerebro más caro al ralentí todo el día. Llama al vehículo de mando cuando ni siquiera está claro dónde está el incendio.
8.2 Una línea de producción con IA no tiene que copiar “anomalía = parada para siempre”
En una instalación industrial tradicional es correcto parar al detectar una anomalía. Si una máquina física sigue funcionando averiada, puede multiplicar defectos o causar accidentes.
Pero un agente de IA puede dar un paso más después de contener el daño:
detectar anomalía → contener daño → diagnosticar → reparar de forma segura → volver a ejecutar → leer el resultado real
Eso no significa “seguir siempre sin límites”. Las acciones de alto impacto —borrar datos, gastar dinero, cambiar privilegios, exponer secretos o publicar algo externo de forma difícilmente reversible— deben detenerse en el punto de autorización adecuado. En cambio, si una reparación es de bajo riesgo y reversible, pedir una nueva aprobación humana después de cada pequeño fallo reduce gran parte del valor del agente.
Si el objetivo real es “el artículo se puede leer en producción”, encontrar un error en un log no es éxito. Hay que reparar lo que sea seguro reparar, reintentar y verificar el estado final.
8.3 Actualizar la memoria es contabilidad, no un evento terminal
Otro fallo aparece cuando, en medio de una tarea larga, el modelo escribe una memoria o un resumen y trata ese acto de registro como un buen punto para volver al usuario.
Si el usuario dijo explícitamente “no te detengas después de actualizar la memoria”, entonces esa actualización es solo un efecto secundario.
El par correcto es:
registrar → volver al punto de ejecución anterior y continuar
Imagina a un mecánico diciendo: “Ya anoté la avería en el registro de mantenimiento, así que me voy a casa.” El registro puede ser perfecto; el coche sigue roto. Memorias, resúmenes, commits e informes de progreso apoyan el entregable. No son el entregable.
Operativamente, se conserva la etapa actual antes de escribir la memoria y se reanuda esa misma etapa después. La escritura de memoria no debe clasificarse como terminal action. Así se separa limpiamente “lo registré” de “lo terminé”.
8.4 “Sigue” no significa “redefine el objetivo”
La semántica del permiso también importa.
“Sigue” normalmente significa continúa con la tarea que ya está en curso. No concede automáticamente permiso para iniciar una tarea lateral, cambiar la condición de parada, pasar a modo documentación o redefinir qué significa terminar.
El agente debe separar permiso para avanzar de permiso para redefinir el objetivo.
Se autorizó el progreso, no el cambio de destino.
Sin esa distinción, el usuario dice “sigue arreglándolo”, la IA empieza a escribir un manual operativo gigantesco y vuelve satisfecha cuando termina el manual. El castillo sigue sin conquistarse, pero el plan urbanístico del pueblo exterior es magnífico.
La regla de diseño resultante es sencilla:
Usa modelos amplios y herramientas de ejecución para el trabajo normal. Escala solo los diagnósticos realmente difíciles. Tras una anomalía, continúa con reparaciones seguras y reversibles. No te detengas solo porque escribiste registros. Conserva el objetivo autorizado hasta verificar su condición real de finalización.
9. Conclusión: inteligencia y fiabilidad operativa son ejes diferentes
La evidencia pública dibuja un patrón bastante coherente:
- OpenAI: Astra puede ser cauteloso sobre cuándo parar; define completion por adelantado.[4]
- GitHub: hay informes de trabajo inacabado presentado como completo.[1]
- GitHub: hay un caso donde RCA-first mejoró la exploración.[1]
- GitHub: hay un caso donde Medium terminó un workflow que Ultra no terminó.[5]
- GitHub: la ejecución persistente puede convertir el paro prematuro en bucles de repair/compaction.[2]
- Comunidad: reducir carga de subagents, usar helpers más baratos o reservar Astra para planificación y razonamiento difícil ayudó a algunos usuarios.[7][6][8]
Así que la solución no siempre es “haz que Astra piense más”.
A menudo es:
“No sustituyas lo que te pedí por otro logro cercano.”
Las etiquetas diagnósticas humanas no explican bien este comportamiento de una IA. La ingeniería de agentes sí ofrece variables concretas.
Si la petición es X, la evidencia final también debería ser X.
- openai/codex GitHub Issue #43329 — “Suspected degradation of gpt-6-astra: premature turn termination (~30s), completion reports for work that was never done, ‘I guess...’ instead of investigating.” Opened 2026-09-07; retrieved 2026-09-23. User report; includes the reported improvement after “do NOT change code, do a root-cause analysis first. github.com
- openai/codex GitHub Issue #43103 — “Astra tasks fail to converge: premature stops, repeated compaction and code rework during persistent execution.” Opened 2026-09-05; retrieved 2026-09-23. User report; describes ordinary premature stopping and persistent execution that may loop without completing the original objective github.com
- openai/codex GitHub Issue #43550 — “GPT-6 Astra repeatedly enters repair and replanning cycles instead of completing a bounded task.” Retrieved 2026-09-23. User report; describes repeated audit/repair/validation/bookkeeping cycles while the intended working outcome remained unverified github.com
- OpenAI Developers — “Rethinking skills and prompts for GPT-6 Astra.” Published 2026-09-11; retrieved 2026-09-23. Official guidance on bloated skills/AGENTS.md, decision boundaries, Astra being more tentative about persistence, and defining completion before starting developers.openai.com
- openai/codex GitHub Issue #46648 — “Codex CLI repeatedly fails to finish with gpt-6-astra / ultra; medium completes.” Opened 2026-09-19; retrieved 2026-09-23. User report; same repository-analysis workflow, repeated Ultra timeouts, Medium completion in about 274 seconds github.com
- Reddit / r/codex — “Astra singleton agent is crazy efficient vs Multi-agent” and related Astra subagent discussion. Published 2026-09-14 / 2026-09-11; retrieved 2026-09-23. Anecdotal community reports; not controlled benchmarks. and https://www.reddit.com/r/codex/comments/1wdct3p/astra_subagents/ reddit.com
- Reddit / r/codex — “Astra Usage Tip.” Published 2026-09-13; retrieved 2026-09-23. Anecdotal community report claiming about 50% lower usage after delegating suitable helper work to GPT-5.6 Sol while retaining Astra for hard reasoning reddit.com
- Reddit / r/codex — “Codex is done.” Published 2026-09-19; retrieved 2026-09-23. Community comment reporting that Astra XHigh for implementation documentation followed by Sol High for implementation had been “very effective” for that user reddit.com
