2026年5月25日 3 分钟阅读

用 E2B Sandbox v2.0 为 AI 代理搭建安全的云端执行环境

tinyash 0 条评论

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 原生支持三种运行时环境:

运行时版本预装包
Python3.12numpy, pandas, matplotlib, requests, scipy, scikit-learn
Node.js20axios, express, lodash, puppeteer
Bashcurl, 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 的安全保障是多层次的:

  1. 网络隔离:沙箱默认没有出站网络访问(可在 Dashboard 配置白名单)
  2. 文件系统隔离:每个沙箱拥有独立的文件系统,互不干扰
  3. 资源限制:CPU、内存、磁盘 IO 都受 cgroup v2 限制
  4. 系统调用过滤:使用 seccomp 限制可用的系统调用
  5. 临时性:沙箱默认是临时的,结束后所有数据自动销毁
  6. 持久存储可选:需要持久化时可以显式启用

定价与选择建议

套餐价格沙箱配额超时规格
Free$0100个/月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 次沙箱调用,足以完成个人项目和学习实验。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。