En este momento estás viendo Codex el nuevo agente de ingeniería de software de OpenAI

Codex el nuevo agente de ingeniería de software de OpenAI

Su propósito principal es ayudar a los desarrolladores con tareas de codificación, es más que un simple asistente de chat.

¿Qué es?

Codex es un agente autónomo especializado en software, potenciado por un modelo avanzado llamado codex-1 (una versión optimizada de OpenAI o3), que está diseñado para entender y ejecutar tareas complejas de codificación.

El artículo "Introducing Codex" publicado desde el sitio oficial de OpenAI nos presenta una herramienta que permite a los desarrolladores delegar tareas de codificación a un agente de IA proactivo y persistente que puede trabajar de forma autónoma en un entorno seguro hasta completar la tarea, demostrando ya una notable capacidad para resolver problemas complejos como la corrección de errores.

¿Cómo funciona?

Trabaja en entornos aislados y seguros en la nube, pre-cargados con tu código. Puede leer y editar archivos, y ejecutar comandos (como pruebas de código). Esto le permite abordar problemas de forma iterativa, como ejecutar pruebas hasta que pasan, o corregir errores.

¿Actúa el Agente?

A diferencia de un modelo tradicional que solo responde, Codex es un agente agentivo. Esto significa que toma la iniciativa para resolver una tarea compleja. Se le dan instrucciones (como las de «Persistencia» mencionadas en GPT-4.1. Prompting Guide) para que siga trabajando y utilizando sus herramientas hasta que la tarea esté completamente resuelta y verificada.

¿Cuáles son sus capacidades?

Ha sido entrenado para producir código que se parece al estilo humano y generar cambios limpios, listos para revisión. Muestra un rendimiento muy fuerte en tareas reales; por ejemplo, en una prueba estándar de corrección de errores (SWE-bench Verified), logró resolver el 55% de los problemas, un resultado considerado de «última generación» (state-of-the-art) para modelos de su categoría.

¿Qué podemos conocer acerca de la Seguridad?

Opera en contenedores aislados sin acceso a internet durante la ejecución de tareas para mayor seguridad. Ha sido entrenado para rechazar solicitudes maliciosas.

¿Cuáles son sus aplicaciones prácticas?

Los equipos lo están usando para automatizar tareas repetitivas (como refactoring, renombrar, escribir pruebas), corregir errores, añadir nuevas funcionalidades, y redactar documentación. Ayuda a los ingenieros a mantener el foco delegando trabajo en segundo plano. Varias empresas (Cisco, Temporal, Superhuman, Kodiak) ya lo están evaluando y usando para acelerar sus flujos de trabajo.

¿Hay novedades respecto de herramientas relacionadas?

Hay una versión local llamada Codex CLI para tareas más rápidas en la terminal.

¿Cuál es el estado actual y el futuro que promete?

Actualmente es una vista previa de investigación. Todavía tiene limitaciones (como no procesar imágenes o no poder ser corregido a mitad de tarea). La visión a futuro es que los desarrolladores colaboren con agentes de IA de forma asíncrona y que los agentes manejen tareas más complejas y a largo plazo. Es crucial que los usuarios revisen y validen manualmente todo el código generado por el agente antes de integrarlo.


Profundizando un poco el «Cómo funciona Codex»

El concepto principal de cómo funciona Codex se centra en su diseño como un agente de ingeniería de software que opera de manera autónoma y persistente dentro de un entorno controlado y seguro para realizar tareas de codificación complejas. Sólo para que recuerdes, algunos de estos conceptos como el de «persistencia» se encuentra en la guía de Prompting GPT-4.1

Detalles y mecanismos involucrados:

  1. Inicio de la Tarea:

Como usuario, deberás acceder a Codex a través de la barra lateral en ChatGPT. Puedes asignarle una tarea de codificación escribiendo un prompt (instrucción) y seleccionando «Code», o hacer una pregunta sobre tu código haciendo clic en «Ask».

  1. Entorno Aislado y Pre-configurado:

Una vez que asignas una tarea, Codex no la procesa directamente en tu máquina local. En cambio, cada tarea se ejecuta de manera independiente en un entorno separado y aislado en la nube. Este entorno está pre-cargado con tu repositorio de código (obtenido, por ejemplo, vía GitHub). Puedes configurar este entorno para que se parezca lo más posible a tu entorno de desarrollo real.

  1. Capacidades dentro del Entorno:

Dentro de este sandbox seguro, Codex tiene permisos y herramientas para interactuar con el código y el sistema, incluyendo:
◦ Leer y editar archivos dentro del repositorio cargado.
◦ Ejecutar comandos. Esto es crucial, ya que le permite utilizar herramientas comunes de desarrollo como:
▪ Test harnesses (sistemas para ejecutar pruebas).
▪ Linters (herramientas para verificar el estilo y posibles errores en el código).
▪ Type checkers (verificadores de tipos).
▪ Otros comandos necesarios para la tarea, como comandos Git.

  1. Workflow Agentivo e Iterativo:

