独立主导项目 · 架构设计与项目价值

CloudAgent

面向 AI 研发任务的云端执行平台:按需分配 Kubernetes Sandbox,以共享只读工具和独立持久工作区连接计算与存储,让任务环境快速派生、弹性运行、长期保留。

查看首页项目摘要 · 模型接入:AIGateway

启动与预热实测

预热实例 · Claude 请求

4.449 s

已有预热实例上的请求脚本端到端墙钟时间,真实 Claude 调用成功。

Pod 创建至就绪

5 s

新预热 Pod 从创建到 Ready:北京时间 20:33:01 → 20:33:06。

Agent 冷启动

9 s

同日记录的 Agent 冷启动耗时,与 Pod 就绪时间分别展示。

按负载配置预热容量:预热实例数量可根据请求负载动态配置;实例领取后,由控制器自动补足预热池。繁忙时提高预热数量减少等待,低峰时下调以控制空闲资源占用。

2026-09-21 单次实测。4.449s 包含实例检查、端口转发、环境探针、Claude 执行与收尾,不包含新建 Claim,也不等同于纯模型推理耗时;原生 sandboxd Execute 及命令退出码均为 0。

项目意义:让计算弹性与数据留存各自按需

Agent 任务需要可执行的工具环境,也需要可持续使用的源码、日志和产物。CloudAgent 将计算实例、工具运行时与任务工作区分开管理:短期任务结束即可释放计算,长期工作区继续保存;同一工具版本由多个 Sandbox 只读共享,任务修改始终写入各自工作区。

减少固定容量预购

云上自建 JuiceFS CSI 存储层,以 S3 兼容对象存储承载持久数据,避免为每个 Sandbox 预购固定容量云硬盘,减少闲置容量成本。

快速派生任务环境

基于模板工作区做元数据克隆,共享未修改的数据块;结合预热 Sandbox 和已有工具运行时,减少环境准备与全量文件复制。

共享工具,缓存热数据

常用 Agent CLI 集中发布为只读运行时,减少重复安装和工具副本;节点缓存承接热点读取,降低远端重复取数开销,提升任务执行效率。

低成本保留任务现场

任务文件、源码、日志与产物在对象存储中长周期保留,配合元数据与任务记录备份恢复工作区,使任务复盘和接续运行不依赖原计算实例。

完整架构:控制、执行、存储三层解耦

CloudAgent 云端执行平台整体架构设计 Web、SDK 与 E2B 兼容接口进入 Go 业务控制面,由 Kubernetes Agent Sandbox controller 管理运行 sandboxd 的实例。实例通过 AIGateway 访问模型,并通过自建 JuiceFS CSI 挂载共享只读工具和独立可写工作区。JuiceFS 客户端分别访问节点缓存、元数据服务和 S3 对象存储。蓝色虚线为控制流,绿色实线为执行与文件数据流。 01 控制层02 执行层03 存储层 Web / SDK / API任务提交 · 状态查询E2B 核心接口设计 Go 业务控制面身份与租户 · 生命周期 · 计算 / 存储配额任务队列 · 弹性调度 · 预热池 · 工作区映射 任务与资源记录实例 / 工作区 / 模板版本状态 · 审计 · 可观测性 Agent SandboxKubernetes controller资源编排 · 创建 / 回收 Sandbox Pod · sandboxd长期 / 临时实例 · exec / gRPC独立任务进程 · 计算限制 · 受控网络 AIGateway → AI 模型模型路由 · 鉴权 · 用量独立模型请求出口 共享只读 Runtime常用 Agent CLI · 固定工具版本 独立可写 Workspace源码 · 任务文件 · 日志 · 产物 自建 JuiceFS CSIPVC / PV · 子目录 · 配额 JuiceFS 客户端 · 只读挂载跨实例共享工具文件 JuiceFS 客户端 · 可写挂载独立工作区 · POSIX 文件访问 节点本地缓存热数据复用 · 减少远端读取 JuiceFS 元数据服务目录 / 文件 / 块索引 · 配额 S3 兼容对象存储持久数据块 · 长期任务文件 控制流 / 资源编排执行请求 / 文件数据流元数据备份 + 对象数据 + 任务记录
总体逻辑架构设计。控制面管理任务与资源,执行层消费计算能力,存储层承接工作区和共享工具;模型调用经独立网关路由。两类 JuiceFS 挂载均连接元数据与对象存储,图中共用存储链路作简化展示。

任务生命周期与工作区复用

  1. 申请与准入:业务接口接收任务,校验租户身份、计算与存储额度,选择长期或临时 Sandbox 策略,建立任务和工作区的关联记录。
  2. 准备与执行:选择已有工作区或从模板派生新目录,挂载只读运行时与可写工作区;调度到满足资源条件的节点,通过 sandboxd 启动任务。
  3. 回收与接续:任务结束后保存文件与任务状态,按策略回收计算;再次执行时重新挂载同一工作区或从归档副本派生,复用源码、依赖与产物。
工作区克隆、独立写入与任务现场恢复 静止模板工作区经元数据克隆生成独立目录,未修改对象块共享,新增或修改的数据写入新块;回收计算后保留工作区数据、元数据备份和任务记录,再挂载到新 Sandbox 接续执行。 模板 / 已保存工作区在文件稳定后发起克隆元数据克隆独立目录 · 共享已有块任务独立写入修改写新块 · 保留各自文件新 Sandbox 接续重新挂载 · 恢复任务文件对象数据 + 元数据备份 + 任务记录计算实例可释放,工作区按保留策略持续保存
工作区复用围绕文件系统数据展开:元数据克隆共享既有对象块,后续修改写入新块;现场保留覆盖文件与任务记录,接续执行由新实例加载这些数据。

关键设计与工程取舍

工具共享与数据隔离:只读运行时按版本组织 Claude Code、Codex、OpenCode、Pi 等常用 Agent CLI,多个 Sandbox 复用同一套工具;每个任务绑定独立可写目录,配置、缓存和输出写入所属工作区。只读挂载约束工具修改,工作区访问权限与配额结合租户身份管理。

控制面与执行器分工:Go 控制面统一表达实例生命周期、排队策略、租户配额、预热与工作区映射;预热数量按请求负载配置,实例领取后自动补池。Kubernetes controller 承担资源协调,sandboxd 承担命令执行。E2B 核心接口设计用于降低上层应用接入成本,长期与临时任务共用资源模型。

性能与成本协同:对象存储负责容量,节点缓存负责热点读取,元数据服务处理文件命名空间。通过工具共享和元数据克隆减少重复内容复制,通过缓存和预热减少准备阶段等待;容量费用之外同步考虑请求、网络、缓存与元数据服务开销。

文件现场可恢复:工作区文件长期保存到 S3 兼容对象存储对应的数据块中,目录结构与块索引由 JuiceFS 元数据管理。对象数据保留策略、元数据备份和任务记录关联管理,回收计算与删除工作区采用独立生命周期。

项目价值与技术依据

该架构面向大量任务环境的按需运行:减少每个工作区绑定固定容量云盘的开销,减少重复工具安装与文件拷贝,利用共享运行时和缓存提高资源复用,让计算资源及时释放、任务文件经济地长期保存。价值来自存储分层、生命周期解耦与工作区复用的组合。

技术机制参考:JuiceFS CSI 与持久卷 · 元数据克隆与数据块共享 · 元数据、缓存与对象存储架构 · 元数据备份与恢复。