E2B et services de bacs à sable cloud
SDK E2B, Daytona et API de bacs à sable gérées pour les agents interpréteurs de code.
E2B et services de bacs à sable cloud est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.
Qu’est-ce qu’E2B ?
E2B (Environnements pour construire) est un service de bacs à sable cloud conçu spécialement pour les agents de code IA. Il fournit des environnements sécurisés et isolés, accessibles via un SDK Python/JS simple, sans que vous ayez à gérer vous-même Docker ou les VM.
Chaque bac à sable est une microVM Firecracker dans le cloud d’E2B.
# Install the SDK
# pip install e2b-code-interpreter
from e2b_code_interpreter import Sandbox
sandbox = Sandbox() # creates a new cloud sandbox
print('Sandbox ID:', sandbox.sandbox_id)Exécuter du code dans un bac à sable
L’objet Sandbox fournit une méthode run_code() qui exécute du code Python et renvoie une sortie structurée comprenant la sortie standard, la sortie d’erreur et des objets d’affichage enrichis (graphiques, DataFrame).
from e2b_code_interpreter import Sandbox
with Sandbox() as sandbox:
result = sandbox.run_code('print(2 ** 10)')
print(result.logs.stdout) # ['1024']
print(result.error) # None if no errorGérer les erreurs et les exceptions
Si le code lève une exception, result.error contient la trace de la pile. Le bac à sable lui-même continue de fonctionner : vous pouvez lui envoyer du code supplémentaire pour corriger l’erreur.
from e2b_code_interpreter import Sandbox
with Sandbox() as sandbox:
result = sandbox.run_code('1 / 0')
if result.error:
print('Error name:', result.error.name) # ZeroDivisionError
print('Traceback:', result.error.traceback)
else:
print(result.logs.stdout)Importer des fichiers dans le bac à sable
Utilisez sandbox.files.write() pour importer des fichiers de données (CSV, JSON, images) dans le système de fichiers du bac à sable avant d’exécuter le code d’analyse.
from e2b_code_interpreter import Sandbox
csv_content = 'name,score\nAlice,95\nBob,87\nCarol,92'
with Sandbox() as sandbox:
sandbox.files.write('/home/user/data.csv', csv_content.encode())
result = sandbox.run_code(
'import csv\n'
'rows = list(csv.DictReader(open("/home/user/data.csv")))\n'
'print([r["name"] for r in rows])'
)
print(result.logs.stdout) # ["['Alice', 'Bob', 'Carol']"]Exporter des fichiers depuis le bac à sable
Après le calcul, récupérez les fichiers de sortie (rapports, graphiques, données traitées) avec sandbox.files.read(). Le fichier est renvoyé sous forme d’octets.
from e2b_code_interpreter import Sandbox
import json
with Sandbox() as sandbox:
sandbox.run_code(
'import json\n'
'result = {"mean": 91.3, "max": 95}\n'
'json.dump(result, open("/home/user/output.json", "w"))'
)
data = sandbox.files.read('/home/user/output.json')
parsed = json.loads(data)
print(parsed) # {'mean': 91.3, 'max': 95}Installer des paquets à l’exécution
Les bacs à sable E2B sont fournis avec Python préinstallé. Installez des paquets supplémentaires avec run_code() en exécutant une commande pip, puis utilisez le paquet lors des appels suivants dans la même session du bac à sable.
from e2b_code_interpreter import Sandbox
with Sandbox() as sandbox:
# Install pandas inside the sandbox
sandbox.run_code('import subprocess; subprocess.run(["pip", "install", "pandas", "-q"])')
# Now use pandas
result = sandbox.run_code(
'import pandas as pd\n'
'df = pd.DataFrame({"x": [1,2,3], "y": [4,5,6]})\n'
'print(df.describe())'
)
print(result.logs.stdout)Bacs à sable persistants ou éphémères
E2B prend en charge deux modes de cycle de vie des bacs à sable :
- Éphémère : le bac à sable est détruit lorsque le bloc
withse termine. À utiliser pour une exécution de code ponctuelle. - Persistant : le bac à sable reste actif entre plusieurs requêtes. À utiliser lorsque l’état doit s’accumuler entre les tours de l’agent.
from e2b_code_interpreter import Sandbox
# Ephemeral (default context manager)
with Sandbox() as sb:
sb.run_code('x = 42')
# Sandbox destroyed here
# Persistent: keep alive for N seconds
sb = Sandbox(timeout=300) # keep alive 5 minutes
try:
sb.run_code('import numpy as np') # expensive import cached
sb.run_code('arr = np.arange(1000)')
result = sb.run_code('print(arr.mean())')
print(result.logs.stdout)
finally:
sb.kill() # explicit cleanupSe reconnecter à un bac à sable en cours d’exécution
Si votre processus d’agent redémarre ou si l’identifiant du bac à sable est transmis à un autre service, vous pouvez vous reconnecter à un bac à sable existant à l’aide de son ID sans perdre son état.
from e2b_code_interpreter import Sandbox
# First session
sb1 = Sandbox(timeout=300)
sb1.run_code('accumulated_data = []')
sandbox_id = sb1.sandbox_id
print('Created:', sandbox_id)
# Later — different process, same sandbox
sb2 = Sandbox.connect(sandbox_id)
result = sb2.run_code('accumulated_data.append(1); print(accumulated_data)')
print(result.logs.stdout) # '[1]' — state preserved
sb2.kill()Modèle tarifaire d’E2B
E2B facture en fonction des secondes de bac à sable — la durée pendant laquelle un bac à sable est actif, et pas seulement la durée d’exécution du code. Principaux facteurs tarifaires :
- Le temps d’inactivité reste facturé si le bac à sable est persistant
- Les bacs à sable éphémères sont facturés de leur création à leur destruction
- La sortie réseau peut être facturée séparément
- Utilisez
timeoutpour définir une échéance d’arrêt automatique
# Cost-optimization patterns:
# 1. Use short timeouts for one-shot executions
with Sandbox(timeout=60) as sb:
result = sb.run_code('print("done")')
# Auto-kills after 60s if not killed first
# 2. Kill immediately after use
sb = Sandbox()
try:
sb.run_code('process_data()')
finally:
sb.kill() # don't wait for timeout
# 3. Share one sandbox across multiple agent steps
# instead of creating a new one per stepUtiliser E2B dans une boucle d’agent
Dans un agent à plusieurs tours, créez le bac à sable une seule fois et transmettez son ID tout au long de la boucle. Chaque extrait de code généré par le LLM s’exécute dans la même session ; les variables et les paquets installés sont donc conservés entre les tours.
from e2b_code_interpreter import Sandbox
import openai
client = openai.OpenAI(api_key='YOUR_OPENAI_KEY')
def run_agent(user_question: str):
with Sandbox(timeout=120) as sb:
messages = [{'role': 'user', 'content': user_question}]
for _ in range(5): # max 5 turns
resp = client.chat.completions.create(
model='gpt-4o', messages=messages,
tools=[{'type': 'function', 'function': {
'name': 'run_python',
'description': 'Execute Python in a secure sandbox',
'parameters': {'type': 'object',
'properties': {'code': {'type': 'string'}},
'required': ['code']}
}}]
)
msg = resp.choices[0].message
if msg.tool_calls:
code = eval(msg.tool_calls[0].function.arguments)['code']
result = sb.run_code(code)
messages.append({'role': 'tool',
'tool_call_id': msg.tool_calls[0].id,
'content': str(result.logs.stdout)})
else:
return msg.contentServices cloud de bacs à sable alternatifs
E2B n’est pas la seule option. Voici d’autres services cloud de bacs à sable :
- Modal : bacs à sable GPU/CPU sans serveur, images Docker personnalisées
- AWS Lambda : isolation de l’exécution à chaque appel (Firecracker en arrière-plan)
- Code Interpreter API : bac à sable intégré d’OpenAI pour les outils de ChatGPT
- Daytona : bacs à sable de développement avec intégration Git
Que deviennent les variables lorsqu’un bac à sable E2B éphémère quitte son gestionnaire de contexte ?
Comprendre le cycle de vie du bac à sable est essentiel pour décider quand utiliser des bacs à sable éphémères ou persistants dans des conversations d’agent à plusieurs tours.
Récapitulatif des bacs à sable cloud E2B
E2B fournit un SDK simple pour les bacs à sable cloud basés sur des microVMs Firecracker. Principaux modèles : bacs à sable éphémères pour le code ponctuel, bacs à sable persistants pour les agents à plusieurs tours, importation et exportation de fichiers pour les données entrantes et sortantes, et reconnexion par ID pour les flux de travail entre services.
Arrêtez toujours explicitement les bacs à sable afin d’éviter une facturation inutile.
Apprends AI Agents avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 60
- Leçons
- 239
Questions Fréquemment Posées
La leçon « E2B et services de bacs à sable cloud » est-elle gratuite ?
Oui — le texte complet de « E2B et services de bacs à sable cloud » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « E2B et services de bacs à sable cloud » ?
SDK E2B, Daytona et API de bacs à sable gérées pour les agents interpréteurs de code. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AI Agents ?
Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « E2B et services de bacs à sable cloud » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?
Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bacs à sable d’agents fondés sur Docker
- Isolation par VM pour les agents exécutant du code hautement sécurisé
- E2B et services de bacs à sable cloud
- Politiques de sécurité pour l’exécution du code