sandbox-agent

Par rivet-dev · skills

Déployez, configurez et intégrez Sandbox Agent — une API universelle pour orchestrer des agents de codage IA (Claude Code, Codex, OpenCode, Amp) dans des environnements sandbox. À utiliser lors de la configuration d'un serveur sandbox-agent en local ou dans des sandboxes cloud (E2B, Daytona, Docker), de la création et la gestion de sessions d'agents via SDK ou API, du streaming d'événements d'agent et de la gestion des interactions human-in-the-loop, de la construction d'interfaces de chat pour des agents de codage, ou pour comprendre le schéma universel des réponses d'agent.

npx skills add https://github.com/rivet-dev/skills --skill sandbox-agent

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.

Sandbox Agent Inspector

É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

Skills similaires