Aquí es donde se manifiesta el concepto de «agente» planteado anteriormente. Codex no solo ejecuta un comando o edita un archivo una vez. Opera de manera iterativa. Un ejemplo clave es su capacidad para ejecutar pruebas repetidamente hasta que recibe un resultado aprobado (passing result). Esta persistencia para continuar trabajando hasta que la tarea se resuelve completamente es un recordatorio esencial en su sistema. Las instrucciones del sistema le indican explícitamente que espere a que todos los comandos del terminal se completen antes de finalizar y que solo termine su turno cuando esté seguro de que el problema está solucionado.

  1. Guía mediante AGENTS.md:

El comportamiento de Codex puede ser personalizado y guiado por archivos llamados AGENTS.md dentro de tu repositorio. Estos archivos actúan como instrucciones o «tips» para el agente, indicándole cosas como:
◦ Cómo navegar por la base de código.
◦ Qué comandos específicos usar para las pruebas (lo que lo hace más efectivo cuando hay setups de prueba confiables).
◦ Cómo adherirse a las prácticas estándar del proyecto (convenciones de codificación, estructura, nombres, etc.).
◦ Instrucciones sobre los mensajes de Pull Request (PR) que debe generar. Estas instrucciones tienen un alcance basado en la jerarquía de directorios, con los archivos AGENTS.md más anidados teniendo precedencia. Es importante notar que las instrucciones directas del usuario tienen la máxima precedencia sobre AGENTS.md. Si un archivo AGENTS.md incluye verificaciones programáticas, Codex DEBE ejecutar todas ellas después de hacer los cambios de código.

  1. Seguridad y Ejecución Segura:

Un aspecto fundamental de su funcionamiento es la seguridad. El agente Codex opera completamente dentro de un contenedor seguro y aislado en la nube. Durante la ejecución de la tarea, el acceso a internet está deshabilitado. Esto limita la interacción del agente únicamente al código proporcionado a través del repositorio y las dependencias pre-instaladas configuradas por el usuario. No puede acceder a sitios web externos, APIs u otros servicios. También ha sido entrenado para identificar y rechazar solicitudes maliciosas.

  1. Finalización y Verificación:

Una vez que Codex considera que ha completado la tarea (por ejemplo, ha corregido el error y las pruebas pasan), confirma sus cambios usando Git dentro de su entorno. Debe asegurarse de que el área de trabajo queda en un estado limpio. Solo el código commitado será evaluado.

  1. Transparencia y Evidencia:

Codex proporciona evidencia verificable de sus acciones. Esto lo hace a través de citaciones en su respuesta final. Estas citaciones referencian:
◦ Rutas de archivos donde realizó cambios o leyó información.
◦ Salidas específicas del terminal, como los resultados de las pruebas que ejecutó. Esto permite al usuario rastrear cada paso que dio el agente durante la tarea.

  1. Revisión y Integración por el Usuario:

Después de recibir el resultado de Codex, como usuario, deberemos revisar y validar manualmente todo el código generado por el agente antes de integrarlo en nuestro propio entorno o codebase. Puedes revisar los resultados, solicitar revisiones adicionales, abrir un Pull Request en GitHub, o integrar los cambios directamente.

  1. Configuraciones Técnicas:

Codex (basado en codex-1) fue probado con una longitud de contexto máxima de 192k tokens y una configuración de ‘esfuerzo de razonamiento’ (reasoning effort) medio.

En resumen, el funcionamiento de Codex implica delegar una tarea a un agente de IA que opera en un entorno seguro, sigue instrucciones (directas y a través de AGENTS.md), utiliza herramientas para interactuar con el código, trabaja de manera iterativa y persistente hasta completar la tarea, y proporciona evidencia de sus acciones para que el usuario pueda revisar y validar el resultado. Todo esto le permite actuar como un agente autónomo eficaz en tareas de ingeniería de software.


Síntesis

El artículo «Introducing Codex» publicado desde el sitio oficial de OpenAI nos presenta una herramienta que permite a los desarrolladores delegar tareas de codificación a un agente de IA proactivo y persistente que puede trabajar de forma autónoma en un entorno seguro hasta completar la tarea, demostrando ya una notable capacidad para resolver problemas complejos como la corrección de errores.

Comentario final

Estaré profundizando ciertos aspectos y conceptos para tenerlos más en claro porque me han generado un montón de interrogantes y dudas, y de paso, comparto el conocimiento, y si logramos generar algún debate online mucho mejor. Nos estamos leyendo. Gracias por seguirme y espero estar ayudándote.

Fuente de inspiración: https://openai.com/index/introducing-codex/

Gus Terrera

Apasionado por el agile testing y la ia.