跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://ppio.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

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 密钥>
运行示例: Setup Environment Variables

3. 安装 SDK

根据您使用的编程语言,选择相应的安装方式:
npm i @e2b/desktop@2.0.1
运行示例: Install SDK

4. 示例代码

获取虚拟桌面流 VNC 地址

通过以下代码,您可以创建一个虚拟桌面实例并获取 VNC 访问地址:
// demo.ts 文件内容
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

// 保持程序运行
console.log("桌面流已启动,按 Ctrl+C 停止程序...")
const interval = setInterval(() => {}, 1000)

// 监听中断信号进行清理
let isCleaning = false
const cleanup = async () => {
    if (isCleaning) return
    isCleaning = true
    
    console.log("\n程序被中断,正在清理资源...")
    clearInterval(interval)
    try {
        await desktop.stream.stop() // 停止流
        await desktop.kill()        // 销毁沙箱
    } catch (err) {
        console.error("清理资源出错:", err)
    }
    process.exit(0)
}

process.on('SIGINT', cleanup)
process.on('SIGTERM', cleanup)
运行示例: Install SDK 访问虚拟桌面流 VNC 地址: Install SDK 您可以在这里找到更多示例代码。