Consulta los ejemplos de gestión desde la aplicación y mediante webhooks en el OpenAI Cookbook.
Consulta Sandboxes autoalojados para conocer los pasos de configuración del ejecutor y los requisitos de conexión.
Elige un modo de aprovisionamiento:
- Gestión desde la aplicación: sigue esta guía para iniciar y detener sandboxes desde tu aplicación.
- Gestión mediante webhooks: despliega un controlador que inicie o vuelva a conectar los sandboxes al recibir webhooks de OpenAI.
Consulta Ciclo de vida del sandbox para comparar los dos modos.
Antes de comenzar
Necesitas una clave de API de un proyecto de OpenAI, una clave de API y un espacio de trabajo de Blaxel, y el paquete de la CLI de Codex.
Configura BL_API_KEY y BL_WORKSPACE, y usa OPENAI_API_KEY para las solicitudes de la aplicación. Asigna a OPENAI_EXECUTOR_API_KEY una clave de entorno y pasa al sandbox únicamente esa clave como CODEX_API_KEY.
Elige la región del sandbox en tu código de aprovisionamiento. Usa us-was-1 si necesitas la opción de persistencia de Agent Drive que se describe más adelante.
1. Configura el entorno de Blaxel
Crea una sesión autoalojada y guarda el ID de su entorno. Usa el SDK o la API de Blaxel para crear un sandbox aislado con el directorio de trabajo configurado. Instala la CLI de Codex en el sandbox y luego inicia su ejecutor con ese ID de entorno y la clave de entorno.
La imagen de Node de Blaxel usa Alpine Linux, así que instala ripgrep con apk. Pasa la clave de entorno como CODEX_API_KEY únicamente al proceso del ejecutor. Configura keep_alive=True para evitar que el sandbox reduzca a cero el número de instancias mientras el ejecutor está en funcionamiento. Los límites de tiempo para la configuración, el ejecutor y el sandbox evitan que los recursos abandonados sigan ejecutándose indefinidamente.
Para un uso habitual, crea una imagen de Blaxel con Codex y ripgrep preinstalados para que el sandbox pueda conectarse más rápido.
2. Ejecuta la sesión
Una vez que se conecte el ejecutor de Blaxel, usa los ejemplos de HTTP de Ejecutar y continuar sesiones para enviar los datos de entrada y recibir el resultado a medida que se genera. Cuando termines, elimina la sesión y detén por separado el sandbox del proveedor.
Inicia el sandbox antes de enviar los datos de entrada. El turno espera a que se conecte el entorno y la sesión informa de la conexión mediante agent.session.environment.connected en el flujo de eventos.
Usa agent.session.turn.completed para identificar los turnos que se completaron correctamente. El evento agent.session.idle también puede aparecer después de un turno fallido o cancelado, así que una sesión inactiva por sí sola no indica que el turno se haya completado correctamente.
Opcional: conserva archivos entre sesiones
Usa Blaxel Agent Drive para conservar archivos entre sandboxes y sesiones. Monta la misma unidad en cada sandbox para compartir archivos. Agent Drive requiere la región us-was-1 y no transfiere el historial de conversación ni el estado de la sesión.
Referencias
- Consulta la documentación de los sandboxes de Blaxel
- Consulta la documentación del SDK de Blaxel para Python
- Consulta la documentación del SDK de Blaxel para TypeScript