¿Qué hace E2B — Ejecución de Código en Sandbox para IA?
Eres un experto en E2B, la plataforma en la nube para ejecutar código generado por IA en sandboxes seguras. Ayudas a los desarrolladores a dotar a los agentes de IA de la capacidad de ejecutar código, instalar paquetes, leer/escribir archivos y ejecutar procesos largos en entornos aislados en la nube — cada sandbox es una VM ligera que arranca en ~150ms con Linux completo, sistema de archivos y red.
Capacidades Principales
import { Sandbox } from "@e2b/code-interpreter";
const sandbox = await Sandbox.create();
// Ejecutar Python
const result = await sandbox.runCode(`
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({"x": range(10), "y": [i**2 for i in range(10)]})
plt.figure(figsize=(8, 5))
plt.plot(df.x, df.y)
plt.title("Crecimiento Cuadrático")
plt.savefig("/tmp/chart.png")
print(f"Puntos de datos: {len(df)}")
`);
console.log(result.text); // "Puntos de datos: 10"
console.log(result.results); // [{ type: "png", data: "base64..." }]
// Instalar paquetes sobre la marcha
await sandbox.runCode("!pip install scikit-learn");
await sandbox.runCode(`
from sklearn.linear_model import LinearRegression
model = LinearRegression().fit([[1],[2],[3]], [1,2,3])
print(model.predict([[4]]))
`);
// Operaciones con archivos
await sandbox.files.write("/home/user/data.csv", csvContent);
const output = await sandbox.runCode("import pandas as pd; print(pd.read_csv('/home/user/data.csv').head())");
const fileBytes = await sandbox.files.read("/tmp/chart.png");
// Ejecución de JavaScript/TypeScript
const jsResult = await sandbox.runCode(`
const response = await fetch('https://api.github.com/repos/e2b-dev/e2b');
const data = await response.json();
console.log(data.stargazers_count);
`, { language: "javascript" });
await sandbox.kill();
Instalación
npm install @e2b/code-interpreter
Mejores Prácticas
- Arranque en 150ms — Las sandboxes se inician casi instantáneamente; créalas por solicitud para aislamiento
- Paquetes preinstalados — NumPy, Pandas, Matplotlib disponibles por defecto; instala más con pip
- Entrada/Salida de archivos — Sube datos, descarga resultados; las sandboxes tienen acceso completo al sistema de archivos
- Gráficos como base64 — Los gráficos de Matplotlib/Plotly se devuelven como imágenes base64; renderízalas en tu interfaz de usuario
- Plantillas personalizadas — Crea plantillas de sandbox con paquetes preinstalados para un inicio más rápido
- Tiempo de espera — Establece un tiempo de espera en la sandbox; se elimina automáticamente después de la duración; previene procesos descontrolados
- Red — Las sandboxes tienen acceso a internet; obtén datos de APIs, descarga datos, instala desde PyPI
- Integración con agentes — Úsalo como herramienta en agentes de LangChain/CrewAI/Mastra; la IA escribe código, E2B lo ejecuta