For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme

Daytona

Execute uma sessão da API de Agentes em um Sandbox do Daytona.

No OpenAI Cookbook, consulte os exemplos de provisionamento gerenciado pelo aplicativo e gerenciado por webhook.

Consulte Sandboxes auto-hospedados para saber como configurar o executor e quais são os requisitos de conexão.

Escolha um modo de provisionamento:

Consulte Ciclo de vida do sandbox para comparar os dois modos.

Gerenciado por webhook

Use um controlador para verificar as notificações recebidas por webhook da OpenAI e colocar as tarefas de provisionamento na fila. Mantenha o controlador separado do sandbox do worker que executa o executor de cada sessão. Siga as instruções em Implantar e conectar um manipulador para registrar o endpoint e o segredo de assinatura.

Ao receber uma solicitação environment_connection, inicie ou reconecte o worker. Libere o worker se a sessão falhar. Configure explicitamente os tempos limite do worker e do controlador. Para interromper o uso de recursos computacionais durante períodos de inatividade, é preciso definir uma política que coordene essa interrupção com a chegada de novas tarefas. Consulte Comportamento do ciclo de vida.

Gerenciado pelo aplicativo

Antes de começar

Você precisa de uma chave de API de um projeto da OpenAI, de uma chave de API do Daytona e do pacote da CLI do Codex.

Defina DAYTONA_API_KEY e use OPENAI_API_KEY nas solicitações do aplicativo. Atribua a OPENAI_EXECUTOR_API_KEY uma chave de ambiente e passe apenas essa chave para o sandbox como CODEX_API_KEY.

1. Configure o ambiente do Daytona

Crie uma sessão auto-hospedada e salve o ID do ambiente dessa sessão. Use o SDK ou a API do Daytona para criar um sandbox isolado com o diretório de trabalho configurado. Instale a CLI do Codex no sandbox e, em seguida, inicie o executor com esse ID e a chave do ambiente.

O executor inicia uma conexão de longa duração com a OpenAI. O Daytona não detecta essa conexão ao monitorar a inatividade. Defina auto_stop_interval=0 para impedir que o Daytona pare o Sandbox enquanto o agente trabalha. Configure também um limite de duração para que execuções interrompidas não deixem os recursos computacionais ativos por tempo indeterminado.

Para uso recorrente, inclua o Codex e o ripgrep em um snapshot do Daytona para que o Sandbox possa se conectar mais rapidamente.

2. Execute a sessão

Depois que o executor do Daytona se conectar, use os exemplos HTTP em Executar e continuar sessões para enviar a entrada e receber o resultado em streaming. Ao terminar, exclua a sessão e, separadamente, pare o sandbox do provedor.

Inicie o Sandbox antes de enviar a entrada. O turno aguarda a conexão do ambiente, e a sessão sinaliza essa conexão com agent.session.environment.connected no fluxo de eventos.

Use agent.session.turn.completed para identificar um turno concluído com sucesso. O evento agent.session.idle também pode ocorrer após um turno que falhou ou foi cancelado. Portanto, uma sessão ociosa não comprova que o turno foi bem-sucedido. Se você consultar a sessão logo após um evento, a resposta ainda poderá mostrar o estado anterior por um breve período.

Referências