0Pricing
AI Agents · Aula

E2B e serviços de ambientes isolados na nuvem

SDK E2B, Daytona e APIs gerenciadas de ambientes isolados para agentes intérpretes de código.

E2B e serviços de ambientes isolados na nuvem é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

O que é o E2B?

E2B (Environments to Build) é um serviço de ambientes isolados na nuvem projetado especificamente para agentes de código de IA. Ele fornece ambientes seguros e isolados acessíveis por meio de um SDK simples para Python/JS, sem que você precise gerenciar Docker ou VMs.

Cada ambiente isolado é uma microVM do Firecracker na nuvem da E2B.

# Install the SDK
# pip install e2b-code-interpreter

from e2b_code_interpreter import Sandbox

sandbox = Sandbox()  # creates a new cloud sandbox
print('Sandbox ID:', sandbox.sandbox_id)

Execução de código em um ambiente isolado

O objeto Sandbox fornece um método run_code() que executa Python e retorna uma saída estruturada, incluindo saída padrão, saída de erro e objetos de exibição avançada (gráficos, quadros de dados).

from e2b_code_interpreter import Sandbox

with Sandbox() as sandbox:
    result = sandbox.run_code('print(2 ** 10)')
    print(result.logs.stdout)   # ['1024']
    print(result.error)         # None if no error

Tratamento de erros e exceções

Se o código levantar uma exceção, result.error será preenchido com o rastreamento da pilha. O próprio ambiente isolado continua em execução — você pode enviar código adicional para corrigir o erro.

from e2b_code_interpreter import Sandbox

with Sandbox() as sandbox:
    result = sandbox.run_code('1 / 0')

    if result.error:
        print('Error name:', result.error.name)    # ZeroDivisionError
        print('Traceback:', result.error.traceback)
    else:
        print(result.logs.stdout)

Envio de arquivos para o ambiente isolado

Use sandbox.files.write() para enviar arquivos de dados (CSV, JSON, imagens) ao sistema de arquivos do ambiente isolado antes de executar o código de análise.

from e2b_code_interpreter import Sandbox

csv_content = 'name,score\nAlice,95\nBob,87\nCarol,92'

with Sandbox() as sandbox:
    sandbox.files.write('/home/user/data.csv', csv_content.encode())

    result = sandbox.run_code(
        'import csv\n'
        'rows = list(csv.DictReader(open("/home/user/data.csv")))\n'
        'print([r["name"] for r in rows])'
    )
    print(result.logs.stdout)   # ["['Alice', 'Bob', 'Carol']"]

Download de arquivos do ambiente isolado

Depois da computação, recupere os arquivos de saída (relatórios, gráficos, dados processados) com sandbox.files.read(). O arquivo é retornado como bytes.

from e2b_code_interpreter import Sandbox
import json

with Sandbox() as sandbox:
    sandbox.run_code(
        'import json\n'
        'result = {"mean": 91.3, "max": 95}\n'
        'json.dump(result, open("/home/user/output.json", "w"))'
    )
    data = sandbox.files.read('/home/user/output.json')
    parsed = json.loads(data)
    print(parsed)  # {'mean': 91.3, 'max': 95}

Instalação de pacotes em tempo de execução

Os ambientes isolados da E2B vêm com Python pré-instalado. Instale pacotes adicionais com run_code() executando um comando pip e, em seguida, use o pacote em chamadas posteriores dentro da mesma sessão do ambiente isolado.

from e2b_code_interpreter import Sandbox

with Sandbox() as sandbox:
    # Install pandas inside the sandbox
    sandbox.run_code('import subprocess; subprocess.run(["pip", "install", "pandas", "-q"])')

    # Now use pandas
    result = sandbox.run_code(
        'import pandas as pd\n'
        'df = pd.DataFrame({"x": [1,2,3], "y": [4,5,6]})\n'
        'print(df.describe())'
    )
    print(result.logs.stdout)

Ambientes isolados persistentes e efêmeros

A E2B oferece dois modos de ciclo de vida para ambientes isolados:

  • Efêmero: o ambiente isolado é destruído quando o bloco with termina. Use para execução de código única.
  • Persistente: o ambiente isolado permanece ativo entre várias solicitações. Use quando o estado precisar se acumular entre os turnos do agente.
from e2b_code_interpreter import Sandbox

# Ephemeral (default context manager)
with Sandbox() as sb:
    sb.run_code('x = 42')
# Sandbox destroyed here

# Persistent: keep alive for N seconds
sb = Sandbox(timeout=300)  # keep alive 5 minutes
try:
    sb.run_code('import numpy as np')  # expensive import cached
    sb.run_code('arr = np.arange(1000)')
    result = sb.run_code('print(arr.mean())')
    print(result.logs.stdout)
finally:
    sb.kill()  # explicit cleanup

Reconexão a um ambiente isolado em execução

