我的相册
72.86M · 2026-02-13
对于 AI Agent 开发者来说,E2B(e2b.dev/)是一个非常强大的沙箱执行环境。它提供了代码执行、浏览器自动化、桌面应用控制等功能,让 AI Agent 能够安全地执行各种任务。然而,E2B 作为云服务,对于需要本地化部署、数据安全控制或成本优化的企业来说,一直是一个痛点,Manus底层能力就是靠它。
现在,这个痛点彻底解决了! Agent-Sandbox 实现了对 E2B 协议的完全兼容,让你可以:
e2b-code-interpreter、e2b-desktop 等)E2B 是一个为 AI Agent 设计的云原生执行环境,提供了:
E2B 通过统一的 API 和 SDK,让 AI Agent 能够轻松创建、管理和使用这些执行环境。而且E2B的生态很好,有很多文章和资源可以参考。
Agent-Sandbox 完全实现了 E2B 的 API 协议,包括:
POST /e2b/v1/sandboxes - 创建沙箱GET /e2b/v1/sandboxes/{sandboxID} - 获取沙箱信息GET /e2b/v1/v2/sandboxes - 列出所有沙箱DELETE /e2b/v1/sandboxes/{sandboxID} - 删除沙箱POST /e2b/v1/sandboxes/{sandboxID}/connect - 连接沙箱Agent-Sandbox 实现了两种路由方式,完美兼容 E2B SDK 的连接需求:
路径路由模式(适用于无 HTTPS 和通配符域名的环境): your-domain.com/sandboxes/r…
原生路由模式(适用于有通配符域名的生产环境): https://{port}-{sandboxID}.your-domain.com/
这种设计让 Agent-Sandbox 能够适应各种部署环境,从本地开发到生产环境都能无缝工作。
在你的 Kubernetes 集群中部署 Agent-Sandbox(需要 Kubernetes 1.26+):
kubectl create namespace agent-sandbox
kubectl apply -n agent-sandbox -f install.yaml
如果需要从外部访问,配置 Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: agent-sandbox
namespace: agent-sandbox
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 1024M
spec:
ingressClassName: nginx
rules:
- host: "*.your-domain.com" # 通配符域名支持
http:
paths:
- backend:
service:
name: agent-sandbox
port:
number: 80
path: /
pathType: ImplementationSpecific
现在你可以直接使用 E2B 的官方 SDK,无需任何修改!
from e2b_code_interpreter import Sandbox
import os
# 配置 Agent-Sandbox 端点
os.environ['E2B_API_URL'] = 'http://your-domain.com/e2b/v1'
os.environ['E2B_API_KEY'] = 'testuser-aef134ef-7aa1-945e-9399-7df9a4ad0c3f'
os.environ['E2B_DOMAIN'] = 'your-domain.com'
# 创建沙箱(与 E2B 完全相同的 API)
sbx = Sandbox.create()
# 执行代码
execution = sbx.run_code("print('Hello from Agent-Sandbox!')")
print(execution.logs)
# 文件操作
files = sbx.files.list("/")
print(files)
# 上传文件
with open("local_file.txt", "rb") as file:
sbx.files.write("/home/user/remote_file.txt", file)
from e2b_desktop import Sandbox
import os
# 配置 Agent-Sandbox 端点
os.environ['E2B_API_URL'] = 'http://your-domain.com/e2b/v1'
os.environ['E2B_API_KEY'] = 'testuser-aef134ef-7aa1-945e-9399-7df9a4ad0c3f'
os.environ['E2B_DOMAIN'] = 'your-domain.com'
# 创建桌面沙箱
desktop = Sandbox.create()
# 启动应用
desktop.launch('google-chrome')
# 控制应用
desktop.write('https://google.com')
desktop.press('enter')
# 截图
image = desktop.screenshot(format="bytes")
from e2b_code_interpreter import Sandbox
sbx = Sandbox.create()
# Agent 生成的代码可以直接执行
code = """
import pandas as pd
import matplotlib.pyplot as plt
data = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
plt.plot(data['x'], data['y'])
plt.savefig('/home/user/plot.png')
"""
execution = sbx.run_code(code)
print(execution.logs)
from e2b_desktop import Sandbox
desktop = Sandbox.create()
desktop.launch('google-chrome')
desktop.write('https://example.com')
desktop.press('enter')
desktop.wait(5000)
# 截图保存结果
screenshot = desktop.screenshot(format="bytes")
with open("result.png", "wb") as f:
f.write(screenshot)
from e2b_code_interpreter import Sandbox
sbx = Sandbox.create()
# 上传数据文件
with open("data.csv", "rb") as file:
sbx.files.write("/home/user/data.csv", file)
# 执行分析
analysis_code = """
import pandas as pd
df = pd.read_csv('/home/user/data.csv')
print(df.describe())
print(df.head())
"""
execution = sbx.run_code(analysis_code)
print(execution.logs)
Agent-Sandbox 对 E2B 协议的完全支持,为 AI Agent 开发者带来了简单灵活的本地部署方案: