
En un movimiento inusual pero muy bienvenido por la comunidad de desarrolladores, OpenAI ha publicado recientemente detalles técnicos profundos sobre cómo funciona su agente de IA Codex. El ingeniero Michael Bolin compartió una explicación exhaustiva del llamado agente loop que constituye el núcleo del funcionamiento de Codex CLI.
Puntos clave
- OpenAI revela detalles técnicos internos de Codex CLI
- El agente loop coordina interacciones entre usuario, modelo y herramientas
- Codex utiliza APIs de Responses para inferencia del modelo
- Optimización de rendimiento mediante cache de prompts
- Soporte para retención cero de datos para clientes
Tabla de contenidos
- Introducción al agente Codex
- El agente loop explicado
- Modelo de inferencia y APIs
- Construcción del prompt
- Rendimiento y optimización
- Conclusión
Introducción al agente Codex
Codex CLI representa el agente de software local multiplataforma de OpenAI, diseñado para producir cambios de software de alta calidad y confiables mientras opera de manera segura y eficiente en tu máquina. La publicación técnica de Bolin marca un punto de inflexión en la transparencia de OpenAI sobre sus herramientas de IA.
A diferencia de otras herramientas de OpenAI como ChatGPT, Codex es de código abierto y está disponible en GitHub, permitiendo a los desarrolladores examinar directamente la implementación. Esta apertura refleja la importancia estratégica que OpenAI otorga a las herramientas de desarrollo de software asistidas por IA.
El agente loop explicado
En el corazón de cada agente de IA se encuentra algo llamado agente loop. Este proceso repetitivo coordina las interacciones entre el usuario, el modelo de IA y las herramientas que el modelo invoca para realizar trabajo de programación.
El ciclo funciona de la siguiente manera:
- El agente toma entrada del usuario y prepara un prompt textual para el modelo
- El modelo genera una respuesta que puede ser una respuesta final o una solicitud de herramienta
- Si el modelo solicita una herramienta, el agente la ejecuta y añade la salida al prompt original
- Este proceso se repite hasta que el modelo produce un mensaje de asistente para el usuario
La clave del proceso está en cómo Codex construye el prompt inicial enviado a la API de Responses de OpenAI, que maneja la inferencia del modelo. El prompt se construye con varios componentes, cada uno con un rol asignado que determina su prioridad: system, developer, user o assistant.
Modelo de inferencia y APIs
Codex CLI envía solicitudes HTTP a la API de Responses de OpenAI para ejecutar la inferencia del modelo. Existen diferentes endpoints según el tipo de autenticación:
- Cuando se usa autenticación con ChatGPT:
https://chatgpt.com/backend-api/codex/responses - Con autenticación por API key:
https://api.openai.com/v1/responses - Para ejecuciones locales con modelos open source:
http://localhost:11434/v1/responses
El campo instructions proviene de un archivo de configuración especificado por el usuario o de instrucciones base incluidas con el CLI. El campo tools define qué funciones puede llamar el modelo, incluyendo comandos de shell, herramientas de planificación, capacidades de búsqueda web y cualquier herramienta personalizada proporcionada a través de servidores MCP.
Construcción del prompt
El proceso de construcción del prompt en Codex es particularmente sofisticado. El campo input contiene una serie de elementos que describen:
- Permisos del sandbox
- Instrucciones opcionales del desarrollador
- Contexto del entorno como el directorio de trabajo actual
- Finalmente, el mensaje real del usuario
Cada elemento del input es un objeto JSON con type, role y content. Codex construye el payload JSON completo y luego realiza la solicitud HTTP POST con un encabezado de Authorization dependiendo de cómo esté configurado el endpoint de Responses API.
Cuando un servidor de Responses API recibe la solicitud, usa el JSON para derivar el prompt para el modelo. El orden de los primeros tres elementos en el prompt está determinado por el servidor, no por el cliente.
Rendimiento y optimización
Uno de los aspectos más interesantes revelados por Bolin es cómo Codex maneja el rendimiento. El crecimiento cuadrático de los prompts a lo largo de una conversación podría ser ineficiente, pero Codex utiliza cache de prompts para mitigar este problema.
Los hits de cache solo funcionan para coincidencias exactas de prefijos dentro de un prompt. Para aprovechar los beneficios del caching, Codex coloca contenido estático como instrucciones y ejemplos al principio del prompt, y contenido variable como información específica del usuario al final.
Codex evita deliberadamente el uso del parámetro opcional previous_response_id para mantener las solicitudes completamente sin estado y soportar configuraciones de Zero Data Retention, donde OpenAI no almacena datos de usuario.
Cuando el número de tokens excede un umbral, Codex automáticamente compacta la conversación reemplazando el input con una nueva lista más pequeña de elementos que es representativa de la conversación, permitiendo al agente continuar con una comprensión de lo que ha sucedido hasta el momento.
Conclusión
La publicación técnica de OpenAI sobre Codex representa un paso significativo hacia la transparencia en el desarrollo de agentes de IA. El nivel de detalle proporcionado ofrece a los desarrolladores insights valiosos sobre cómo construir sistemas de agentes robustos y eficientes.
El agente loop de Codex proporciona la base para un desarrollo de software más inteligente y autónomo, mientras que las optimizaciones de rendimiento aseguran que la experiencia del usuario sea fluida y responsiva. A medida que los agentes de IA continúan evolucionando, es probable que veamos más empresas siguiendo el ejemplo de OpenAI en términos de transparencia técnica.
Para los desarrolladores interesados en explorar más a fondo, el código fuente de Codex CLI está disponible en GitHub, proporcionando una oportunidad única para aprender de la implementación de referencia de un agente de IA de clase mundial.
Publicar un comentario