Créer des sandboxes
Comment créer et configurer des sandboxes dans CodeCourier, y compris le choix de l’outil CLI, l’allocation des ressources et les prompts initiaux.
Créer une sandbox dans CodeCourier provisionne un environnement Linux cloud isolé où un agent de codage IA peut travailler pour vous. Ce guide couvre comment lancer des sandboxes depuis l’interface du dashboard, les options de configuration disponibles et la manière dont les sandboxes sont créées de façon programmatique pendant les workflow runs.
Lancer depuis le dashboard
La principale façon de créer une sandbox autonome passe par la page Sandboxes de votre dashboard de projet. La boîte de dialogue de lancement vous permet de configurer chaque aspect de la sandbox avant sa création.
Choisir un outil CLI
Choisissez quel CLI de codage IA s’exécutera à l’intérieur de la sandbox. Chaque outil a des capacités et des exigences de provider différentes :
- Claude Code - Le CLI officiel d’Anthropic. Nécessite une clé API Anthropic ou un token OAuth. Prend en charge la sortie JSON en streaming, CLAUDE.md, l’injection de skills, l’extraction de learnings et le contrôle du thinking effort. C’est l’option par défaut et la plus complète.
- OpenCode - CLI open source avec prise en charge des modèles OpenRouter. Nécessite une clé API OpenRouter. Idéal pour utiliser les modèles Gemini.
- Codex - Le CLI de codage autonome d’OpenAI. Nécessite une clé API OpenAI. Utilise les modèles de la famille GPT-5.4.
- Pi - Agent de codage open source avec prise en charge d’OpenRouter et compatibilité CLAUDE.md. Nécessite une clé API OpenRouter.
Choisir un modèle
Chaque outil CLI prend en charge plusieurs modèles. Le modèle détermine la qualité et la vitesse de la sortie de l’agent. Pour Claude Code, les options incluent :
claude-opus-4-6- Qualité la plus élevée, idéal pour l’architecture complexe et les changements multi-fichiers.claude-sonnet-4-6- Équilibre entre qualité et vitesse, bon pour la plupart des tâches de développement.claude-haiku-4-5- Le plus rapide et le moins cher, adapté aux changements simples et aux revues.
Le modèle par défaut de chaque outil est défini dans le registre d’outils et est présélectionné dans l’interface. Vous pouvez le remplacer par sandbox.
Configurer les ressources
Définissez les ressources de calcul de la sandbox :
- Mémoire (Mo) - Entre 256 Mo et 8 192 Mo. La valeur par défaut est 1 024 Mo. Les grandes codebases avec une compilation lourde peuvent nécessiter 2 048 Mo ou plus.
- Nombre de CPU - Entre 1 et 8. La valeur par défaut est 2. Plus de CPU aident à l’exécution parallèle des tests et aux builds.
- Timeout - Entre 1 minute et 4 heures. La valeur par défaut est 15 minutes (900 000 ms). La sandbox est arrêtée automatiquement lorsque ce timeout expire.
Définir un prompt
Fournissez un prompt initial que l’agent exécutera lorsque la sandbox démarre. C’est la description de la tâche - ce que vous voulez que l’agent construise, corrige ou investigue. Le prompt est envoyé au CLI IA comme premier message.
Lancer
Cliquez sur le bouton de lancement pour démarrer la création de la sandbox. CodeCourier va :
- Valider vos clés API pour l’outil CLI sélectionné.
- Créer un enregistrement de sandbox dans la base de données avec le statut
creating. - Appeler le SDK E2B pour provisionner une micro-VM à partir du template sélectionné.
- Exécuter la séquence de setup (Git clone, installation des dépendances, injection de config).
- Exécuter l’agent IA avec votre prompt.
- Mettre à jour le statut de la sandbox vers
running.
Clés API requises
Options de configuration en détail
Sélection du template
Le template ID détermine l’image E2B de base utilisée pour la sandbox. Chaque outil CLI a son propre template avec l’outil préinstallé. CodeCourier prend aussi en charge des templates E2B personnalisés - si vous avez construit un template personnalisé avec des outils ou dépendances supplémentaires, vous pouvez spécifier son ID. Lorsqu’un template personnalisé est spécifié, CodeCourier utilise la fonctionbuildCustomTag pour construire le tag E2B.
Thinking effort
Pour les sandboxes Claude Code, vous pouvez configurer le thinking effort par modèle. Il est transmis via le flag --effort au CLI Claude. Les options sont high, medium,low ou none. Un thinking effort plus élevé produit un raisonnement plus approfondi mais coûte plus de tokens.
Template de checker
Les sandboxes de workflow prennent en charge un checkerTemplateId distinct qui permet à l’étape checker d’utiliser un template E2B différent de celui de l’étape designer. S’il n’est pas défini, le checker se rabat sur le template principal.
Surcharges spécifiques au CLI
La configuration de la sandbox prend en charge des surcharges d’outil CLI par étape :
designerCliId- Remplacer l’outil CLI pour les étapes designer.optimizerCliId- Remplacer l’outil CLI pour les étapes optimizer.checkerCliId- Remplacer l’outil CLI pour les étapes checker.
Cela permet à un workflow d’utiliser Claude Code pour le travail de conception et OpenCode pour la vérification, par exemple.
Séquence de setup de la sandbox
Lorsqu’une sandbox est créée, CodeCourier exécute une séquence de setup en plusieurs phases avant que l’agent IA ne commence à travailler. Ce setup est géré par la fonction setupSandboxForTool et se compose de :
Setup commun (tous les outils)
- Git clone - Si une URL de repo GitHub est configurée, le repo est cloné dans
/home/user/project. Une nouvelle branche de fonctionnalité est créée pour le travail de la sandbox. - Credential helper Git - Si un token GitHub est disponible, un credential helper est configuré pour que l’agent puisse pousser des commits.
- Variables d’environnement - Les variables d’environnement au niveau du projet sont injectées dans l’environnement shell de la sandbox.
- System prompt - Le system prompt (issu des paramètres du projet ou de la valeur par défaut) est écrit dans un fichier que le CLI IA lit.
Setup spécifique à l’outil
Chaque outil CLI a des étapes de setup supplémentaires :
- Claude Code - Écrit CLAUDE.md dans le répertoire du projet, injecte les skills et commandes dans
.claude/skills/et.claude/commands/, écrit les learnings compilés et configure la clé API Anthropic. - OpenCode - Écrit le system prompt sous forme de fichier de config dans le format attendu par OpenCode et configure la clé API OpenRouter.
- Codex - Configure la clé API OpenAI et installe le CLI Codex s’il n’est pas présent dans le template.
- Pi - Configure la clé API OpenRouter et écrit CLAUDE.md (Pi prend en charge le format CLAUDE.md).
Création programmatique
Les sandboxes sont également créées de façon programmatique dans plusieurs contextes :
Workflow runs
Lorsqu’un workflow run s’exécute, l’orchestrateur Trigger.dev crée des sandboxes pour chaque étape. La configuration de la sandbox provient dudefaultConfig du workflow, potentiellement remplacée par les réglages de persona par étape. Chaque étape obtient sa propre sandbox avec l’outil CLI, le modèle et les instructions appropriés.
Work chains
Les work chains exécutent une séquence d’issues, chacune comme un workflow run distinct. Chaque run crée ses propres sandboxes, en réutilisant la même branche pour accumuler les changements à travers les issues.
Sessions d’issue
Les sessions d’issue créent une seule sandbox qui exécute un agent IA de scan. La sandbox de session explore le repository, identifie les problèmes et améliorations, et produit une liste structurée d’issues. La sandbox est liée à l’enregistrement de session d’issue via le champsessionId.
Sessions d’issue
Les sessions d’analyse d’issue créent une sandbox qui scanne le repository à la recherche d’améliorations potentielles. La sandbox est liée à la session d’issue via le champ issueSessionId.
// Internal flow: how CodeCourier creates a sandbox
const sandboxId = await ctx.runMutation(internal.sandboxes.create, {
userId: user._id,
projectId: project._id,
sandboxId: e2bSandboxId, // from E2B SDK
status: "running",
config: {
templateId: "claude",
timeoutMs: 900_000,
memoryMb: 1024,
cpuCount: 2,
},
createdAt: Date.now(),
});Optimisation des ressources