Templates de sandbox
Comprenez les templates de sandbox E2B dans CodeCourier - templates d’outils intégrés, templates personnalisés et gestion des templates.
Les templates de sandbox définissent l’environnement de base pour les agents de codage IA. Chaque template est une image E2B préconstruite contenant un outil CLI spécifique, ses dépendances et un ensemble standard d’outils de développement. Lorsque CodeCourier crée une sandbox, il sélectionne un template en fonction de l’outil CLI configuré et l’utilise pour provisionner la machine virtuelle.
Qu’est-ce qu’un template ?
Un template E2B est un instantané d’un environnement Linux qui sert de point de départ à chaque sandbox. Les templates sont identifiés par un ID de chaîne (par exemple, claude, opencode) et sont stockés dans l’infrastructure d’E2B. Lorsqu’une sandbox est créée, E2B provisionne une nouvelle micro-VM à partir de l’image du template, donnant à la sandbox un système de fichiers complet, des paquets installés et des outils configurés depuis le template.
Les templates résolvent un problème de performance critique : au lieu d’installer les outils CLI et les dépendances à partir de zéro à chaque démarrage de sandbox, le template fournit tout préinstallé. Cela réduit le temps de démarrage de la sandbox de plusieurs minutes à quelques secondes.
Templates intégrés
CodeCourier est livré avec des templates pour chaque outil CLI pris en charge. Le registre d’outils dans convex/config/tools.config.ts définit la configuration de template pour chaque outil.
Template Claude Code
- Template ID :
claude - Custom Tag :
claude-custom - Timeout par défaut : 15 minutes (900 000 ms)
- Mémoire par défaut : 1 024 Mo
- CPU par défaut : 2
- Provider : Anthropic
- Préinstallé : Claude Code CLI (
@anthropic-ai/claude-code), Node.js, Python, Git
Le template Claude Code est le plus complet. Il prend en charge la sortie JSON en streaming, les fichiers de projet CLAUDE.md, l’injection de skills, l’injection de commandes, la compilation de learnings et le contrôle du thinking effort. C’est le template par défaut pour la plupart des opérations.
Template OpenCode
- Template ID :
opencode - Provider : OpenRouter
- Préinstallé : OpenCode CLI, Node.js, Git
Le template OpenCode prend en charge les modèles soutenus par OpenRouter, y compris les modèles Gemini. Il utilise une approche de system prompt basée sur un fichier de config plutôt que CLAUDE.md.
Template Codex
- Template ID :
codex - Provider : OpenAI
- Préinstallé : Codex CLI, Node.js, Git
Le template Codex exécute l’agent de codage autonome d’OpenAI. Il utilise les modèles de la famille GPT-5.4 et fournit une sortie au format texte.
Template Pi
- Template ID :
pi - Provider : OpenRouter
- Préinstallé : Pi CLI, Node.js, Git
Le template Pi fournit un agent de codage open source avec compatibilité CLAUDE.md. Il lit les fichiers CLAUDE.md de la même manière que Claude Code, ce qui facilite le passage d’un outil à l’autre.
Capacités des templates
Tous les templates ne prennent pas en charge les mêmes fonctionnalités. Le registre d’outils définit un objet de capacités pour chaque outil que CodeCourier utilise pour déterminer quelles fonctionnalités sont disponibles :
{
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
}Ces capacités influencent l’interface - par exemple, si un outil ne prend pas en charge l’injection de skills, le sélecteur de skills est masqué lorsque cet outil est choisi. Si un outil ne prend pas en charge le streaming, la vue de terminal se rabat sur le mode polling.
Templates personnalisés
Pour les cas d’usage avancés, vous pouvez construire et utiliser des templates E2B personnalisés. Les templates personnalisés vous permettent de préinstaller des outils supplémentaires, de configurer des paquets système spécifiques ou de mettre en place des environnements de développement personnalisés.
Construire un template personnalisé
E2B fournit un template builder qui prend une spécification de type Dockerfile et produit un template. Le processus général :
- Définissez votre environnement de base dans un fichier de configuration de template E2B.
- Incluez tous les outils et paquets dont vos agents ont besoin.
- Construisez le template en utilisant le CLI ou l’API E2B.
- Notez le template ID renvoyé par E2B.
Utiliser un template personnalisé
Pour utiliser un template personnalisé dans CodeCourier, spécifiez-le comme templateId dans la configuration de la sandbox. CodeCourier construit le custom tag en utilisant la fonction buildCustomTag du registre d’outils, qui combine l’ID de l’outil avec un suffixe personnalisé.
Mise en cache des templates
Suivi des builds de template
CodeCourier suit les builds de template dans la table templateBuilds. Chaque enregistrement de build contient :
- Tool ID - Pour quel outil CLI le template est destiné.
- Nom du template - Le nom du template E2B.
- Version du CLI - La version de l’outil CLI installée dans le template.
- Statut -
building,successoufailed. - Déclenché par - Qui a lancé le build.
- Timestamps - Heures de début et d’achèvement.
Ce suivi vous permet de surveiller la progression des builds de template et de déboguer les échecs. Les builds de template sont indexés par tool ID et statut pour un requêtage efficace.
Gestion des versions
Les outils CLI sont mis à jour régulièrement. Lorsqu’une nouvelle version de Claude Code, OpenCode ou Codex est publiée, le template correspondant doit être reconstruit pour inclure le CLI mis à jour. Les commandes d’installation de CodeCourier utilisent le tag @latest pour toujours obtenir la version la plus récente :
# Claude Code
npm install -g @anthropic-ai/claude-code@latest
# OpenCode
npm install -g @anthropic-ai/opencode@latest
# Codex
npm install -g @openai/codex@latestAprès une reconstruction de template, les enregistrements de sandbox stockent la version du CLI qui a été détectée pendant le setup. Cela vous permet de suivre quelle version de l’outil a été utilisée pour n’importe quelle session de sandbox donnée.