Templates de sandbox

Comprenez les templates de sandbox E2B dans CodeCourier - templates d’outils intégrés, templates personnalisés et gestion des templates.

5 min lire
sandboxestemplatese2b

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 :

Flags de capacités d’outil
{
  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 :

  1. Définissez votre environnement de base dans un fichier de configuration de template E2B.
  2. Incluez tous les outils et paquets dont vos agents ont besoin.
  3. Construisez le template en utilisant le CLI ou l’API E2B.
  4. 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

E2B met en cache les templates au niveau de l’infrastructure. Une fois qu’un template est construit, les lancements de sandbox suivants à partir de ce template sont rapides car l’image est déjà disponible. Ne reconstruisez que lorsque votre environnement de base doit changer.

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, success ou failed.
  • 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 :

Commandes d’installation du CLI dans le template
# 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

Aprè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.