用 E2B Sandbox v2.0 为 AI 代理搭建安全的云端执行环境
2026 年 5 月 15 日,E2B 发布了 Sandbox v2.0——一个重大的版本更新,为 AI 代理的代码执行带来了多云支持、自定义运行环境和全新一代的代码解释器。如果你正在构建基于 AI 编码代理的应用,或者想为自己的 AI 工作流增加安全的代码执行能力,这篇文章将带你快速上手 E2B Sandbox v2.0。
为什么需要 E2B?
想象一下这个场景:你构建了一个 AI 编码助手,它可以根据用户需求生成 Python 脚本并直接运行。但让 AI 生成的代码在你的本地环境执行——这听起来就让人后背发凉。潜在的风险包括:
- 无限循环:AI 生成的
while True:直接跑满你的 CPU - 文件系统破坏:误删除重要文件
- 网络访问滥用:访问内部服务或发送敏感数据
- 恶意代码注入:用户通过 prompt 注入让 AI 生成危险代码
E2B 提供的正是这样一个安全隔离的沙箱环境。它是专门为 AI 代理设计的代码执行基础设施,目前已被 Devin、Cursor 等主流 AI 编码工具用于运行 AI 生成的代码。
E2B Sandbox v2.0 的新特性
v2.0 是一次重大的架构升级,核心亮点包括:
🌍 多云支持
现在你可以在 AWS、GCP、Azure 三个云平台上运行沙箱实例,只需通过 API 参数指定地区即可:
POST /sandboxes
{
"cloud": "aws",
"region": "us-east-1",
"template": "python-3.12"
}
支持的地区包括 AWS 的 us-east-1 和 eu-west-1、GCP 的 us-central1 和 europe-west1、Azure 的 eastus 和 westeurope。这让你可以选择离用户最近的区域,降低延迟。
🚀 全新代码解释器 v2
Code Interpreter v2 原生支持三种运行时环境:
| 运行时 | 版本 | 预装包 |
|---|---|---|
| Python | 3.12 | numpy, pandas, matplotlib, requests, scipy, scikit-learn |
| Node.js | 20 | axios, express, lodash, puppeteer |
| Bash | – | curl, git, jq, docker-cli |
冷启动时间低于 500ms,热启动低于 50ms——这意味着你几乎感受不到等待。
🛠 自定义运行环境 (Custom Agent Environments)
这是 v2.0 最强大的特性。你可以通过 Dockerfile 定义任意运行环境:
FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
RUN pip install transformers diffusers accelerate
COPY agent_tools/ /tools/
ENV PATH="/tools:${PATH}"
然后通过 API 使用这个自定义环境:
from e2b import Sandbox
sandbox = Sandbox(
template="my-ai-env",
cloud="gcp",
region="us-central1"
)
同时支持快照(snapshot)和恢复(restore)——你可以保存环境状态,下次直接恢复,避免重复安装依赖。
快速入门实战
让我们从零开始,用 Python SDK 体验 E2B Sandbox v2.0 的核心功能。
安装与初始化
pip install e2b
获取 API Key(免费注册后可在 Dashboard 获取),然后初始化:
import os
from e2b import Sandbox
# 初始化沙箱
sandbox = Sandbox(
api_key=os.getenv("E2B_API_KEY"),
template="python-3.12",
cloud="aws",
region="us-east-1"
)
执行 Python 代码
# 在沙箱中运行 Python 代码
code = """
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 1000)
plt.hist(data, bins=30)
plt.title("Random Normal Distribution")
plt.savefig("/tmp/histogram.png")
print(f"Mean: {data.mean():.3f}, Std: {data.std():.3f}")
"""
result = sandbox.run_code(code, language="python")
print(result.stdout)
# 输出: Mean: 0.012, Std: 0.987
# 读取生成的文件
file_content = sandbox.download_file("/tmp/histogram.png")
运行 Shell 命令
# 在沙箱中执行 Bash 命令
result = sandbox.run_code("""
curl -s https://api.github.com/repos/e2b-dev/e2b | jq '.stargazers_count'
""", language="bash")
print(f"Stars: {result.stdout}")
文件操作
# 上传文件到沙箱
sandbox.upload_file(
local_path="./my_script.py",
remote_path="/home/user/my_script.py"
)
# 执行上传的脚本
result = sandbox.run_code("python /home/user/my_script.py")
自定义环境示例
# 创建一个自定义环境(需要先在 Dashboard 配置 Dockerfile)
sandbox_custom = Sandbox(
template="ml-inference-env",
cloud="aws",
region="eu-west-1" # 选择欧洲区域
)
# 运行模型推理
result = sandbox_custom.run_code("""
from transformers import pipeline
classifier = pipeline(
"sentiment-analysis",
model="distilbert-base-uncased-finetuned-sst-2-english"
)
print(classifier("E2B sandbox v2.0 is amazing!"))
""")
实战场景:AI 编码代理的安全执行
下面是一个更完整的例子,展示如何将 E2B 集成到你的 AI 编码代理中:
import os
from e2b import Sandbox
from openai import OpenAI
openai = OpenAI()
sandbox = Sandbox(
api_key=os.getenv("E2B_API_KEY"),
template="python-3.12"
)
def ai_code_agent(user_request: str):
"""让 AI 在安全的沙箱中编写并执行代码"""
# Step 1: AI 生成代码
response = openai.chat.completions.create(
model="gpt-5.5",
messages=[{
"role": "system",
"content": "你是一个 Python 数据分析助手。"
"生成可直接运行的 Python 代码,不要包含 markdown 代码块标记。"
}, {
"role": "user",
"content": user_request
}]
)
generated_code = response.choices[0].message.content
# Step 2: 在沙箱中安全执行
result = sandbox.run_code(
generated_code,
language="python",
timeout=30 # 30秒超时保护
)
# Step 3: 返回结果
return {
"stdout": result.stdout,
"stderr": result.stderr,
"error": result.error,
"execution_time": result.execution_time_ms
}
# 使用示例
result = ai_code_agent(
"下载 https://example.com/data.csv,计算每列的平均值并打印"
)
print(result["stdout"])
安全机制深度解析
E2B 的安全保障是多层次的:
- 网络隔离:沙箱默认没有出站网络访问(可在 Dashboard 配置白名单)
- 文件系统隔离:每个沙箱拥有独立的文件系统,互不干扰
- 资源限制:CPU、内存、磁盘 IO 都受 cgroup v2 限制
- 系统调用过滤:使用 seccomp 限制可用的系统调用
- 临时性:沙箱默认是临时的,结束后所有数据自动销毁
- 持久存储可选:需要持久化时可以显式启用
定价与选择建议
| 套餐 | 价格 | 沙箱配额 | 超时 | 规格 |
|---|---|---|---|---|
| Free | $0 | 100个/月 | 10分钟 | 2 vCPU / 4GB RAM |
| Pro | $49/月 | 500个/月 | 30分钟 | 4 vCPU / 8GB RAM |
| Enterprise | 定制 | 不限 | 60分钟 | 8 vCPU / 16GB RAM |
对于个人开发者尝试 AI 代理开发,免费套餐完全够用。如果构建生产级应用,Pro 套餐的 500 个沙箱配额和持久存储支持是更好的选择。
与其他方案的对比
在 AI 代理沙箱领域,E2B 的主要竞争对手包括 Modal 和 Fly Machines:
- Modal:更偏向传统的 Serverless 函数计算,不是专门为 AI 代理设计的
- Fly Machines:提供全球边缘部署,但缺乏专门针对 AI 代码执行的优化
- E2B:专为 AI 代理设计,冷启动快、API 语义贴合代理场景、支持自定义环境
如果你的核心需求是让 AI 安全地执行代码,E2B 是目前最贴合这个场景的选择。
总结
E2B Sandbox v2.0 的发布标志着 AI 代理的安全执行基础设施进入了一个新阶段。多云支持让你可以选择最优的部署区域,自定义运行环境让复杂的 AI 工作负载也能在沙箱中运行,而改进的代码解释器则提供了接近本地开发体验的速度。
随着 AI 编码代理从实验走向生产,安全且高效的代码执行环境不再是一个可选项,而是基础设施标配。E2B v2.0 正是在这个方向上迈出的重要一步。
提示:注册 E2B 免费账号即可获得每月 100 次沙箱调用,足以完成个人项目和学习实验。