Sandbox-Templates
Verstehen Sie E2B-Sandbox-Templates in CodeCourier -- eingebaute Tool-Templates, benutzerdefinierte Templates und Template-Verwaltung.
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:
{
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:
- Definieren Sie Ihre Basisumgebung in einer E2B-Template-Konfigurationsdatei.
- Schließen Sie alle Tools und Pakete ein, die Ihre Agenten benötigen.
- Bauen Sie das Template über die E2B-CLI oder -API.
- 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
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,successoderfailed. - 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:
# Claude Code
npm install -g @anthropic-ai/claude-code@latest
# OpenCode
npm install -g @anthropic-ai/opencode@latest
# Codex
npm install -g @openai/codex@latestNach 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.