跳到正文
火山引擎Agent社区· 火山引擎Agent社区·· 5 小时前精选AI 评分68

从代码执行到任务持续运行:企业级 Agent Sandbox 的云原生实践

AI 导读

火山引擎推出 VCI Agent Sandbox,将 Agent 执行环境抽象为 Kubernetes 原生可声明、可管理、可回收的工作负载,基于 kubernetes-sigs/agent-sandbox 开源社区标准构建,提供进程、存储与网络隔离能力。

推荐理由

文章给出了 VCI Agent Sandbox 的云原生架构、增强能力与规格选型,可帮助 Kubernetes 团队评估其与现有基础设施的融合方式。

正文

点击上方👆蓝字关注我们!

当一个 Coding Agent 开始真正干活,它要做的远不止调用模型——拉取代码、安装依赖、执行测试、修改文件,然后在几小时后的下一轮对话里接着上次的环境继续。这些执行环境从哪里来、彼此如何隔离、空闲时谁来释放?VCI Agent Sandbox 给出的答案是:把 Agent 的执行环境,变成 Kubernetes 原生可声明、可管理、可回收的工作负载。

Agent 执行环境需要云原生管理

从生成答案到执行任务,Agent 面对的不再只是文本输入输出。不同Agent场景需要的数据、权限均不相同,且Agent执行动作都会改变环境,也让权限、数据和网络访问成为必须管理的边界。

Coding Agent场景:需要约束进入生产应用的运行进程。即使目标任务是正常的数据分析或代码修复,执行过程也可能出现错误的文件操作、依赖冲突或失控的资源消耗。将代码放在独立 VCI Agent Sandbox 中执行,让 Agent 在外部编排任务、接收结果,可以减少执行异常对主应用和其他任务的影响。

Computer-use Agent场景:需要隔离代码及Agent操作权限。浏览器、桌面与文件系统为 Agent 提供了完成任务的工具,也可能让误操作直接影响业务数据。因此,应为任务准备独立的浏览器或桌面环境,只提供必要的文件和身份凭据,限制可访问的网络目标;涉及交易、授权等高影响操作,仍需人工确认。

Agent RL 与评测场景:需要独立试错的环境。不同任务和探索分支需要各自的文件、依赖与环境状态,避免上一轮运行留下的修改影响下一轮结果。将环境执行与模型推理、训练流程分开,便于分别管理它们的资源与生命周期:模型服务持续提供决策,执行环境按任务准备、重置或回收。

整合不同场景下的Agent需求,Agent 执行任务,不等于让它拥有业务系统的权限,企业需要同时解决两件事:

  • 把Agent执行风险限制在明确边界内;

  • 让独立的 VCI Agent Sandbox 与企业现有基础设施联动,进入统一的运维体系。

Agent Sandbox:执行环境独立,基础设施与运维方式统一运行

隔离执行风险,并不意味着企业需要为 Agent Sandbox重新搭建一套孤立的平台。对于已经使用 Kubernetes 承载 Agent 服务、任务编排与业务应用的团队,Agent Sandbox更适合成为企业原有云原生基础设施的一部分:运行边界保持独立,管理方式保持一致。在 Kubernetes 中管理 Agent Sandbox,已经有了社区标准化的资源模型与开源控制器,企业不必再从零自研一套通用生命周期管理逻辑。kubernetes-sigs/agent-sandbox 将独立执行环境抽象为可声明、可管理的资源,让上一节所说的“执行有边界、管理能联动”有了现成的开源基础。

  • 与现有 Agent 基础设施联动。对于基于 Kubernetes 构建 Agent 基础设施的企业,任务编排服务与沙箱执行环境可以建立在同一套云原生底座之上。Agent Sandbox 以 Kubernetes 资源的形式纳入现有平台,与 Agent 服务协同运行,复用已有的镜像、网络、存储及资源管理体系。企业无需为执行环境另建一套割裂的基础设施,就能在保持任务隔离的同时,实现编排与执行的统一管理。

  • 与运维团队的工作方式联动。用户使用声明式方式定义VCI Agent Sandbox所需的镜像、资源与存储,由管理组件自动对齐到 Agent Sandbox 环境的目标状态,过程中遇到问题自动重试、回滚。能够减少散落在各个业务里的创建、轮询和清理脚本。

