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

Sandboxes hospedados em infraestrutura própria

Conecte seus recursos computacionais e arquivos a uma sessão de agente.

Conecte seu próprio ambiente quando quiser ter mais controle sobre o ambiente do agente ou usar recursos computacionais em que você confia. O ambiente pode ser um notebook, um contêiner ou um sandbox remoto. Para que a OpenAI provisione o ambiente, use um sandbox hospedado pela OpenAI.

Como a conexão funciona

A OpenAI executa o harness do agente. Você executa codex exec-server, o executor, dentro do seu ambiente. Ele executa comandos de shell, lê e grava arquivos e usa servidores MCP locais a pedido do harness.

O executor se registra na API usando um ID de ambiente e uma chave de API restrita. Em seguida, conecta-se via WebSocket para receber comandos e retornar resultados. Todas as conexões são de saída. O executor se reconecta se a conexão cair.

O executor do sandbox inicia uma conexão de saída com a API de Agentes e troca comandos e resultados. O sandbox armazena a chave e o ID do ambiente.

Prepare seu ambiente

Prepare os arquivos e as dependências de que seu 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.

Crie o diretório de trabalho e instale o Codex CLI dentro do ambiente. Este exemplo usa /workspace:

mkdir -p /workspace
npm install -g @openai/codex@alpha

Acesso à rede

Permita conexões de saída para estes hosts:

  • https://api.openai.com para o registro do ambiente.
  • wss://codex-cloud-environments.chatgpt.com para comandos e resultados.

Autenticação

Use OPENAI_API_KEY para as requisições do aplicativo. Conceda a essa chave as permissões api.agents.read e api.agents.write para operações de sessão, além de api.responses.write para inferência de modelos. 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. Ela deve pertencer à mesma organização, ao mesmo projeto e ao mesmo usuário ou conta de serviço que possui a sessão. Defina todas as outras permissões como Nenhuma.

Defina OPENAI_EXECUTOR_API_KEY com o valor dessa chave de ambiente no aplicativo ou serviço de provisionamento. Passe esse valor para o sandbox como CODEX_API_KEY, que é lido por codex exec-server. Mantenha a chave OPENAI_API_KEY do aplicativo fora do sandbox.

O código gerado pelo agente pode ler a chave de ambiente, mas ela permite apenas conectar ambientes. Ela não pode autorizar nenhuma outra ação da API. Mantenha essa chave fora do código-fonte, das imagens de contêiner e dos logs. Faça a rotação da chave ou revogue-a quando necessário.

Crie uma sessão

Execute este exemplo na sua aplicação, fora do ambiente. Se você já tiver uma sessão hospedada em infraestrutura própria, reutilize-a.

Crie uma sessão com seu próprio ambiente
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 da sua aplicação. Passe session.environment.id e session.environment.remote_url para o executor. Use a URL remota sem alterações, inclusive ao se reconectar. Consulte Configuração de Agentes para usar um agente armazenado.

Você pode reutilizar a imagem do ambiente, workspace_directory e capability_directories entre sessões. Cada sessão tem seu próprio ID de ambiente e precisa de seu próprio executor. 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 a partir do aplicativo para receber eventos de conexão. Em seguida, execute este comando dentro do ambiente com a chave de ambiente configurada como CODEX_API_KEY, conforme descrito acima. Substitua os placeholders pelos valores de ambiente retornados pela API:

codex exec-server \
  --remote "<session.environment.remote_url>" \
  --environment-id "<session.environment.id>"

Deixe o executor em execução enquanto o agente trabalha.

Envie tarefas e monitore a conexão

Envie entradas a partir da sua aplicação enquanto o fluxo de eventos permanece aberto. O agente precisa tanto de um ambiente conectado quanto de uma entrada do usuário para começar a trabalhar.

O fluxo informa estes estados de conexão:

  • agent.session.environment.pending: A sessão está aguardando 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 obter o resultado e a saída do turno. Consulte Ciclo de vida do ambiente para gerenciar a inicialização, a reconexão e o encerramento a partir da sua aplicação ou por meio de 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 pela aplicação com o gerenciado por webhooks.

Para o provisionamento gerenciado por webhooks, implemente um manipulador usando o guia Ciclo de vida do sandbox e o SDK ou a API do seu provedor. Deixe explícitas a responsabilidade pelo provisionamento e as políticas de limpeza.