电脑沙箱 快速入门
更新时间:2025-11-24
本文指导您快速接入Agent 沙箱服务。本服务兼容了E2B SDK,您可以使用E2B SDK快速接入。
环境准备
- 运行环境
E2B提供的官方SDK,若使用Python语言,则请使用python3及以上。SDK安装E2B SDK 2.0及以上版本。
- 您可以根据需要确定需要使用的Agent沙箱服务地域,目前支持北京,广州,苏州。以下是各地域沙箱服务的访问Endpoint, 请您根据需要获取接入Agent沙箱服务域名
| 地域 | Endpoint |
|---|---|
| 北京 | sandbox-execute.bj.baidubce.com |
| 广州 | sandbox-execute.gz.baidubce.com |
| 苏州 | sandbox-execute.su.baidubce.com |
- 认证鉴权
在您选定的地域的官网控制台 API Keys页面,点击新建,创建并存储API Key。API Key 需在客户端的环境变量中配置,用于后续访问沙箱服务。您在选定的地域新建API KEY并保存,后续在环境变量中使用。
安装依赖库
安装E2B python依赖库
Plain Text
1pip install e2b_desktop python-dotenv
配置环境变量
您可以通过以下三种常见方式设置环境变量,推荐您使用 dotenv 文件来配置环境变量。
dotenv文件
在您的项目文件夹创建 .env 文件,在其中配置环境变量。假设您使用广州的Agent沙箱服务,您可以在.env文件中写入如下内容并保存。E2B_DOMAIN环境变量设置为Agent沙箱服务域名;E2B_API_KEY设置为您准备工作中创建的API Key
Plain Text
1E2B_DOMAIN=sandbox-execute.gz.baidubce.com
2E2B_API_KEY=bsx_xxxxxxxx
然后在您的代码中使用 dotenv 库来引入,通过该种方式引入的环境变量在当前代码范围内生效。
Plain Text
1from dotenv import load_dotenv
2load_dotenv()
Shell 配置环境变量
(1)临时设置:只在当前 Shell Session 生效)
Plain Text
1export E2B_DOMAIN=sandbox-execute.gz.baidubce.com
2export E2B_API_KEY=bsx_xxxxxxxx
(2)写入 Shell 配置文件(永久生效)
以 zshrc 为例:
Plain Text
1echo 'export E2B_DOMAIN=sandbox-execute.gz.baidubce.com' >> ~/.zshrc
2echo 'export E2B_API_KEY=bsx_xxxxxxxx' >> ~/.zshrc
3source ~/.zshrc
os.environ
在您的代码代码文件中添加:
Plain Text
1import os
2os.environ["E2B_DOMAIN"]="sandbox-execute.gz.baidubce.com"
3os.environ["E2B_API_KEY"]="bsx_xxxxxxxx"
启动Agent沙箱
将如下Python代码写入main.py文件
Plain Text
1# main.py
2from e2b_desktop import Sandbox
3from dotenv import load_dotenv
4load_dotenv()
5
6# 创建一个新的电脑沙箱
7desktop = Sandbox.create(
8 timeout=600, # 超时时间(秒)
9 template="computer-use-v1" # 该模板包含 chromium 浏览器,且暴露 9222 端口用于远程连接
10)
11
12print("desktop created, info:", desktop.get_info())
13
14# 浏览器访问 VNC URL 可以通过VNC操作可视化界面
15print("Starting the VNC server...")
16desktop.stream.start(require_auth=True)
17auth_key = desktop.stream.get_auth_key()
18vnc_url = desktop.stream.get_url(auth_key=auth_key)
19print("VNC URL:", vnc_url)
20
21# 运行应用程序(chrome浏览器)
22print("launch google-chrome")
23desktop.launch('google-chrome')
24
25# 等待应用程序启动
26print("wait 10s for the application to open")
27desktop.wait(10000)
28
29# 测试鼠标点击
30print("######Mouse control beigin ########")
31print("double_click")
32desktop.double_click()
33desktop.wait(1000)
34
35# 测试键盘输入
36print("######Keyboard control beigin ########")
37print("key board write Hello, world!")
38desktop.write("Hello, world!")
39desktop.wait(1000)
40
41# 测试键盘按键
42print("key board press enter")
43desktop.press("enter")
44desktop.wait(1000)
45
46# 测试截图
47print("######Screenshot begin ########")
48image = desktop.screenshot()
49with open("screenshot.png", "wb") as f:
50 f.write(image)
51 print("Screenshot saved to screenshot.png")
52
53# 测试文件操作
54print("######Openfiles begin ########")
55desktop.files.write("/home/user/index.js", "console.log('hello')")
56desktop.open("/home/user/index.js")
57
58# 测试命令行操作
59print("######run bash command begin ########")
60out = desktop.commands.run("ls -la /home/user")
61print(out)
62
63# 关闭电脑沙箱
64desktop.kill()
更多接口使用,可以参考:https://github.com/e2b-dev/desktop
运行您的代码
Plain Text
1python main.py
