Conecte seu próprio ambiente se quiser ter mais controle sobre o ambiente do agente ou usar recursos computacionais em que confia. Esse ambiente pode ser um notebook, um contêiner ou um sandbox remoto. Se preferir que a OpenAI provisione o ambiente, use um sandbox hospedado pela OpenAI.
Como funciona a conexão
A OpenAI executa o harness do agente. No seu ambiente, você executa codex exec-server, o executor. A pedido do harness, o executor roda comandos de shell, lê e grava arquivos e usa servidores MCP locais.
O executor se registra na API com um ID de ambiente e uma chave de API com permissões restritas. Em seguida, conecta-se via WebSocket para receber comandos e devolver resultados. Todas as conexões são de saída. Se a conexão cair, o executor se reconecta.

Prepare seu ambiente
Prepare os arquivos e as dependências de que o agente precisa. Isole os ambientes por usuário ou carga de trabalho. Agentes que compartilham um ambiente podem acessar os mesmos arquivos, credenciais e outros recursos.
Para habilitar a revisão automática com review: "auto_review", execute o executor padrão em um contêiner que ofereça suporte a ambientes isolados e permita que o Codex crie um sandbox. A revisão automática aplica um perfil de permissões que usa workspace-write como base e restringe o acesso à rede. Verifique os pré-requisitos da revisão automática antes de habilitá-la.
Crie o diretório de trabalho e instale a CLI do Codex no ambiente. Este exemplo usa /workspace:
mkdir -p /workspace
npm install -g @openai/codex@alpha
Acesso à rede
Permita conexões de saída para os seguintes hosts:
https://api.openai.compara registrar o ambiente.wss://codex-cloud-environments.chatgpt.compara receber comandos e enviar resultados.
Autenticação
Use OPENAI_API_KEY nas requisições do aplicativo. Conceda a essa chave as permissões api.agents.read e api.agents.write para operações de sessão e api.responses.write para inferência do modelo. Adicione api.vaults.read e api.vaults.write se o aplicativo gerenciar cofres.
Crie uma chave de ambiente separada na aba Agentes do painel da plataforma. A chave deve pertencer à mesma organização e ao mesmo projeto da sessão, além de pertencer ao usuário ou à conta de serviço que detém a sessão. Defina todas as demais permissões como Nenhuma.
No aplicativo ou no serviço de provisionamento, atribua essa chave de ambiente a OPENAI_EXECUTOR_API_KEY. Passe o valor para o sandbox na variável CODEX_API_KEY, que o codex exec-server lê. Mantenha a OPENAI_API_KEY do aplicativo fora do sandbox.
O código gerado pelo agente pode ler a chave de ambiente, mas ela só permite conectar ambientes. A chave não autoriza nenhuma outra ação na API. Mantenha-a fora do código-fonte, das imagens de contêiner e dos logs. Substitua ou revogue a chave quando necessário.
Crie uma sessão
Execute este exemplo no aplicativo, fora do ambiente. Se você já tiver uma sessão auto-hospedada, reutilize-a.
import OpenAI from "openai";
const client = new OpenAI();
const session = await client.beta.agents.sessions.create({
agent: {
model: "gpt-6-astra",
instructions:
"You are a helpful coding assistant. Write clean code and verify that it works.",
},
environment: {
type: "self_hosted",
workspace_directory: "/workspace",
},
});
console.log(session);Armazene session.id junto com o estado da conversa no aplicativo. Passe session.environment.id e session.environment.remote_url para o executor. Use a URL remota sem alterações, inclusive ao se reconectar. Para usar um agente já armazenado, consulte Configuração de agentes.
Você pode reutilizar a imagem do ambiente, workspace_directory e capability_directories em várias sessões. Cada sessão tem seu próprio ID de ambiente e precisa de um executor próprio. Os modelos de ambiente da API se aplicam apenas a ambientes hospedados pela OpenAI.
Inicie o executor
Abra o fluxo de eventos da sessão no aplicativo para receber eventos de conexão. Em seguida, execute o comando abaixo dentro do ambiente, com a chave de ambiente configurada em CODEX_API_KEY conforme descrito acima. Substitua os marcadores pelos valores do ambiente retornados pela API:
codex exec-server \
--remote "<session.environment.remote_url>" \
--environment-id "<session.environment.id>"
Mantenha o executor em execução enquanto o agente trabalha.
Envie tarefas e monitore a conexão
Envie dados de entrada pelo aplicativo enquanto o fluxo de eventos estiver aberto. Para começar a trabalhar, o agente precisa de um ambiente conectado e de dados de entrada do usuário.
O fluxo informa os seguintes estados de conexão:
agent.session.environment.pending: a sessão aguarda a conexão do executor.agent.session.environment.connected: o ambiente está pronto.agent.session.environment.failed: a conexão falhou. Verifique o erro do ambiente e os logs do executor.
Continue acompanhando o fluxo para ver o resultado do turno e a saída gerada. Consulte Ciclo de vida do ambiente para gerenciar a inicialização, a reconexão e o encerramento pelo aplicativo ou via webhooks.
Provedores de sandbox
Escolha um provedor de sandbox para executar código e trabalhar com arquivos. Consulte Ciclo de vida do sandbox para comparar o provisionamento gerenciado pelo aplicativo com o gerenciado por webhooks.
| Provedor | Guia |
|---|---|
| AWS Lambda MicroVMs | Configuração da AWS |
| Blaxel | Configuração do Blaxel |
| Cloudflare | Configuração da Cloudflare |
| Databricks Sandbox | Configuração do Databricks |
| Daytona | Configuração do Daytona |
| DigitalOcean | Configuração da DigitalOcean |
| E2B | Configuração do E2B |
| Modal | Configuração do Modal |
| Oracle Cloud Infrastructure (OCI) | Configuração da OCI |
| Vercel | Configuração da Vercel |
Para gerenciar o provisionamento via webhooks, implemente uma função para tratar os eventos seguindo as instruções em Ciclo de vida do sandbox e usando o SDK ou a API do provedor. Defina explicitamente quem é responsável pelo provisionamento e quais políticas regem a limpeza dos recursos.