Sandbox-Templates

Verstehen Sie E2B-Sandbox-Templates in CodeCourier -- eingebaute Tool-Templates, benutzerdefinierte Templates und Template-Verwaltung.

5 min Lesezeit
sandboxestemplatese2b

Sandbox-Templates definieren die Basisumgebung für KI-Coding-Agenten. Jedes Template ist ein vorgebautes E2B-Image mit einem bestimmten CLI-Tool, seinen Abhängigkeiten und einem Standardsatz an Entwicklungs-Tools. Erstellt CodeCourier eine Sandbox, wählt es ein Template basierend auf dem konfigurierten CLI-Tool und nutzt es, um die VM zu provisionieren.

Was ist ein Template?

Ein E2B-Template ist ein Snapshot einer Linux-Umgebung, der als Ausgangspunkt für jede Sandbox dient. Templates werden durch eine String-ID identifiziert (z. B. claude, opencode) und in der E2B-Infrastruktur gespeichert. Beim Erstellen einer Sandbox provisioniert E2B eine neue Mikro-VM aus dem Template-Image, sodass die Sandbox ein vollständiges Dateisystem, installierte Pakete und konfigurierte Tools aus dem Template erhält.

Templates lösen ein zentrales Performance-Problem: Statt CLI-Tools und Abhängigkeiten bei jedem Sandbox-Start neu zu installieren, liefert das Template alles vorinstalliert. Das reduziert die Sandbox-Startzeit von Minuten auf Sekunden.

Eingebaute Templates

CodeCourier liefert Templates für jedes unterstützte CLI-Tool. Die Tool-Registry in convex/config/tools.config.ts definiert die Template-Konfiguration für jedes Tool.

Claude-Code-Template

  • Template-ID: claude
  • Custom-Tag: claude-custom
  • Standard-Timeout: 15 Minuten (900.000 ms)
  • Standard-Speicher: 1.024 MB
  • Standard-CPUs: 2
  • Provider: Anthropic
  • Vorinstalliert: Claude Code CLI (@anthropic-ai/claude-code), Node.js, Python, Git

Das Claude-Code-Template ist das funktionsreichste. Es unterstützt Streaming-JSON-Ausgabe, CLAUDE.md-Projektdateien, Skill-Injektion, Command-Injektion, Learning-Kompilierung und Denkleistungs-Steuerung. Dies ist das Standard-Template für die meisten Operationen.

OpenCode-Template

  • Template-ID: opencode
  • Provider: OpenRouter
  • Vorinstalliert: OpenCode CLI, Node.js, Git

Das OpenCode-Template unterstützt OpenRouter-basierte Modelle inklusive Gemini-Modellen. Es nutzt einen config-datei-basierten System-Prompt-Ansatz statt CLAUDE.md.

Codex-Template

  • Template-ID: codex
  • Provider: OpenAI
  • Vorinstalliert: Codex CLI, Node.js, Git

Das Codex-Template betreibt OpenAIs autonomen Coding-Agenten. Es nutzt Modelle der GPT-5.4-Familie und liefert Text-Format-Ausgabe.

Pi-Template

  • Template-ID: pi
  • Provider: OpenRouter
  • Vorinstalliert: Pi CLI, Node.js, Git

Das Pi-Template bietet einen Open-Source-Coding-Agenten mit CLAUDE.md-Kompatibilität. Es liest CLAUDE.md-Dateien wie Claude Code und ermöglicht so einen einfachen Wechsel zwischen Tools.

Template-Fähigkeiten

Nicht alle Templates unterstützen die gleichen Features. Die Tool-Registry definiert für jedes Tool ein Capabilities-Objekt, das CodeCourier nutzt, um zu bestimmen, welche Features verfügbar sind:

Tool capability flags
{
  supportsStreaming: true,      // Real-time output streaming
  supportsChecker: true,        // Can act as checker in workflows
  supportsIssueSessions: true,  // Can run issue sessions
  supportsInteractiveMode: true,// Supports follow-up messages
  supportsCustomSystemPrompt: true,
  supportsCustomClaudeMd: true, // CLAUDE.md file support
  supportsSkillInjection: true, // .claude/skills/ injection
  supportsLearnings: true,      // Learning extraction
  outputFormat: 'stream-json',  // Output format type
}

Diese Fähigkeiten beeinflussen die UI -- unterstützt ein Tool z. B. keine Skill-Injektion, wird der Skills-Selector ausgeblendet, wenn dieses Tool gewählt ist. Unterstützt ein Tool kein Streaming, fällt die Terminal-Ansicht auf Polling-Modus zurück.

Benutzerdefinierte Templates

Für fortgeschrittene Anwendungsfälle können Sie eigene E2B-Templates bauen und nutzen. Benutzerdefinierte Templates ermöglichen es, zusätzliche Tools vorzuinstallieren, spezifische Systempakete zu konfigurieren oder eigene Entwicklungsumgebungen einzurichten.

Ein benutzerdefiniertes Template bauen

E2B stellt einen Template-Builder bereit, der eine Dockerfile-ähnliche Spezifikation entgegennimmt und ein Template erzeugt. Der generelle Ablauf:

  1. Definieren Sie Ihre Basisumgebung in einer E2B-Template-Konfigurationsdatei.
  2. Schließen Sie alle Tools und Pakete ein, die Ihre Agenten benötigen.
  3. Bauen Sie das Template über die E2B-CLI oder -API.
  4. Notieren Sie die von E2B zurückgegebene Template-ID.

Ein benutzerdefiniertes Template nutzen

Um ein benutzerdefiniertes Template in CodeCourier zu nutzen, geben Sie es als templateId in der Sandbox-Konfiguration an. CodeCourier konstruiert das Custom-Tag mit derbuildCustomTag-Funktion aus der Tool-Registry, die die Tool-ID mit einem Custom-Suffix kombiniert.

Template-Caching

E2B cached Templates auf Infrastruktur-Ebene. Einmal gebaut, sind nachfolgende Sandbox-Starts aus diesem Template schnell, da das Image bereits vorliegt. Bauen Sie nur neu, wenn sich Ihre Basisumgebung ändern muss.

Template-Build-Verfolgung

CodeCourier verfolgt Template-Builds in der Tabelle templateBuilds. Jeder Build-Datensatz enthält:

  • Tool-ID -- Für welches CLI-Tool das Template ist.
  • Template-Name -- Der E2B-Template-Name.
  • CLI-Version -- Die im Template installierte CLI-Tool-Version.
  • Status -- building, success oder failed.
  • Ausgelöst von -- Wer den Build gestartet hat.
  • Zeitstempel -- Start- und Abschlusszeiten.

Diese Verfolgung stellt sicher, dass Sie Template-Build-Fortschritte überwachen und Fehler debuggen können. Template-Builds werden nach Tool-ID und Status indexiert, um effizientes Abfragen zu ermöglichen.

Versionsverwaltung

CLI-Tools werden regelmäßig aktualisiert. Erscheint eine neue Version von Claude Code, OpenCode oder Codex, muss das zugehörige Template neu gebaut werden, um die aktualisierte CLI einzuschließen. CodeCouriers Install-Kommandos verwenden den @latest-Tag, um immer die neueste Version zu erhalten:

Template CLI install commands
# Claude Code
npm install -g @anthropic-ai/claude-code@latest

# OpenCode
npm install -g @anthropic-ai/opencode@latest

# Codex
npm install -g @openai/codex@latest

Nach einem Template-Rebuild speichern Sandbox-Datensätze die während des Setups erkannte CLI-Version. So können Sie nachvollziehen, welche Version des Tools für eine bestimmte Sandbox-Sitzung verwendet wurde.