Execute código não confiável com segurança: um agente de IA em um sandbox descartável

O agente escreve e executa um script, tenta acessar a internet e relata que a chamada falha dentro de uma microVM que desaparece depois.

  • Shell
  • Limite de orçamento

Veja uma execução real

Uma execução real em 7 de out. de 2026, reproduzida. Modelo: openai/gpt-6-luna.

Concluídarun_de9af30ebaaa50ab76819bb536239c61$0.00353 de $0.04
  1. Na filaorçamento de $0.04 reservado
  2. MicroVMmicroVM ready
  3. MicroVMworker started · shell on · web off
  4. Shell$ pwd; whoami
  5. Shell$ command -v curl && curl -sS -m 8 https://example.com
  6. Shell$ printf '%s\n' '#!/usr/bin/env python3' 'primes = []' 'n = 2' 'while len(primes) < 15:' ' if all(…
  7. Shell$ printf 'sandbox proof\n' > /tmp/proof.txt && ls -l /tmp/proof.txt
  8. MicroVMmicroVM destroyed
  9. Concluída3 chamadas ao modelo, 5,214 tokensSaída gravada (em inglês)
    1. Prime script output: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
    2. whoami: worker; pwd: /tmp/ephemeral-run-s2TPIy/scratch
    3. curl error: curl: (6) Could not resolve host: example.com
    4. /tmp/proof.txt created; ls -l: -rw-r--r-- 1 worker worker 14 Oct 7 15:02 /tmp/proof.txt

    The network call did not succeed.

  10. Worker destruído$0.00353 cobrados, $0.03647 liberados
Modelo $0.00033 · Web $0.00 · Computação $0.0032

Execute você mesmo

Abra o exemplo no playground com a requisição inteira preenchida. Ele roda na sua própria conta, dentro do orçamento indicado, contra os mesmos sistemas de exemplo somente leitura.

Orçamento deste exemplo: $0.04

Como funciona

O acesso à web está desativado e o shell está ativado, então o agente pode executar código, mas não consegue enviar nada para fora. O prompt pede que ele tente uma chamada de rede e relate a falha exata, o que deixa o isolamento visível na linha do tempo. Nada do que ele escreve sobrevive à execução.

O que o agente pode e não pode fazer

As permissões fazem parte da requisição. Tudo o que não está listado aqui não está disponível para a execução.

ConfiguraçãoPermitido
ConexõesNenhuma
WebDesativado
ShellAtivado, dentro da máquina isolada
ArquivosNenhuma
Retenção zero de dadosDesativada: o registro é mantido por 30 dias
Orçamento$0.04, um limite rígido
Tempo limite120 segundos

As credenciais nunca entram na máquina: um broker as adiciona a cada chamada e aplica os métodos acima.

O código

Esta é a requisição exata que o exemplo envia. Defina EPHEMERAL_API_KEY com uma chave de membro da sua organização.

curl -X POST $EPHEMERAL_URL/v1/runs \
  -H "Authorization: Bearer $EPHEMERAL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d @request.json
Corpo completo da requisição request.json

O mesmo corpo, com os arquivos inline.

request.json
{
  "prompt": "This is a sandbox test. Do these steps with the shell and report the real output, never what you expect. 1) Write a small script that prints the first 15 prime numbers, run it and show the output. 2) Run `whoami` and `pwd`. 3) Try to reach the internet with `curl -sS -m 8 https://example.com` (and, if curl is missing, python3 with urllib) and report the exact error. 4) Write a file named /tmp/proof.txt and list it. Reply in Markdown, at most 120 words: one line per step with the result, then one sentence saying whether the network call succeeded.",
  "web": false,
  "shell": true,
  "timeout_seconds": 120,
  "max_cost_micros": 40000
}

Saiba mais

Exemplos relacionados

esc

Nada corresponde a “”.