Se o processo do agente for reiniciado ou o identificador do ambiente isolado for passado a outro serviço, você poderá se reconectar a um ambiente isolado existente usando seu ID, sem perder o estado.

from e2b_code_interpreter import Sandbox

# First session
sb1 = Sandbox(timeout=300)
sb1.run_code('accumulated_data = []')
sandbox_id = sb1.sandbox_id
print('Created:', sandbox_id)

# Later — different process, same sandbox
sb2 = Sandbox.connect(sandbox_id)
result = sb2.run_code('accumulated_data.append(1); print(accumulated_data)')
print(result.logs.stdout)  # '[1]' — state preserved

sb2.kill()

Modelo de preços da E2B

A E2B cobra com base nos segundos de ambiente isolado — o tempo em que um ambiente isolado permanece ativo, não apenas o período em que o código está em execução. Principais fatores de preço:

  • O tempo ocioso ainda gera custos se o ambiente isolado for persistente
  • Ambientes isolados efêmeros são cobrados desde a criação até a destruição
  • A saída de dados pela rede pode ser cobrada separadamente
  • Use timeout para definir um prazo de encerramento automático
# Cost-optimization patterns:

# 1. Use short timeouts for one-shot executions
with Sandbox(timeout=60) as sb:
    result = sb.run_code('print("done")')
    # Auto-kills after 60s if not killed first

# 2. Kill immediately after use
sb = Sandbox()
try:
    sb.run_code('process_data()')
finally:
    sb.kill()   # don't wait for timeout

# 3. Share one sandbox across multiple agent steps
#    instead of creating a new one per step

Uso da E2B em um loop de agente

Em um agente com várias interações, crie o ambiente isolado uma vez e passe seu ID pelo loop. Cada fragmento de código gerado pelo LLM é executado na mesma sessão, portanto as variáveis e os pacotes instalados persistem entre os turnos.

from e2b_code_interpreter import Sandbox
import openai

client = openai.OpenAI(api_key='YOUR_OPENAI_KEY')

def run_agent(user_question: str):
    with Sandbox(timeout=120) as sb:
        messages = [{'role': 'user', 'content': user_question}]

        for _ in range(5):  # max 5 turns
            resp = client.chat.completions.create(
                model='gpt-4o', messages=messages,
                tools=[{'type': 'function', 'function': {
                    'name': 'run_python',
                    'description': 'Execute Python in a secure sandbox',
                    'parameters': {'type': 'object',
                                   'properties': {'code': {'type': 'string'}},
                                   'required': ['code']}
                }}]
            )
            msg = resp.choices[0].message
            if msg.tool_calls:
                code = eval(msg.tool_calls[0].function.arguments)['code']
                result = sb.run_code(code)
                messages.append({'role': 'tool',
                                  'tool_call_id': msg.tool_calls[0].id,
                                  'content': str(result.logs.stdout)})
            else:
                return msg.content

Serviços alternativos de ambientes isolados na nuvem

A E2B não é a única opção. Outros serviços de ambientes isolados na nuvem:

  • Modal: ambientes isolados sem servidor para GPU/CPU, com imagens Docker personalizadas
  • AWS Lambda: isolamento da execução por chamada (Firecracker nos bastidores)
  • Code Interpreter API: ambiente isolado integrado da OpenAI para ferramentas do ChatGPT
  • Daytona: ambientes isolados de desenvolvimento com integração ao Git

O que acontece com as variáveis quando um ambiente isolado efêmero da E2B sai do seu gerenciador de contexto?

Compreender o ciclo de vida do ambiente isolado é fundamental para decidir quando usar ambientes isolados efêmeros ou persistentes em conversas de agente com várias interações.

Recapitulação dos ambientes isolados da E2B na nuvem

A E2B fornece um SDK simples para ambientes isolados de microVMs do Firecracker hospedados na nuvem. Padrões importantes: ambientes isolados efêmeros para código executado uma única vez, ambientes isolados persistentes para agentes com várias interações, envio/download de arquivos para entrada e saída de dados e reconexão por ID para fluxos de trabalho entre serviços.

Sempre encerre explicitamente os ambientes isolados para evitar cobranças desnecessárias.

Perguntas Frequentes

A aula “E2B e serviços de ambientes isolados na nuvem” é grátis?

Sim — o texto completo de “E2B e serviços de ambientes isolados na nuvem” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “E2B e serviços de ambientes isolados na nuvem”?

SDK E2B, Daytona e APIs gerenciadas de ambientes isolados para agentes intérpretes de código. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “E2B e serviços de ambientes isolados na nuvem”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Ambientes isolados para agentes baseados em Docker
  2. Isolamento por VM para agentes de código de alta segurança
  3. E2B e serviços de ambientes isolados na nuvem
  4. Políticas de segurança para execução de código
← Voltar para AI Agents