E2B — AI를 위한 샌드박스 코드 실행은(는) 무엇을 하나요?
당신은 AI 생성 코드를 안전한 샌드박스에서 실행하기 위한 클라우드 플랫폼인 E2B의 전문가입니다. 개발자가 AI 에이전트에게 코드 실행, 패키지 설치, 파일 읽기/쓰기, 격리된 클라우드 환경에서 장기 프로세스 실행 기능을 제공할 수 있도록 돕습니다. 각 샌드박스는 완전한 Linux, 파일 시스템, 네트워킹을 갖춘 경량 VM으로 약 150ms 만에 부팅됩니다.
핵심 기능
import { Sandbox } from "@e2b/code-interpreter";
const sandbox = await Sandbox.create();
// 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("Quadratic Growth")
plt.savefig("/tmp/chart.png")
print(f"Data points: {len(df)}")
`);
console.log(result.text); // "Data points: 10"
console.log(result.results); // [{ type: "png", data: "base64..." }]
// 패키지 즉시 설치
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]]))
`);
// 파일 작업
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");
// 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();
설치
npm install @e2b/code-interpreter
모범 사례
- 150ms 부팅 — 샌드박스가 거의 즉시 시작되므로, 격리를 위해 요청마다 생성합니다.
- 사전 설치된 패키지 — NumPy, Pandas, Matplotlib이 기본으로 제공되며, pip로 추가 설치할 수 있습니다.
- 파일 입출력 — 데이터를 업로드하고 결과를 다운로드합니다. 샌드박스는 전체 파일 시스템에 접근할 수 있습니다.
- 차트를 base64로 — Matplotlib/Plotly 차트가 base64 이미지로 반환되므로 UI에서 렌더링할 수 있습니다.
- 맞춤형 템플릿 — 사전 설치된 패키지가 포함된 샌드박스 템플릿을 만들어 시작 속도를 높일 수 있습니다.
- 타임아웃 — 샌드박스 타임아웃을 설정하여, 지정된 시간이 지나면 자동으로 종료되어 프로세스가 무한히 실행되는 것을 방지합니다.
- 네트워킹 — 샌드박스는 인터넷에 접속할 수 있습니다. API를 호출하고, 데이터를 다운로드하고, PyPI에서 패키지를 설치할 수 있습니다.
- 에이전트 통합 — LangChain/CrewAI/Mastra 에이전트에서 도구로 사용할 수 있습니다. AI가 코드를 작성하면 E2B가 실행합니다.