Sandbox Agent
Sandbox Agent fournit une API universelle pour orchestrer les agents de codage IA dans des environnements sandbox.
Que faire si vous êtes bloqué
Si quelque chose ne fonctionne pas comme prévu ou que vous êtes bloqué, invitez l'utilisateur à rejoindre le Discord Rivet ou déposez un problème sur GitHub pour signaler un problème et obtenir de l'aide.
Fournissez à l'utilisateur un rapport pré-généré contenant :
- Symptômes
- Si cela se produit en dev local, en production, ou les deux
- L'erreur que vous voyez
- Le code source pertinent lié à ceci
- Ce que vous avez essayé pour le résoudre
- Environnement
- Version de Sandbox Agent
- SDK utilisé (TypeScript, Python ou HTTP)
- Agent utilisé (Claude Code, Codex, OpenCode, Amp, Mock)
- Fournisseur sandbox (E2B, Daytona, Docker, local)
Démarrage rapide
Installer le skill (optionnel)
npx
npx skills add rivet-dev/skills -s sandbox-agent
bunx
bunx skills add rivet-dev/skills -s sandbox-agent
Définir les variables d'environnement
Chaque agent de codage nécessite des clés API pour se connecter à leurs fournisseurs LLM respectifs.
Shell local
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
E2B
import { Sandbox } from "@e2b/code-interpreter";
const envs: Record<string, string> = {};
if (process.env.ANTHROPIC_API_KEY) envs.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
if (process.env.OPENAI_API_KEY) envs.OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const sandbox = await Sandbox.create({ envs });
Daytona
import { Daytona } from "@daytonaio/sdk";
const envVars: Record<string, string> = {};
if (process.env.ANTHROPIC_API_KEY) envVars.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
if (process.env.OPENAI_API_KEY) envVars.OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const daytona = new Daytona();
const sandbox = await daytona.create({
snapshot: "sandbox-agent-ready",
envVars,
});
Docker
docker run -p 2468:2468 \
-e ANTHROPIC_API_KEY="sk-ant-..." \
-e OPENAI_API_KEY="sk-..." \
rivetdev/sandbox-agent:0.4.2-full \
server --no-token --host 0.0.0.0 --port 2468
Extraire les clés API de la machine actuelle
Utilisez sandbox-agent credentials extract-env --export pour extraire vos clés API existantes (Anthropic, OpenAI, etc.) à partir des fichiers de configuration Claude Code ou Codex locaux.
Tester sans clés API
Utilisez l'agent mock pour les tests SDK et d'intégration sans identifiants de fournisseur.
Multi-tenant et facturation par utilisateur
Pour le suivi des tokens par tenant, l'application de budgets ou la facturation basée sur l'utilisation, consultez LLM Credentials pour les options de passerelle comme OpenRouter, LiteLLM et Portkey.
Exécuter le serveur
curl
Installez et exécutez le binaire directement.
curl -fsSL https://releases.rivet.dev/sandbox-agent/0.4.x/install.sh | sh
sandbox-agent server --no-token --host 0.0.0.0 --port 2468
npx
Exécutez sans installer globalement.
npx @sandbox-agent/cli@0.4.x server --no-token --host 0.0.0.0 --port 2468
bunx
Exécutez sans installer globalement.
bunx @sandbox-agent/cli@0.4.x server --no-token --host 0.0.0.0 --port 2468
npm i -g
Installez globalement, puis exécutez.
npm install -g @sandbox-agent/cli@0.4.x
sandbox-agent server --no-token --host 0.0.0.0 --port 2468
bun add -g
Installez globalement, puis exécutez.
bun add -g @sandbox-agent/cli@0.4.x
# Autoriser Bun à exécuter les scripts postinstall pour les binaires natifs (requis pour SandboxAgent.start()).
bun pm -g trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64
sandbox-agent server --no-token --host 0.0.0.0 --port 2468
Node.js (local)
Pour le développement local, utilisez SandboxAgent.start() pour démarrer et gérer le serveur en tant que sous-processus.
npm install sandbox-agent@0.4.x
import { SandboxAgent } from "sandbox-agent";
const sdk = await SandboxAgent.start();
Bun (local)
Pour le développement local, utilisez SandboxAgent.start() pour démarrer et gérer le serveur en tant que sous-processus.
bun add sandbox-agent@0.4.x
# Autoriser Bun à exécuter les scripts postinstall pour les binaires natifs (requis pour SandboxAgent.start()).
bun pm trust @sandbox-agent/cli-linux-x64 @sandbox-agent/cli-linux-arm64 @sandbox-agent/cli-darwin-arm64 @sandbox-agent/cli-darwin-x64 @sandbox-agent/cli-win32-x64
import { SandboxAgent } from "sandbox-agent";
const sdk = await SandboxAgent.start();
Construire à partir de la source
Si vous exécutez à partir de la source au lieu du CLI installé.
cargo run -p sandbox-agent -- server --no-token --host 0.0.0.0 --port 2468
La liaison à 0.0.0.0 permet au serveur d'accepter les connexions à partir de n'importe quelle interface réseau, ce qui est requis lors de l'exécution à l'intérieur d'un sandbox où les clients se connectent à distance.
Configuration du token
Les tokens ne sont généralement pas nécessaires. La plupart des fournisseurs sandbox (E2B, Daytona, etc.) sécurisent déjà le réseau au niveau de la couche infrastructure.
Si vous exposez le serveur publiquement, utilisez --token "$SANDBOX_TOKEN" pour exiger une authentification :
sandbox-agent server --token "$SANDBOX_TOKEN" --host 0.0.0.0 --port 2468
Ensuite, passez le token lors de la connexion :
TypeScript
import { SandboxAgent } from "sandbox-agent";
const sdk = await SandboxAgent.connect({
baseUrl: "http://your-server:2468",
token: process.env.SANDBOX_TOKEN,
});
curl
curl "http://your-server:2468/v1/health" \
-H "Authorization: Bearer $SANDBOX_TOKEN"
CLI
sandbox-agent --token "$SANDBOX_TOKEN" api agents list \
--endpoint http://your-server:2468
CORS
Si vous appelez le serveur à partir d'un navigateur, consultez le guide de configuration CORS.
Installer les agents (optionnel)
Pour pré-installer les agents :
sandbox-agent install-agent --all
Si les agents ne sont pas installés à l'avance, ils sont installés à la demande lors de la création d'une session.
Installer les dépendances de bureau (optionnel, Linux uniquement)
Si vous souhaitez utiliser /v1/desktop/*, installez d'abord les paquets runtime du bureau :
sandbox-agent install desktop --yes
Ensuite, utilisez GET /v1/desktop/status ou sdk.getDesktopStatus() pour vérifier que le runtime est prêt avant d'appeler les API de capture d'écran ou d'entrée du bureau.
Créer une session
import { SandboxAgent } from "sandbox-agent";
const sdk = await SandboxAgent.connect({
baseUrl: "http://127.0.0.1:2468",
});
const session = await sdk.createSession({
agent: "claude",
sessionInit: {
cwd: "/",
mcpServers: [],
},
});
console.log(session.id);
Envoyer un message
const result = await session.prompt([
{ type: "text", text: "Summarize the repository and suggest next steps." },
]);
console.log(result.stopReason);
Lire les événements
const off = session.onEvent((event) => {
console.log(event.sender, event.payload);
});
const page = await sdk.getEvents({
sessionId: session.id,
limit: 50,
});
console.log(page.items.length);
off();
Tester avec Inspector
Ouvrez l'interface Inspector à /ui/ sur votre serveur (par exemple, http://localhost:2468/ui/) pour inspecter les sessions et les événements dans une interface graphique.

Étapes suivantes
-
Session Persistence — Configurez la persistance en mémoire, l'état Rivet Actor, IndexedDB, SQLite et Postgres.
-
Deploy to a Sandbox — Déployez votre agent vers E2B, Daytona, Docker, Vercel ou Cloudflare.
-
SDK Overview — Utilisez la dernière API SDK TypeScript.
Carte de référence
Agents
AI
Deploy
Général
- Agent Sessions
- Architecture
- Attachments
- CLI Reference
- Common Software
- Computer Use
- CORS Configuration
- Custom Tools
- Daemon
- File System
- Inspector
- LLM Credentials
- Manage Sessions
- MCP
- Multiplayer
- Observability
- OpenCode Compatibility
- Orchestration Architecture
- Persisting Sessions
- Processes
- Quickstart
- React Components
- SDK Overview
- Security
- Session Restoration
- Skills
- Telemetry
- Troubleshooting