E2B Sandboxes
Wie CodeCourier E2B nutzt, um isolierte Linux-Cloud-VMs für KI-Coding-Agents bereitzustellen – inklusive SDK-Nutzung, Lebenszyklusverwaltung und Konfiguration.
E2B (kurz für "Environment to Bot") ist der Cloud- Sandbox-Anbieter, der die gesamte Codeausführung in CodeCourier antreibt. Jedes Mal, wenn ein KI-Coding-Agent eine Aufgabe ausführt -- ob über eine eigenständige Sandbox, einen Workflow-Run oder eine Issue-Discovery-Session -- geschieht das in einer E2B-Micro-VM. Diese Seite erklärt, was E2B bietet, wie CodeCourier damit integriert, die Konfigurationsoptionen und die Behebung häufiger Probleme.
Was E2B bietet
E2B bietet On-Demand isolierte virtuelle Cloud-Maschinen, die speziell für KI-Agent-Workloads konzipiert sind. Anders als Container sind E2B-Sandboxes vollwertige Micro-VMs mit eigenem Linux-Kernel und bieten dadurch stärkere Isolationsgarantien. Wichtige Fähigkeiten:
- Vollständige Linux-Umgebung -- Jede Sandbox führt ein vollständiges Linux-System mit Dateisystem, Netzwerk-Stack und Prozessausführung aus.
- Template-basierte Provisionierung -- Sandboxes werden aus vorgefertigten Templates erstellt, die gängige Entwicklungs-Tools (Node.js, Python, Git usw.) enthalten. Benutzerdefinierte Templates lassen sich mit zusätzlichen Tools und Konfigurationen bauen.
- Sub-Sekunden-Start -- E2B-Micro-VMs starten in unter einer Sekunde und sind dadurch für On-Demand-Nutzung praktikabel.
- Pausieren und Fortsetzen -- Sandboxes lassen sich pausieren, um Ressourcen zu sparen, und mit vollständigem Zustand wieder fortsetzen.
- Automatische Bereinigung -- Sandboxes haben konfigurierbare Timeouts und werden bei Ablauf automatisch zerstört, was Ressourcenlecks verhindert.
- Netzwerkzugang -- Sandboxes haben Zugriff auf das Internet, um Pakete zu installieren, Repositories zu klonen und mit APIs zu kommunizieren.
Wie CodeCourier E2B nutzt
Sandbox-Provisionierung
Wenn eine Sandbox erstellt wird (entweder durch einen Benutzer aus dem Dashboard oder durch einen Trigger.dev-Task während eines Workflow-Runs), ruft CodeCourier das E2B SDK auf, um eine neue Micro-VM bereitzustellen. Der Provisionierungsprozess umfasst diese Schritte:
- Template-Auswahl. Das System wählt anhand der CLI-Tool-Konfiguration ein Sandbox-Template aus. Es können benutzerdefinierte Templates angegeben werden, andernfalls wird das Standard-Template für das gewählte CLI-Tool verwendet (z. B. ein
claude-Template für Claude-Code-Sandboxes). - Umgebungskonfiguration. Umgebungsvariablen werden in die Sandbox injiziert, einschließlich API-Keys (Anthropic, OpenRouter, OpenAI, GitHub), Projekteinstellungen, System-Prompts und Skill-Dateien.
- VM-Erstellung. Die Methode
Sandbox.create()des E2B SDK wird mit Template-Namen und Konfigurationsoptionen, einschließlich Timeout-Dauer, aufgerufen. - Agent-Initialisierung. Nachdem die VM läuft, wird das CLI-Tool darin gestartet und der initiale Prompt (falls vorhanden) an den Agent gesendet.
Lebenszyklus-Verwaltung
CodeCourier verfolgt den Sandbox-Zustand entlang des folgenden Lebenszyklus:
"creating"-- E2B provisioniert die VM. Der Convex-Datensatz existiert, die VM ist aber noch nicht bereit."running"-- Die VM ist aktiv und der KI-Agent läuft."paused"-- Die VM wurde pausiert, um Ressourcen zu sparen. Sie kann fortgesetzt werden."killed"-- Die VM wurde beendet. Dies ist der Endzustand für erfolgreich abgeschlossene Sandboxes."error"-- Während der Provisionierung oder Ausführung trat ein Fehler auf.
Kommunikationsmuster
CodeCourier kommuniziert mit E2B-Sandboxes über ein Prozess- Ausführungsmodell. Der Trigger.dev-Task in der Orchestrierungs- schicht verwendet das E2B SDK, um Befehle innerhalb der Sandbox auszuführen, Ausgabe-Streams zu lesen und das Dateisystem zu verwalten. Nachrichten zwischen Benutzer und KI-Agent fließen über Convex (gespeichert in der Tabelle sandboxMessages) und werden vom Trigger.dev-Task an die Sandbox weitergeleitet.
Einrichtung des E2B API Keys
Um E2B-Sandboxes zu nutzen, benötigen Sie einen E2B-API-Key. Dieser Key wird von jedem Benutzer oder Projekt bereitgestellt, nicht auf Serverebene.
E2B API Key erhalten
- Erstellen Sie ein Konto auf e2b.dev.
- Navigieren Sie im E2B-Dashboard zum Bereich API-Keys.
- Erstellen Sie einen neuen API-Key.
- Fügen Sie den Key in CodeCourier in den Projekteinstellungen oder Benutzer-Präferenzen im E2B-Provider-Bereich hinzu.
Speicherung des Keys
E2B-API-Keys werden vor der Speicherung in der Convex-Datenbank verschlüsselt. Nur die letzten vier Zeichen werden im Klartext zur Anzeige gespeichert (z. B. ****abcd). Keys lassen sich auf zwei Ebenen setzen:
- Benutzerebene -- Gespeichert in der Tabelle
apiKeys. Gilt für alle Projekte, sofern nicht überschrieben. - Projektebene -- Gespeichert in der Tabelle
projectProviderKeys. Hat Vorrang vor Keys auf Benutzerebene.
Konfigurationsoptionen
Beim Erstellen einer Sandbox stehen folgende E2B-bezogene Konfigurationsoptionen über das Sandbox-Config-Objekt zur Verfügung:
- Template -- Das für die Sandbox zu verwendende E2B-Template. Templates definieren das Basis-System-Image, die vorinstallierten Tools und die Standardkonfiguration.
- Timeout -- Wie lange die Sandbox aktiv bleibt, bevor sie automatisch beendet wird. Angabe in Sekunden.
- CLI-Tool -- Welche KI-Coding-CLI in der Sandbox ausgeführt werden soll (Claude Code, OpenCode, Codex usw.). Dies bestimmt das ausgewählte Template, sofern kein benutzer- definiertes Template angegeben wird.
- Umgebungsvariablen -- Benutzerdefinierte Umgebungsvariablen, die beim Erstellen in die Sandbox injiziert werden. Diese können projektspezifische Einstellungen, Deploy Keys und Test-Anmeldedaten umfassen.
Benutzerdefinierte Templates
CodeCourier unterstützt benutzerdefinierte E2B-Templates für spezialisierte Workloads. Benutzerdefinierte Templates sind sinnvoll, wenn Sie benötigen:
- Zusätzliche System-Pakete über das Standard-Template hinaus
- Vorinstallierte Frameworks oder Sprach-Runtimes
- Benutzerdefinierte Systemkonfigurationen oder Dotfiles
- Spezifische CLI-Tool-Versionen
Template-Builds werden in der Tabelle templateBuilds verfolgt, die Tool-ID, Template-Name, CLI-Version, Build-Status und etwaige Fehler erfasst. Das Dashboard zeigt den Build-Fortschritt und erlaubt die Auswahl erfolgreicher Templates beim Erstellen von Sandboxes.
Kostenüberlegungen
E2B berechnet auf Basis der Sandbox-Laufzeit. Jede laufende Sandbox verbraucht Ressourcen, unabhängig davon, ob der KI-Agent aktiv arbeitet. So optimieren Sie die Kosten:
- Setzen Sie angemessene Timeouts, damit vergessene Sandboxes nicht endlos laufen.
- Nutzen Sie die Aktion "Alle Sandboxes beenden", um aufzuräumen, wenn Sie fertig sind.
- Überwachen Sie die Sandbox-Laufzeit im Nutzungs-Dashboard (siehe Nutzungs-Tracking).
- Bei iterativen Workflows wiederverwendet das Designer-Checker- Muster dieselbe Sandbox über mehrere Iterationen, anstatt jedes Mal neue zu erstellen.
Fehlerbehebung
Sandbox kann nicht erstellt werden
- Prüfen Sie Ihren E2B-API-Key. Stellen Sie sicher, dass er gültig und nicht abgelaufen ist. Erzeugen Sie gegebenenfalls einen neuen Key im E2B-Dashboard.
- Verfügbarkeit des Templates prüfen. Wenn Sie ein benutzerdefiniertes Template nutzen, stellen Sie sicher, dass es erfolgreich gebaut wurde.
- E2B-Servicestatus prüfen. Besuchen Sie die E2B-Statusseite, um zu bestätigen, dass der Dienst verfügbar ist.
Sandbox läuft vorzeitig ab
- Erhöhen Sie das Timeout in Ihrer Sandbox- oder Workflow- Konfiguration. Der Standardwert kann für komplexe Aufgaben zu kurz sein.
Agent kann nicht auf das Internet zugreifen
- E2B-Sandboxes haben standardmäßig Internetzugang. Wenn die Paketinstallation fehlschlägt, prüfen Sie, ob die Paket- Registry erreichbar ist und ob die DNS-Auflösung innerhalb der Sandbox funktioniert.
API-Key-Fehler innerhalb der Sandbox
- Stellen Sie sicher, dass die erforderlichen Provider-Keys (Anthropic, GitHub usw.) in Ihren Projekteinstellungen konfiguriert sind. Fehlende Keys führen zum Fehlschlag der KI-Coding-CLI beim Start.
- Prüfen Sie, ob projektspezifische Keys für das richtige Projekt gesetzt sind. Keys auf Benutzerebene greifen möglicherweise nicht, wenn ein (auch ungültiger) Key auf Projektebene existiert.