Choisir une sandbox
Choisissez où l’agent exécute ses commandes : conteneur, cloud, microVM ou machine locale.
Environnements disponibles
Section intitulée « Environnements disponibles »Commencez avec Docker ou Podman pour travailler dans un conteneur local. Pour une exécution hébergée, utilisez Vercel ou Daytona. Le fournisseur de sandbox détermine où les commandes s’exécutent ; vous le choisissez indépendamment de l’agent.
- DockerLe choix par défaut : un conteneur local démarré depuis une image que vous construisez.
- PodmanLe même fournisseur de conteneur sur le moteur Podman, y compris en mode rootless.
- VercelUne sandbox hébergée, sans moteur local.
- DaytonaUne sandbox hébergée qui accepte aussi les terminaux interactifs.
- FirecrackerUne microVM sur un hôte Linux avec KVM que vous préparez.
- Exécution sur l’hôteLes commandes s’exécutent directement sur votre machine, sans isolation.
Choisir selon votre besoin
Section intitulée « Choisir selon votre besoin »- Docker et PodmanUn environnement reproductible sur votre machine ou un runner de CI. Commencez ici.
- Sandboxes cloudUn travail qui doit tourner hors de l’hôte, avec des listes de destinations autorisées.
- MicroVM FirecrackerUn noyau invité distinct, sur une infrastructure que vous exploitez.
- Exécution sur l’hôteDu code de confiance qui a besoin des outils installés sur votre machine.
Configurer le fournisseur
Section intitulée « Configurer le fournisseur »Importez le fournisseur depuis son sous-chemin et passez-le dans sandboxProvider. L’agent, le brief et la branche ne changent pas.
Chaque fournisseur a son propre sous-chemin, @elie-laloum/outpost/providers/<name> : docker, podman, vercel, daytona, firecracker et local. Sans sandboxProvider, Outpost utilise Docker.
Vercel et Daytona chargent leur SDK au moment d’allouer une sandbox. Installez-le à côté d’Outpost : npm install @vercel/sandbox ou npm install @daytona/sdk. Les autres fournisseurs ne demandent aucun paquet supplémentaire.
Comparer les environnements
Section intitulée « Comparer les environnements »| Docker, Podman | Vercel | Daytona | Firecracker | Hôte | |
|---|---|---|---|---|---|
| Accès au dépôt | Worktree monté | Snapshot téléversé | Snapshot téléversé | Snapshot téléversé | Système de fichiers hôte |
| Isolation | Conteneur | Sandbox hébergée | Sandbox hébergée | MicroVM | Aucune |
attach() interactif | Oui | Non | Oui | Non | Oui |
| Entrée en direct pour la réorientation | Oui | Oui | Oui | Oui | Oui |
| Caches de dépendances | Oui | Non | Non | Non | Non |
| Règles de sortie | deny-all seulement | Oui | Oui, avec des limites | Non | Non |
| Reprise de la spéculation durable | Oui | Non | Non | Non | Non |
| Installe un CLI d’agent manquant | Non | Oui | Oui | Oui | Non |
| Mode de branche par défaut | current | integrate | integrate | integrate | current |
| Préparation | Moteur et image | @vercel/sandbox, identifiants | @daytona/sdk, clé d’API | Hôte KVM, noyau, rootfs, TAP, SSH | CLI d’agent et outils |
Les fournisseurs distants (Vercel, Daytona, Firecracker) travaillent sur une copie de l’historique Git. Si un CLI pris en charge manque, ils l’installent avant le premier tour, sauf si vous passez bootstrap: false. Ils refusent le mode de branche current.
Avec repositoryMode: "isolated", Docker et Podman se comportent comme un fournisseur distant : voir Git privé. Ils perdent alors la reprise de spéculation durable, qui exige le mode monté par défaut.
- Rien ne se replie sur l’hôte. Un moteur, un SDK ou un identifiant manquant fait échouer la tâche ; seul
createLocalSandboxProvider()s’exécute sur l’hôte, et vous le choisissez explicitement. - Un conteneur monté peut écrire dans les métadonnées Git du dépôt. Ce n’est pas une barrière contre un agent hostile : lisez Sécurité.
- La synchronisation distante s’arrête plutôt que d’écraser des modifications concurrentes de l’hôte, et conserve les données de récupération. Voir Sandboxes cloud.
- Un fournisseur Firecracker possède un périphérique TAP et exécute une seule VM à la fois. Créez un fournisseur par VM simultanée.
API : SandboxProvider · createDockerSandboxProvider · createPodmanSandboxProvider · createVercelSandboxProvider · createDaytonaSandboxProvider · createFirecrackerSandboxProvider · createLocalSandboxProvider.