For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Daytona

Ejecuta una sesión de la API de agentes en un Sandbox de Daytona.

Consulta los ejemplos de gestión desde la aplicación y mediante webhooks en el Cookbook de OpenAI.

Consulta Sandboxes autoalojados para conocer la configuración del ejecutor y los requisitos de conexión.

Elige un modo de aprovisionamiento:

Consulta Ciclo de vida del sandbox para comparar los dos modos.

Gestión mediante webhooks

Usa un controlador para verificar las entregas de webhooks de OpenAI y poner en cola las tareas de aprovisionamiento. Mantén ese controlador separado del sandbox del proceso de trabajo que ejecuta el ejecutor de cada sesión. Sigue los pasos de Desplegar y conectar un controlador para registrar el punto de acceso y el secreto de firma.

Atiende las solicitudes de environment_connection iniciando o volviendo a conectar el proceso de trabajo, y libéralo cuando falle la sesión. Configura explícitamente los tiempos de espera del proceso de trabajo y del controlador. Detener los recursos de cómputo durante la inactividad requiere una política que se coordine con las tareas entrantes; consulta Comportamiento del ciclo de vida.

Gestión desde la aplicación

Antes de comenzar

Necesitas una clave de API de un proyecto de OpenAI, una clave de API de Daytona y el paquete de Codex CLI.

Configura DAYTONA_API_KEY y usa OPENAI_API_KEY para las solicitudes de la aplicación. Asigna a OPENAI_EXECUTOR_API_KEY una clave de entorno y pasa únicamente esa clave al sandbox como CODEX_API_KEY.

1. Configura el entorno de Daytona

Crea una sesión autoalojada y guarda su ID de entorno. Usa el SDK o la API de Daytona para crear un sandbox aislado con el directorio de trabajo configurado. Instala Codex CLI en el sandbox y luego inicia su ejecutor con ese ID de entorno y la clave de entorno.

La conexión del ejecutor a OpenAI es saliente y de larga duración, y el seguimiento de inactividad de Daytona no la detecta. Configura auto_stop_interval=0 para que el Sandbox no se detenga mientras el agente trabaja, y establece un límite de duración para que las ejecuciones interrumpidas no dejen recursos de cómputo funcionando indefinidamente.

Para un uso habitual, incluye Codex y ripgrep en una instantánea de Daytona para que el Sandbox pueda conectarse más pronto.

2. Ejecuta la sesión

Usa los ejemplos HTTP de Ejecutar y continuar sesiones para enviar datos de entrada y recibir el resultado en streaming después de que se conecte el ejecutor de Daytona. Al terminar, elimina la sesión y detén el sandbox del proveedor por separado.

Inicia el Sandbox antes de enviar datos de entrada. El turno espera a que el entorno se conecte, 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 un turno que se completó correctamente. Un turno fallido o cancelado también puede ir seguido de agent.session.idle, así que no consideres que una sesión inactiva demuestra que el turno se completó correctamente. Al recuperar una sesión inmediatamente después de un evento, es posible que se devuelva el estado anterior durante un breve período.

Referencias