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

Prepare sandboxes com antecedência

Prepare um espaço de trabalho antes de iniciar uma sessão de agente.

Com a preparação antecipada de ambientes, você pode criar um sandbox hospedado pela OpenAI, instalar pacotes, carregar arquivos e executar comandos de configuração antes de criar uma sessão de agente. Quando chegar uma tarefa, vincule o ambiente preparado a uma sessão e inicie o agente.

Prepare o ambiente com antecedência quando a baixa latência for um requisito essencial. Por exemplo, um aplicativo de relatórios pode preparar suas dependências de Python enquanto o usuário escolhe um conjunto de dados. Da mesma forma, um fluxo de desenvolvimento pode preparar o espaço de trabalho enquanto o usuário escreve uma solicitação. Antecipar a configuração pode reduzir o tempo de espera do usuário.

Como funciona

O ambiente é o espaço de trabalho onde o agente executa ferramentas. A sessão armazena a configuração e a conversa do agente. Você pode preparar o espaço de trabalho de forma independente e vinculá-lo a uma sessão quando precisar dela.

O processo tem três etapas:

  1. Crie um ambiente. Forneça os pacotes, os arquivos e os comandos de configuração necessários para a tarefa.
  2. Aguarde até que o ambiente esteja pronto. Consulte o ambiente até que o status seja ready ou use um webhook.
  3. Inicie uma sessão. Informe o ID do ambiente ao criar a sessão.

Você também pode vincular o ambiente enquanto a configuração estiver em andamento. O agente só terá acesso ao espaço de trabalho quando a configuração terminar.

Preços

A preparação antecipada de um sandbox é gratuita, inclusive o uso do contêiner antes de vincular o sandbox a uma sessão. Sandboxes preparados com antecedência expiram após 5 minutos se não forem vinculados a uma sessão.

Depois que você vincula um sandbox preparado com antecedência a uma sessão, passam a valer os preços padrão de uso de contêineres.

Prepare um espaço de trabalho para gerar relatórios

Este exemplo instala o pandas e carrega um pequeno arquivo CSV antes de iniciar um agente. Em seguida, o agente usa o espaço de trabalho preparado para calcular o total.

Para seguir este guia, use uma destas versões do SDK ou uma versão posterior para a linguagem escolhida: 3.28.0 para Python, 7.32.0 para Node.js, 4.80.0 para Java ou 0.103.0 para Ruby.

1. Crie o ambiente

Envie a configuração do espaço de trabalho para POST /v1/agents/environments:

from openai import OpenAI

client = OpenAI()
environment = client.beta.agents.environments.create(
    environment={
        "type": "openai_hosted",
        "packages": {"python": ["pandas==2.2.3"]},
        "files": [
            {
                "type": "inline",
                "path": "/workspace/amounts.csv",
                "data": "YW1vdW50CjEwCjIwCjMwCg==",
            }
        ],
        "setup_commands": [
            {
                "command": 'python -c "import pandas; print(pandas.__version__)"',
                "cwd": "/workspace",
            }
        ],
    }
)
environment_id = environment.id
print(environment_id)

Os exemplos com SDK salvam o id retornado para as próximas etapas. Se estiver usando cURL, salve esse valor em uma variável do shell:

ENVIRONMENT_ID="ccarenv_REPLACE_WITH_RETURNED_ID"

Defina environment.type como openai_hosted ao criar um ambiente independente.

2. Verifique se o ambiente está pronto

Consulte o ambiente usando o ID salvo na etapa 1:

current = client.beta.agents.environments.retrieve(environment_id)
print(current.status)

Enquanto a configuração estiver em andamento, o status será pending. Quando o status mudar para ready, o espaço de trabalho estará pronto e poderá ser vinculado a uma sessão.

O fato de o ambiente estar pronto não significa que haja um agente conectado. O ambiente pode ter o status ready antes mesmo de existir uma sessão.

Para evitar consultas repetidas, configure um endpoint de webhook do projeto para receber os seguintes eventos:

  • agent.environment.ready
  • agent.environment.failed

Se vincular o ambiente antes do fim da configuração, acompanhe os eventos agent.session.environment.ready ou agent.session.environment.failed da sessão para verificar o status da configuração. Use o fluxo de resposta recebido ao criar a sessão com "stream": true ou abra uma conexão com GET /v1/agents/sessions/{session_id}/events. Consulte Eventos da sessão para saber mais sobre a transmissão de eventos.

3. Vincule o ambiente e execute uma tarefa

Crie uma sessão informando o ID do ambiente que você salvou, o agente e a primeira entrada para ele:

stream = client.beta.agents.sessions.create(
    agent={"model": "gpt-6-astra"},
    environment={"type": "openai_hosted", "environment_id": environment_id},
    input="Use pandas to read /workspace/amounts.csv, calculate the sum of the amount column, and report the total.",
    stream=True,
)
with stream:
    for event in stream:
        print(event.model_dump_json())

Erros comuns

Use a mensagem de erro e o status atual do ambiente para decidir como resolver o problema.

Um ambiente compartilhado recém-criado aceita até 128 sessões vinculadas. Você pode reutilizá-lo em várias sessões, que compartilharão o mesmo espaço de trabalho. Ambientes mais antigos ainda podem ter um ciclo de vida limitado a uma única sessão.

