828 字
4 分钟
一小时基于E2B实现一个完整的云端Agent,做一个云端沙盒助手(云端agent系列 一)

为什么#

最近solo by ai的概念日趋火热,trae的大获成功,以及各个厂商都在推出自己的沙盒服务。是时候设计一个简单的系统来试试水了。

简单架构#

大模型作为大脑下达命令,我会写一个程序用于大模型调用agent,命名为 center-header agent执行的上下文将由center协调,center会根据大模型的指令,调用不同的agent执行不同的任务。这分两种,分别是云端的cloud-body和本地的local-body(客户端)。

开整#

这一期我们只实现云端的部分,首先我需要实现这部分

  1. e2b沙盒连接和使用
  2. 云端大模型和后端
  3. 前端代码展示及交互

一. e2b沙盒连接和使用#

TIP

如果后续想完全私有化的话,可以参考开源e2b方案的实现,但是这是后面的事情了

  1. 配置使用E2B沙盒 首先登录到e2b官网https://e2b.dev/ 使用谷歌/github账号登录后,会看到一个沙盒列表,每个沙盒都有一个唯一的id。

e2b-1

点击团队下的账户设置可以看到我们的访问令牌

e2b-2

  1. 编写云端后端代码连接沙盒 首先我们需要看下E2B文档https://e2b.dev/docs/quickstart 然后根据文档的介绍,我们可以看到,连接沙盒的代码非常简单,只需要几行代码即可。
TIP

这部分可以自由实现,我是使用Bun、TypeScript、Node来实现的。

使用TypeScript实现

// 安装依赖
npm i @e2b/code-interpreter dotenv

沙盒启动

// 启动沙盒
// index.ts
import 'dotenv/config'
import { Sandbox } from '@e2b/code-interpreter'

const sbx = await Sandbox.create() /
const execution = await sbx.runCode('print("hello world")') 
console.log(execution.logs)

const files = await sbx.files.list('/')
console.log(files)

执行代码

// 执行代码
// npx tsx ./index.ts
bun run ./index.ts

二. 云端大模型\后端\前端 详细设计#

核心功能#

1 功能模块#

  1. 主控制台 (Console):包含左右分栏布局。左侧为VNC桌面流媒体显示区域,右侧为Agent对话控制台。
  2. Agent交互模块:用户输入指令,后台大模型结合屏幕截图进行推理,并调用E2B Desktop SDK执行相应的鼠标/键盘操作。

2. 核心流程#

用户在聊天框输入指令 -> 后端创建/获取E2B Desktop沙盒 -> 获取沙盒屏幕截图并发送给大模型 (如Claude/OpenAI) -> 大模型返回具体的UI交互动作 (坐标点击、键盘输入等) -> 后端通过E2B SDK执行动作 -> 循环直至任务完成。

graph TD
    A["用户输入指令"] --> B["前端发送请求到后端 API"]
    B --> C{"沙盒是否已创建?"}
    C -- 否 --> D["调用 @e2b/desktop 创建 Sandbox"]
    D --> E["启动 VNC Stream 并返回 Stream URL 给前端"]
    C -- 是 --> F["获取当前沙盒状态"]
    E --> F
    F --> G["循环: Agent获取屏幕截图"]
    G --> H["大模型(LLM)分析截图并决策动作"]
    H --> I{"任务是否完成?"}
    I -- 是 --> J["返回最终结果给用户"]
    I -- 否 --> K["执行具体动作(点击/输入等)"]
    K --> G

实现及优化#

效果展示 e2b-3 e2b-4

简单的实现大概就是这些。下一期我将带你实现指令操作沙盒,agent设计及协调,最终实现类似trae的solo功能。敬请期待

下一期

一小时基于E2B实现一个完整的云端Agent,做一个云端沙盒助手(云端agent系列 一)
https://blog.ai-nous.com/posts/一小时基于e2b实现一个完整的云端agent做一个云端沙盒助手云端agent-一-/
作者
PankitGG
发布于
2026-04-17
许可协议
CC BY-NC-SA 4.0