0Pricing
AI Agents · Lektion

E2B- und Cloud-Sandbox-Dienste

E2B SDK, Daytona und verwaltete Sandbox-APIs für Code-Interpreter-Agenten.

E2B- und Cloud-Sandbox-Dienste ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was ist E2B?

E2B (Environments to Build) ist ein cloudbasierter Sandbox-Dienst, der speziell für KI-Code-Agenten entwickelt wurde. Er bietet sichere, isolierte Umgebungen, die über ein einfaches Python/JS-SDK zugänglich sind, ohne dass Sie Docker oder VMs selbst verwalten müssen.

Jede Sandbox ist eine Firecracker-MicroVM in der E2B-Cloud.

# 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)

Code in einer Sandbox ausführen

Das Objekt Sandbox stellt eine Methode run_code() bereit, die Python ausführt und strukturierte Ausgaben einschließlich stdout, stderr und umfangreicher Anzeigeobjekte (Diagramme, DataFrames) zurückgibt.

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

Fehler und Ausnahmen behandeln

Wenn der Code eine Ausnahme auslöst, enthält result.error den Traceback. Die Sandbox selbst läuft weiter – Sie können Folgecode senden, um den Fehler zu beheben.

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)

Dateien in die Sandbox hochladen

Verwenden Sie sandbox.files.write(), um Datendateien (CSV, JSON, Bilder) vor der Ausführung des Analyse-Codes in das Dateisystem der Sandbox hochzuladen.

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']"]

Dateien aus der Sandbox herunterladen

Rufen Sie nach der Berechnung Ausgabedateien (Berichte, Diagramme, verarbeitete Daten) mit sandbox.files.read() ab. Die Datei wird als Bytes zurückgegeben.

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}

Pakete zur Laufzeit installieren

E2B-Sandboxes enthalten eine vorinstallierte Python-Umgebung. Installieren Sie zusätzliche Pakete mit run_code(), indem Sie einen pip-Befehl ausführen, und verwenden Sie das Paket anschließend in weiteren Aufrufen innerhalb derselben Sandbox-Sitzung.

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)

Ephemere und persistente Sandboxes

E2B unterstützt zwei Lebenszyklusmodi für Sandboxes:

  • Ephemer: Die Sandbox wird zerstört, wenn der with-Block verlassen wird. Verwenden Sie diesen Modus für einmalige Codeausführung.
  • Persistent: Die Sandbox bleibt über mehrere Anfragen hinweg aktiv. Verwenden Sie diesen Modus, wenn sich der Zustand über mehrere Agent-Runden hinweg ansammeln soll.
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

Verbindung zu einer laufenden Sandbox wiederherstellen

Wenn Ihr Agent-Prozess neu gestartet wird oder die sandbox_id an einen anderen Dienst übergeben wird, können Sie über die ID eine Verbindung zu einer vorhandenen Sandbox herstellen, ohne den Zustand zu verlieren.

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()

Preismodell von E2B

E2B rechnet auf Grundlage von Sandbox-Sekunden ab – also der Zeit, während der eine Sandbox aktiv ist, nicht nur der Zeit, in der Code ausgeführt wird. Wichtige Preisfaktoren:

  • Leerlaufzeit verursacht weiterhin Kosten, wenn die Sandbox persistent ist
  • Ephemere Sandboxes werden vom Erstellen bis zum Zerstören abgerechnet
  • Ausgehender Netzwerkverkehr kann separat berechnet werden
  • Verwenden Sie timeout, um eine Frist für die automatische Beendigung festzulegen
# 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

E2B in einer Agent-Schleife verwenden

Erstellen Sie in einem Agenten mit mehreren Gesprächsrunden die Sandbox einmal und übergeben Sie ihre ID durch die Schleife. Jedes vom LLM erzeugte Codefragment wird in derselben Sitzung ausgeführt, sodass Variablen und installierte Pakete über die Runden hinweg erhalten bleiben.

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

Alternative Cloud-Sandbox-Dienste

E2B ist nicht die einzige Option. Weitere Cloud-Sandbox-Dienste:

  • Modal: serverlose GPU-/CPU-Sandboxes, benutzerdefinierte Docker-Images
  • AWS Lambda: Isolierung der Ausführung pro Aufruf (im Hintergrund Firecracker)
  • Code Interpreter API: integrierte Sandbox von OpenAI für ChatGPT-Tools
  • Daytona: Entwicklungs-Sandboxes mit Git-Integration

Was geschieht mit Variablen, wenn eine ephemere E2B-Sandbox ihren Kontextmanager-Block verlässt?

Das Verständnis des Lebenszyklus einer Sandbox ist entscheidend für die Entscheidung, wann Sie in mehrstufigen Agent-Gesprächen ephemere oder persistente Sandboxes verwenden.

Zusammenfassung zu E2B-Cloud-Sandboxes

E2B bietet ein einfaches SDK für cloudbasierte Firecracker-MicroVM-Sandboxes. Wichtige Muster sind: ephemere Sandboxes für einmalige Codeausführung, persistente Sandboxes für Agenten mit mehreren Gesprächsrunden, Datei-Upload und -Download für Daten hinein und heraus sowie Wiederverbinden per ID für dienstübergreifende Workflows.

Beenden Sie Sandboxes immer explizit, um unnötige Kosten zu vermeiden.

Häufig gestellte Fragen

Ist die Lektion „E2B- und Cloud-Sandbox-Dienste“ kostenlos?

Ja — der vollständige Text von „E2B- und Cloud-Sandbox-Dienste“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „E2B- und Cloud-Sandbox-Dienste“?

E2B SDK, Daytona und verwaltete Sandbox-APIs für Code-Interpreter-Agenten. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Agents zu starten?

Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „E2B- und Cloud-Sandbox-Dienste“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?

Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Docker-basierte Agent-Sandboxes
  2. VM-Isolierung für hochsichere Code-Agenten
  3. E2B- und Cloud-Sandbox-Dienste
  4. Sicherheitsrichtlinien für die Codeausführung
← Zurück zu AI Agents