Erro ou sintoma Como resolver
Tentativa de vincular um ambiente expirado. Crie outro ambiente e use o novo ID. Ambientes não utilizados expiram após 5 minutos. Tentar novamente com o ID de um ambiente expirado não restaura o espaço de trabalho.
404: ambiente não encontrado. Verifique o ID do ambiente e use a mesma organização, o mesmo projeto e a mesma identidade usados na solicitação de criação. Se o ambiente tiver expirado ou não estiver mais disponível, crie outro.
409: o ambiente compartilhado atingiu o limite de sessões. Um ambiente compartilhado aceita até 128 sessões vinculadas. Reutilize uma sessão existente ou crie outro ambiente para as sessões adicionais.

Use um modelo de ambiente salvo

Se várias tarefas exigirem os mesmos pacotes e a mesma configuração, salve a configuração do ambiente como modelo e informe o ID do modelo ao criar cada ambiente com antecedência:

from openai import OpenAI

client = OpenAI()
environment = client.beta.agents.environments.create(
    environment={
        "type": "openai_hosted",
        "environment_template_id": "envtmpl_REPLACE_WITH_TEMPLATE_ID",
    }
)
print(environment.id)

Prepare um sandbox com antecedência para o Uso do computador

Para tarefas no navegador, prepare o navegador gerenciado e a tela virtual antes de iniciar a sessão. Inclua desktop.enabled ao criar o ambiente:

from openai import OpenAI

client = OpenAI()
environment = client.beta.agents.environments.create(
    environment={
        "type": "openai_hosted",
        "desktop": {"enabled": True},
    }
)
print(environment.id)

Ao criar uma sessão, use o ID salvo para vincular o ambiente e disponibilize a ferramenta computer_use para o agente. A sessão usa a configuração da área de trabalho salva no ambiente. Consulte Uso do computador para saber como configurar a ferramenta e aprovar origens no navegador.

Liste seus ambientes

Use GET /v1/agents/environments para encontrar os ambientes ativos criados com a sua identidade na organização e no projeto atuais:

environments = client.beta.agents.environments.list(limit=20, order="desc")
for item in environments.data:
    print(item.model_dump_json())

A lista inclui ambientes tanto antes quanto depois de serem vinculados a uma sessão, com os status pending, ready, connected, disconnected ou suspended. Ela exclui ambientes que falharam, expiraram, foram excluídos ou encerrados. Um ambiente que aparece na lista já pode estar vinculado a uma ou mais sessões.

Por padrão, os resultados aparecem do mais recente para o mais antigo. Se has_more for verdadeiro, defina after com o valor de last_id da resposta anterior para buscar a próxima página. limit aceita valores de 1 a 100 e tem valor padrão 20. order aceita asc ou desc.

Duração e reutilização

  • Várias sessões podem compartilhar um ambiente. Informe o mesmo environment_id ao criar cada sessão. As sessões compartilham o espaço de trabalho em execução, incluindo arquivos, processos, pacotes instalados e a configuração do ambiente. Cada sessão mantém seu próprio histórico de conversa. As alterações no espaço de trabalho ficam visíveis para as outras sessões vinculadas. Por isso, crie ambientes separados quando as tarefas exigirem espaços de trabalho distintos. Um ambiente compartilhado aceita até 128 sessões vinculadas. Esse comportamento se aplica aos ambientes independentes recém-criados. Os ambientes mais antigos mantêm seu ciclo de vida original.
  • Ambientes não utilizados expiram. Um ambiente que não for vinculado a uma sessão expira após 5 minutos. Prepare o ambiente perto do horário previsto para o início da tarefa.
  • Use a mesma identidade que criou o ambiente. Para consultar, listar ou vincular ambientes, use a mesma organização, o mesmo projeto e a mesma identidade autenticada usados na criação. Chaves de API diferentes da mesma identidade podem acessar os mesmos ambientes, inclusive após a rotação das chaves.
  • Ambientes compartilhados expiram por inatividade. O prazo de 20 minutos de inatividade começa quando você vincula a primeira sessão. Qualquer atividade em uma sessão vinculada ou por meio da API de arquivos do ambiente prorroga esse prazo. Enquanto houver trabalho pendente ou turnos em andamento, o ambiente não expira por inatividade. Quando você exclui uma sessão, ela é removida do ambiente e o espaço de trabalho compartilhado é preservado. Mesmo após a exclusão da última sessão, o ambiente continua disponível para vincular outras sessões até o fim do prazo de inatividade. A API não oferece um endpoint específico para excluir um ambiente.

Repita a solicitação de criação com segurança

Ao criar um ambiente, você pode enviar o cabeçalho Idempotency-Key. Se a solicitação exceder o tempo limite ou a resposta se perder, tente novamente com a mesma chave e o mesmo corpo da solicitação para evitar a criação de outro ambiente.

Enquanto o ambiente original estiver disponível, uma nova tentativa concluída retornará o ID e o estado atual desse ambiente. Uma solicitação com uma chave ainda retida pode retornar 409 se a criação ainda estiver em andamento, se o resultado da criação for incerto, se o ambiente não estiver mais disponível ou se os parâmetros forem diferentes. Nenhum desses conflitos cria um ambiente substituto. A API retém as chaves por 24 horas. Após esse prazo, repetir a solicitação com a mesma chave pode criar outro ambiente. Use uma nova chave quando a intenção for criar um novo ambiente.