企业需要的不是孤立的代码执行容器,而是“执行有边界、管理运维能联动”的 Agent Sandbox 体系。应用开发者专注 Agent 的任务编排,平台与运维团队统一管理云原生的 Agent Sandbox 执行环境。

VCI Agent Sandbox:为企业提供一套完整的Agent执行环境和运维管理基座

火山引擎弹性容器实例(Volcengine Container Instance,简称 VCI)是一种 Serverless 和容器化的计算服务,无缝集成火山引擎容器服务(VKE),提供 Kubernetes 编排能力。

VCI 基于社区 Agent Sandbox(https://github.com/kubernetes-sigs/agent-sandbox),结合火山引擎公有云通用产品能力,深度开发支撑大规模运行 AI Agent 的载体,建设专用于管理 AI Agent 的代码执行环境,使之具备强进程隔离,存储隔离和网络隔离能力。

想了解更多产品能力点击: https://docs.volcengine.com/docs/vke/Feature_introduction?lang=zh

VCI Agent Sandbox设计理念:

  • 原生接入,沿用已有工具与治理机制。VCI Agent Sandbox资源可以通过 Kubernetes API 与 kubectl 管理,复用 API 层的认证、授权与审计机制,按需配置访问权限。开发/运维团队不用为VCI Agent Sandbox另学一套管理接口,围绕 Kubernetes API 建设的自动化流程也有了对接基础。作为原生扩展,项目可以随 Kubernetes 生态演进持续适配。

  • 开放共建,让需求与能力持续迭代。社区设有公开的讨论、代码评审和子项目会议,发布记录持续覆盖 SDK、预热池、运行时访问和可观测性等方向的改进。企业遇到的共性问题可以进入上游讨论,已经解决的问题也能成为其他团队可复用的成果。相比每家企业独自维护一套私有实现,社区协作有助于减少重复建设,让更多工程投入用于自己的业务差异。

  • 厂商中立,为运行环境保留选择权。项目以公开的资源模型为基础,并支持不同运行时、保持厂商中立为设计目标。企业可以围绕共同接口建设环境模板和管理流程,降低对单一厂商私有 API 的依赖。

对于需要隔离执行的 Agent 任务,VCI 的 microvm 运行时提供虚拟机级隔离环境;在此基础上,企业可通过 Kubernetes RBAC 管理VCI Agent Sandbox资源的操作权限,通过资源配额约束使用规模,并结合网络安全组控制允许的网络访问。运行时隔离、管理权限和网络访问各司其职,让不同租户、不同任务的执行环境具备清晰边界,减少单个任务异常对主应用与其他任务的影响。

在社区编排基础上,让环境准备、恢复与存储适配更高效

1. 镜像缓存:将镜像准备前置,减少启动等待。通过 ImageCache 提前准备任务所需的镜像数据,降低并发启动时集中拉取镜像对仓库和网络的压力,让环境更快进入可执行状态。

2. 快照管理:保留工作文件,减少恢复时的重复准备。在社区暂停/恢复机制之上,VCI 引入 SandboxSnapShot 与 SandboxSnapShotClass,统一描述快照、状态与保留策略。VCI Agent Sandbox恢复时可基于保存的工作状态重建环境,不必重新准备已有文件和依赖。

3. 差异化存储挂载:共用环境模板,认领时接入各自数据。预热池通常基于同一 SandboxTemplate 准备实例,而不同租户或任务的数据需求并不相同。VCI 提供预挂载与动态挂载两种模式:预挂载在固定目录下替换存储卷或子目录;动态挂载则在认领时指定目录并追加挂载。这样,同类任务可以复用环境模板,同时按授权接入各自工作数据。

联动云上资源,将 VCI Agent Sandbox 纳入企业统一运维体系

  • 观测与告警:看见任务运行,也看见资源使用。围绕 VCI Agent Sandbox 的指标、日志与事件,对接企业已有观测体系;结合托管 Prometheus、TLS 云日志和消息通知,建立从运行状态、资源水位到异常排查的运维链路。

  • 持久化存储:将工作数据与计算实例生命周期分开管理。按数据访问方式接入对象存储 TOS、弹性文件存储 EFS:前者用于对象数据与任务产物,后者用于文件目录与共享工作空间。

  • 网络与访问:让调用入口与企业网络架构衔接。通过负载均衡 CLB、API 网关 等组件,按部署方案承接 VCI Agent Sandbox 管理与执行请求,让 Agent 应用在受控链路中访问执行环境。

VCI Agent Sandbox最佳实践

CodingAgent 的云上 AI Coding

企业 Coding Agent 需要在云端执行代码、管理工作文件,并在多轮会话之间延续任务状态。借助 VCI Agent Sandbox,某CodingAgent实现了云上 AI Coding 的代码运行:每个任务获得独立 VCI Agent Sandbox,环境按需创建、用后回收,工作文件随 VCI Agent Sandbox 保留,多轮任务可以接着上次继续。

办公个人助理的云上 AI Docs

某办公个人助理借助 VCI Agent Sandbox 实现云上 AI Docs:用户文件旁路上传至 TOS 云存储,按授权挂载到独立沙箱内,由 Agent 通过 E2B 调用沙箱执行代码与文档处理,生成产物写回云存储并返回客户端,实现任务编排、隔离执行与文档存储的解耦。

回到开头的场景:当 Agent 开始执行代码、产生工作文件、并在下一次对话里继续任务,这些执行环境需要一个统一的答案。VCI Agent Sandbox 的答案可以概括成三句话:

  • 对齐社区标准,资源模型来自 kubernetes-sigs/agent-sandbox,不被单一厂商绑定;

  • 先行增强能力,在兼容之上拓展 imagecache、sandboxsnapshot 等关键特性,并用 E2B SDK 保留熟悉的调用方式;

  • 按场景选择算力:需要企业级计算性能的任务,可选择 vci.n4i;需要长期保留开发环境与工作数据的开发机、多轮 Agent 场景,可选择 vci.u1;对启动时延和并发创建能力要求较高的 RL、批量评测等场景,可选择 vci.s1。

附录:VCI Agent Sandbox资源选型参考

不同 Agent 任务对执行环境的诉求并不相同:有的关注批量启动与并发,有的需要长期保留工作空间,有的依赖指定 CPU 或 GPU。

可以按下面的典型场景选择规格族,再结合实际任务确定资源配置。

推荐规格族

优势

适用场景

vci.s1

低启动时延、高并发弹性

Agent RL、批量评测与短时高频任务。例如并行 rollout 中的代码执行环境、无需 GPU 的奖励计算与测试判题、批量代码修复验证,以及突发工具调用任务。

  • 当环境准备成为训练流水线瓶颈时,降低 VCI Agent Sandbox 就绪等待有助于减少训练 GPU 等待环境或结果的时间。

vci.u1

开发机、长期工作空间与原生 Pod 管理

云端开发机、长时 Agent 与多轮会话。例如 Coding Agent 的仓库拉取、依赖安装、代码修改和测试,个人助理的长期工作目录,Notebook/数据分析会话,以及需要持续保留文件的浏览器或 computer-use 工作空间。适合更关注持久化存储、集群内访问及较完整原生 Pod 运维方式的团队。

vci.n4i

vci.n3i

vci.n3a

指定 CPU 品牌、代次或计算性能

已发现 CPU 瓶颈,或对处理器平台有明确要求的 AI 任务。例如 Coding Agent 的大型仓库编译、C/C++ 扩展构建;CPU 密集的自动化测试、仿真与奖励计算;数据清洗、分词和特征预处理;以及使用特定 CPU 优化库的推理或数值计算。

GPU 系列

执行过程直接依赖 GPU

必须在VCI Agent Sandbox内使用 GPU 的任务。例如生成、调试与评测 CUDA/Triton GPU kernel,构建并验证 GPU 算子或扩展,本地模型推理、图像生成,以及 GPU 加速的仿真与渲染。

如果你所在的团队已经基于 Kubernetes 构建代码执行、Coding Agent 工作空间或批量评测环境,欢迎申请 VCI Agent Sandbox 试用,带着一个真实任务来验证:环境就绪快不快、状态保留是否符合预期、资源账单是否可控、和现有 Kubernetes 平台能否顺利融合。点击阅读原文联系我们。

来源:火山引擎Agent社区 · mp.weixin.qq.com