All-In-One沙箱操作
更新时间 2026-05-11 16:54:03
最近更新时间: 2026-05-11 16:54:03
前提条件
在控制台完成AIO沙箱模板创建
在执行下文所有代码前,请先按照环境变量设置部分,完成环境变量设置
All-In-One 沙箱概述
多个单功能沙箱使用时的痛点:多个单功能沙箱(如代码执行,浏览器)迫使 Agent 通过 NAS/OSS 跨沙箱传输数据,增加了延迟与复杂度。
AIO沙箱 (All-In-One Sandbox) 是集成 Browser(无头浏览器)与Code Interpreter(代码执行) 能力的统一云端隔离环境,避免了跨沙箱数据传输。
在AIO沙箱中,您可以使用 Code Interpreter 和 Browser 两类 sandbox 的功能。
您可以在沙箱中直接操作浏览器,我们已经为您预装了 puppeteer-code(nodejs) 和 playwright(python),您可以在代码解释器中执行代码,操作内置的浏览器。
以下是AIO沙箱内置的能力:
| 能力 | 访问端口/路径 | 说明 |
|---|---|---|
| 代码执行 | 49999 | 兼容 E2B 协议,支持 Python / JS 等多语言 |
| 浏览器VNC | 6080 | 浏览器VNC的websocket地址 |
| 浏览器外部代理 | 9223 | 通过代理访问浏览器CDP的地址 |
| 浏览器CDP | 9222 | 浏览器CDP的地址,可以在沙箱内使用playwright等库直接访问 |
| 终端 & 文件系统操作 | 49983 | 文件系统与命令执行接口 |
All-In-One 沙箱操作
快速示例
在代码解释器中执行如下的代码,操作内置的浏览器
from e2b_code_interpreter import Sandbox
from dotenv import load_dotenv
load_dotenv()
# 注意:修改下面模板为您的模板名称或者模板id
sandbox = Sandbox.create(template="my_test_aio_template")
print(f'创建沙箱成功{sandbox}')
# 在沙箱里执行浏览器操作代码(沙箱里内置了playwright库)
python_code="""
import asyncio
from playwright.async_api import async_playwright
async def run():
async with async_playwright() as playwright:
chromium = playwright.chromium
browser = await chromium.connect_over_cdp("http://localhost:9222") #在沙箱内直接访问CDP
print("连接CDP成功")
context = browser.contexts[0]
page = context.pages[0]
print("获取现有上下文和页面")
await page.goto("https://www.bing.com")
print("导航到https://www.bing.com")
title = await page.title()
print(f"获取页面标题: {title}")
await browser.close()
print("关闭连接")
await run()
"""
sandbox.run_code(
python_code,
on_stdout=lambda data: print(data),
on_stderr=lambda data: print(data),
on_result=lambda data: print(data),
on_error=lambda data: print(data)
)获取vnc websocket地址
# 注意:修改下面模板为您的模板名称或者模板id
sandbox = Sandbox.create(template="my_test_aio_template")
print(f'创建沙箱成功{sandbox}')
# 获取沙箱的vnc websocket地址,并用noVNC打开
vnc_url = sandbox.get_host(6080)
vnc_url = f"https://{vnc_url}"
print(f"沙箱的vnc协议地址: {vnc_url}")
# 构建noVNC URL(使用公共noVNC服务或本地部署)
import webbrowser
from urllib.parse import urlparse
parsed_url = urlparse(vnc_url)
host_port = parsed_url.netloc
novnc_url = f"https://novnc.com/noVNC/vnc.html?host={host_port.split(':')[0]}&port=443&encrypt=true"
webbrowser.open(novnc_url)
print(f"已打开noVNC界面: {novnc_url}")代码运行
All-In-One 沙箱内置代码运行能力,使用方式与代码解释器沙箱完全一致,详情请参见代码运行章节
终端命令执行
All-In-One 沙箱支持在沙箱内执行 Shell 命令,详情请参见终端命令章节
文件系统操作
All-In-One 沙箱支持向沙箱上传和下载文件,详情请参见文件系统章节