E2B Desktop 是一个开源的安全虚拟桌面项目,专为构建 Computer Use Agent 而设计。它提供了一个完全隔离的桌面环境,让您的 AI Agent 能够安全地与桌面应用程序进行交互。

本文档将详细介绍如何基于 PPIO Agent 沙箱服务来运行该项目。

1. 获取 PPIO API 密钥

2. 配置环境变量

在开始使用之前,您需要配置必要的环境变量:

Bash
export E2B_DOMAIN=sandbox.ppio.cn
export E2B_API_KEY=<您在上一步获取的 API 密钥>

运行示例:

3. 安装 SDK

根据您使用的编程语言,选择相应的安装方式:

npm install @e2b/desktop

运行示例:

4. 示例代码

获取虚拟桌面流 VNC 地址

通过以下代码,您可以创建一个虚拟桌面实例并获取 VNC 访问地址:

import { Sandbox } from '@e2b/desktop'

// 创建虚拟桌面实例
const desktop = await Sandbox.create()

// 启动桌面流
await desktop.stream.start()

// 获取可交互的 VNC 访问地址
const url = desktop.stream.getUrl()
console.log(url)
// 输出示例:
// 可以通过浏览器打开下面的链接,与虚拟桌面进行交互。您也可以将这个地址集成到应用中。
// https://6080-imy3gjw1i6tjpwysk2e5t-1e67fa95.sandbox.ppio.cn/vnc.html?autoconnect=true&resize=scale

// 获取只读模式的 VNC 访问地址(禁用用户交互)。
const urlDisabledInteraction = desktop.stream.getUrl({ viewOnly: true })
console.log(urlDisabledInteraction)
// 输出示例:
// 可以通过浏览器打开下面的链接,查看虚拟桌面(只读模式)。您也可以将这个地址集成到应用中。
// https://6080-imy3gjw1i6tjpwysk2e5t-1e67fa95.sandbox.ppio.cn/vnc.html?autoconnect=true&view_only=true&resize=scale

// 清理资源
// await desktop.stream.stop()  // 停止流
// await desktop.kill()         // 销毁沙箱

运行示例:

访问虚拟桌面流 VNC 地址:

您可以在这里找到更多示例代码。