乐于分享
好东西不私藏

AI Agent Sandbox 开源项目技术分析:从容器到 MicroVM,谁更适合跑下一代 Agent?

AI Agent Sandbox 开源项目技术分析:从容器到 MicroVM,谁更适合跑下一代 Agent?

过去一年,AI Agent 的基础设施焦点正在从“如何调用模型”转向“如何安全地让模型干活”。

只要 Agent 开始执行代码、操作文件、访问网页、安装依赖、调用系统命令,问题就不再是 prompt engineering,而是一个更底层的工程问题:我们到底要把这个不完全可控的执行体放在哪里?

这就是 Agent Sandbox 重新变热的原因。

传统沙箱解决的是“不信任代码”的问题;AI Agent 沙箱解决的是“不完全信任一个会自己规划、自己调用工具、自己产生副作用的系统”的问题。它既要隔离风险,又要保留足够真实的运行环境;既要启动快、成本低,又要支持浏览器、终端、文件系统、MCP、IDE、Jupyter 等复杂工具链。

本文横向分析 8 个值得关注的开源项目:

CubeSandboxmicrosandboxOpenSandboxagent-infra/sandboxkubernetes-sigs/agent-sandboxrivet-dev/sandbox-agentopenbrowsercontext-mode

结论先放前面:

如果你要做生产级、大规模、高并发 Agent 运行时,优先看 CubeSandbox;如果你要做本地开发、可嵌入 SDK、跨平台体验,优先看 microsandbox;如果你只是想快速给 Agent 配齐浏览器、终端、文件和 VSCode,agent-infra/sandbox 更实用;如果团队基础设施已经深度 Kubernetes 化,kubernetes-sigs/agent-sandbox 是更自然的云原生入口。

至于 openbrowser、context-mode、sandbox-agent,它们更像是 Agent 运行时生态里的专用组件,不应和完整沙箱运行时放在同一个维度里简单比较。

一、为什么 Agent 需要专门的 Sandbox?

普通应用沙箱通常关注三个问题:

1.代码能不能逃逸?2.资源能不能被限制?3.文件和网络能不能隔离?

Agent 沙箱还要多回答几个问题:

1.能不能高频创建和销毁环境?2.能不能保留会话状态?3.能不能在隔离环境里跑浏览器、Shell、包管理器、代码解释器?4.能不能对外暴露稳定 API,让模型、编排器、MCP 工具链统一调用?5.能不能在成本上支撑成百上千个并发 Agent?

这也是为什么 Docker 容器并不是终局。

容器的优势是生态成熟、镜像丰富、部署简单;但它共享宿主机内核,在多租户和不可信执行场景下,安全边界不够硬。传统 VM 隔离更强,但启动慢、内存重、部署密度低。MicroVM 则试图站在两者中间:用接近 VM 的隔离换取接近容器的启动速度和资源密度。

Agent Sandbox 的主战场,正在向 MicroVM、eBPF 网络隔离、快照恢复、预热池和标准化控制 API 收敛。

二、项目横向概览

项目
Stars
主语言
核心定位
更像什么
CubeSandbox
5.1k
Rust
高性能 MicroVM 沙箱服务
生产级 Agent 运行时
microsandbox
6.0k
Rust
本地、安全、可编程沙箱
开发者友好的嵌入式运行时
OpenSandbox
10.5k
Python
安全、快速、可扩展沙箱运行时
企业级沙箱框架
agent-infra/sandbox
4.5k
Python
Browser、Shell、File、MCP、VSCode 一体化容器
All-in-One 工具环境
kubernetes-sigs/agent-sandbox
2.1k
Go
管理隔离、有状态、单例工作负载
K8s 原生控制面
rivet-dev/sandbox-agent
1.3k
TypeScript
通过 HTTP 控制 Coding Agent
Agent 控制层
openbrowser
9.4k
TypeScript
让 AI Agent 浏览网页
浏览器自动化工具包
context-mode
13.5k
TypeScript
优化 AI coding agent 上下文窗口
上下文输出沙箱/压缩层

这 8 个项目其实可以分成四类。

第一类是完整沙箱运行时,代表是 CubeSandbox、microsandbox、OpenSandbox。它们关心隔离、启动、资源、网络、存储、生命周期和 API。

第二类是工具型沙箱环境,代表是 agent-infra/sandbox。它不追求最强隔离,而是追求“Agent 一进去就什么都有”:浏览器、Shell、文件系统、MCP、VSCode Server、Jupyter。

第三类是云原生控制面,代表是 kubernetes-sigs/agent-sandbox。它的重点不是重新发明虚拟化,而是把 Agent 运行环境抽象成 Kubernetes 里的声明式资源。

第四类是生态组件,代表是 sandbox-agent、openbrowser、context-mode。它们不是完整的底层隔离方案,但解决了 Agent 系统里的关键局部问题:控制多种 Coding Agent、让 Agent 浏览网页、减少工具输出对上下文窗口的污染。

三、评估框架:看沙箱不能只看 Star

我用 4 个维度评估这些项目:

维度
权重
关注点
技术架构
25%
隔离级别、虚拟化方案、网络隔离、存储设计
运行时能力
30%
冷启动、内存开销、并发密度、快照、弹性
工程成熟度
25%
API、SDK、可观测性、生命周期管理、生产可用性
生态适配
20%
Agent 兼容性、MCP、部署方式、许可证与治理

综合评分如下:

项目
架构
运行时
工程
生态
总分
一句话判断
CubeSandbox
95
98
85
80
90.4
性能和隔离最激进,适合生产规模化
microsandbox
90
92
88
85
88.9
开发者体验最好,适合本地和嵌入式场景
agent-infra/sandbox
65
70
90
88
77.4
功能最全,但隔离层级不如 MicroVM
OpenSandbox
85
75
75
70
76.5
企业级定位明确,适合安全合规型需求
kubernetes-sigs/agent-sandbox
70
65
80
85
73.8
适合已有 K8s 基础设施的团队
sandbox-agent
60
70
78
90
73.2
更像多 Agent 控制层,不是底层沙箱
openbrowser
50
65
75
75
65.5
浏览器自动化专家,适合作为组件集成
context-mode
30
80
70
65
59.5
解决上下文污染问题,不是传统沙箱

评分高低不代表绝对好坏。Agent 沙箱选型最容易犯的错误,就是把“底层隔离能力”“开发环境完整度”“Agent 控制协议”“浏览器自动化能力”混在一起比。

CubeSandbox 和 openbrowser 不是同一类东西;microsandbox 和 context-mode 也不是同一层能力。更合理的方式是先明确你要解决的主要矛盾。

四、重点项目分析

1. CubeSandbox:高性能生产运行时的强候选

CubeSandbox 的定位很清晰:Instant, Concurrent, Secure & Lightweight Sandbox for AI Agents。

它的关键卖点是三个指标:

冷启动小于 60ms,P99 小于 150ms内存开销小于 5MBE2B API 兼容,降低迁移成本

从架构上看,CubeSandbox 是典型的生产运行时设计:

CubeAPI  -> CubeMaster  -> Cubelet / CubeProxy / CubeVS  -> CubeHypervisor / CubeShim  -> KVM MicroVM

其中 CubeVS 使用 eBPF 做网络相关能力,底层通过 KVM 和 RustVMM 组件构建 MicroVM 隔离。这个方向的核心价值是:在接近硬件虚拟化的隔离边界下,把启动速度和资源开销压到可接受范围。

CubeSandbox 更适合这些场景:

大规模 Agent 执行平台多租户代码运行环境E2B 替代或成本优化对冷启动和部署密度非常敏感的生产系统

它的短板也很明确:

主要面向 Linux 生产环境项目较新,社区和 SDK 生态还需要时间积累架构更重,团队需要具备运行时、网络和集群运维能力

如果你要做的是“内部工具给几个 Agent 跑命令”,CubeSandbox 可能过重;如果你要做的是“一个 Agent 云平台”,它值得重点 POC。

2. microsandbox:最像开发者产品的 MicroVM 沙箱

microsandbox 的一句话定位是:secure, local and programmable sandboxes for AI agents。

和 CubeSandbox 相比,它没有把自己包装成大型集群运行时,而是更强调本地、安全、可编程、可嵌入。

典型使用方式类似这样:

use microsandbox::Sandbox;let sandbox = Sandbox::builder("my-sandbox")    .image("python")    .cpus(1)    .memory(512)    .create()    .await?;let output = sandbox    .exec("python", ["-c""print('hello from sandbox')"])    .await?;

它的技术关键词包括:

libkrunKVM-based microVMsmoltcp 用户态网络OCI 镜像Rust / Python / TypeScript SDKMCP 支持

microsandbox 的优势是开发者体验。它更像一个可以被应用直接嵌入的沙箱 SDK,而不是只能由平台团队部署的基础设施组件。

它适合:

本地 Agent 开发环境桌面端或开发工具内嵌沙箱需要跨平台支持的团队需要快速验证 Agent 执行能力的产品

它的风险在于生产验证相对不足。如果你的目标是高并发、多租户、长期运行的云服务,仍然需要重点压测它的网络、存储、快照、资源隔离和异常恢复能力。

3. OpenSandbox:企业级安全沙箱的稳健路线

OpenSandbox 来自阿里巴巴,定位是 Secure, Fast, and Extensible Sandbox runtime for AI agents。

它更像企业工程体系里的沙箱框架:强调安全、扩展性、Kubernetes 相关能力和企业落地。相较于 CubeSandbox 的性能叙事和 microsandbox 的开发者体验,OpenSandbox 的关键词是“安全”和“可扩展”。

适合关注:

企业内部 AI 应用运行时需要审计、合规、安全治理的场景已经在阿里云或类似企业基础设施上的团队对 Python 生态和快速二次开发有偏好的团队

它不是性能指标最激进的项目,但在企业级语境下,极限性能往往不是唯一目标。权限模型、审计、隔离策略、部署治理、长期维护,可能更重要。

4. agent-infra/sandbox:不是最硬的沙箱,但最快能用

agent-infra/sandbox 的定位非常直接:All-in-One Sandbox for AI Agents。

它把 Browser、Shell、File、MCP、VSCode Server 放进一个 Docker 容器里。这个思路不追求最强隔离,而是追求开箱即用。

典型架构可以理解为:

Browser + VNCVSCode Server + Shell + File Ops + JupyterMCP Hub + Preview Proxy + MonitoringDocker Container

对于很多产品团队来说,这反而是最现实的第一步。因为早期问题通常不是“我能否支撑 5000 个并发 MicroVM”,而是“我的 Agent 能不能稳定打开浏览器、执行命令、读写文件、启动预览服务”。

它适合:

原型验证内部开发测试Agent Demo 环境需要浏览器、终端、文件、IDE 一体化的任务

它不适合:

强多租户隔离高风险不可信代码执行对冷启动和资源密度极端敏感的生产环境

一句话:agent-infra/sandbox 是效率优先,不是安全边界优先。

5. kubernetes-sigs/agent-sandbox:把 Agent Runtime 变成 K8s 资源

kubernetes-sigs/agent-sandbox 的重点不是底层虚拟化,而是管理模型。

它通过 Kubernetes CRD 管理 isolated、stateful、singleton workloads,典型资源包括:

SandboxClaimSandboxTemplateSandboxSandboxWarmPool

可以把流程理解成:

User  -> SandboxClaim  -> SandboxTemplate  -> Sandbox  -> Pod  -> Runtime

它的价值在于把 Agent 沙箱纳入 Kubernetes 现有体系:声明式 API、Controller、调度、命名空间、RBAC、监控、日志、资源配额、GitOps。

如果你的公司已经有成熟 K8s 平台,这条路会很顺。你不需要重新训练团队理解一套全新的集群控制面。

但它也继承了 Kubernetes 的复杂度。对于小团队、单机开发、桌面 Agent、早期产品验证来说,它不是最低成本方案。

6. sandbox-agent:统一控制 Coding Agent,而不是重新做隔离

rivet-dev/sandbox-agent 的核心价值是 Universal Agent API。

它支持通过 HTTP 控制 Claude Code、Codex、OpenCode、Amp 等 Coding Agent,并通过统一会话 schema 输出事件。

这类项目解决的是另一个问题:当你想在产品里接入多个 Coding Agent 时,不应该让业务系统分别适配每一种 CLI、事件流和会话格式。

它适合:

Coding Agent 平台多 Agent 对比和路由统一会话记录、回放、审计在已有沙箱之上增加控制层

它不应该被当作底层安全沙箱。更合理的组合是:底层用 CubeSandbox、microsandbox、E2B、Daytona 或自研容器运行环境,上层用 sandbox-agent 统一控制不同 Agent。

7. openbrowser:Agent 的浏览器能力组件

openbrowser 聚焦一个具体问题:让 AI Agent 浏览网页。

在 Agent 系统里,浏览器不是普通工具。它有复杂状态:页面、DOM、cookie、localStorage、下载、弹窗、跨域、验证码、长任务、网络请求。直接把 Playwright 暴露给模型,往往会导致上下文噪声和操作不稳定。

openbrowser 的价值在于把浏览器自动化能力封装成更适合 Agent 使用的接口。

它适合:

Web 自动化 Agent信息检索和网页操作表单填写、页面截图、流程验证作为完整沙箱环境里的浏览器层

但它不是完整 Agent Sandbox。浏览器隔离不等于系统隔离;网页自动化能力也不等于代码执行安全。

8. context-mode:上下文窗口也是一种“沙箱”

context-mode 很有意思,因为它不是传统意义上的运行时沙箱。

它解决的是另一个真实问题:工具输出污染上下文窗口。

Agent 执行命令时,经常会把大量日志、文件内容、搜索结果、测试输出塞回模型上下文。结果是 token 成本上升,关键线索被噪声淹没,长任务稳定性变差。

context-mode 的思路是对工具输出做隔离和压缩,让模型只看到必要信息。它声称可以减少 98% 的工具输出 token 消耗。

这不是安全隔离,但它是认知隔离:把执行环境里的噪声挡在模型上下文之外。

它适合和其他沙箱组合使用,而不是单独替代沙箱运行时。

五、怎么选:先判断你的主要矛盾

场景一:你要做生产级 Agent 执行云

优先看 CubeSandbox。

原因很简单:生产级平台最怕三个东西:启动慢、密度低、隔离弱。CubeSandbox 的设计就是冲着这三个问题去的。

备选可以看 microsandbox,但需要更严格的生产压测。

场景二:你要做本地开发工具或 Agent SDK

优先看 microsandbox。

它的嵌入式 API、多语言 SDK、跨平台支持,对开发者产品更友好。你可以把它理解成“给每个 Agent 一个可编程的小电脑”。

场景三:你要快速做 Demo 或内部原型

优先看 agent-infra/sandbox。

它的价值不是隔离极致,而是把浏览器、终端、文件、IDE、MCP 这些东西一次性配齐。早期产品最缺的是反馈速度,不是完美架构。

场景四:你已经有成熟 Kubernetes 平台

优先看 kubernetes-sigs/agent-sandbox。

它能把 Agent 沙箱纳入已有 K8s 治理体系,适合平台团队推动,而不是每个业务组各自维护一套运行环境。

场景五:你要做 Coding Agent 平台

底层沙箱和上层控制要分开看。

底层可以是 CubeSandbox、microsandbox、容器或云厂商沙箱;上层可以用 sandbox-agent 统一控制 Claude Code、Codex、OpenCode、Amp 等 Agent。

这个分层非常重要。隔离环境负责“安全地跑”,控制层负责“稳定地管”。

场景六:你的 Agent 主要操作网页

openbrowser 可以作为浏览器能力层。

但如果网页操作之外还要执行系统命令、安装依赖、处理文件,就仍然需要完整沙箱承载。

场景七:你已经被工具输出撑爆上下文

看 context-mode。

它不是运行时隔离方案,但可能显著改善长任务 Agent 的上下文质量和 token 成本。

六、一个更实用的架构分层

真正落地时,不建议寻找“一个项目解决所有问题”。更现实的 Agent Runtime 架构通常分四层:

Agent Control Layer  统一控制 Claude Code / Codex / OpenCode / 自研 AgentTool Layer  Browser / Shell / File / MCP / IDE / JupyterSandbox Runtime Layer  MicroVM / Container / K8s Pod / Serverless SandboxInfrastructure Layer  Network / Storage / Image / Snapshot / Observability / Policy

对应到项目:

控制层:sandbox-agent浏览器工具层:openbrowser上下文优化层:context-mode一体化工具层:agent-infra/sandbox底层运行时:CubeSandbox、microsandbox、OpenSandbox云原生管理层:kubernetes-sigs/agent-sandbox

把这些层次分清楚,选型会简单很多。

例如,一个生产级 Coding Agent 平台可以这样组合:

前端产品  -> Agent 编排服务  -> sandbox-agent 统一控制 Claude Code / Codex  -> CubeSandbox 提供 MicroVM 执行环境  -> openbrowser 提供浏览器操作能力  -> context-mode 控制工具输出进入上下文的粒度  -> K8s / 自研调度系统管理资源池

这比押注单一项目更符合工程现实。

七、趋势判断

1. MicroVM 会成为高安全 Agent Runtime 的主流方向

容器不会消失,但在不可信代码、多租户、云端 Agent 执行场景里,MicroVM 的吸引力会越来越强。

关键原因不是“VM 更高级”,而是隔离边界更容易解释,也更容易通过安全审计。

2. 冷启动会成为核心竞争指标

Agent 任务天然碎片化:创建环境、执行命令、暂停、恢复、销毁。启动慢会直接转化成用户等待和基础设施成本。

未来优秀沙箱的标准大概率是:

冷启动小于 100msP99 可控内存开销小于 20MB支持预热池和快照恢复

3. MCP 会推动工具层标准化

Agent 不可能只用 Shell。浏览器、文件、数据库、CI、代码编辑器、内部系统都需要被统一暴露给模型。

MCP 的普及会让沙箱不再只是“运行代码的地方”,而是“托管工具能力的边界”。

4. 上下文管理会成为运行时的一部分

过去我们认为沙箱只隔离 CPU、内存、文件、网络。Agent 时代还要隔离信息流。

哪些工具输出能进入模型上下文?哪些日志只进审计系统?哪些文件内容需要摘要?这些问题会逐渐进入 Agent Runtime 的设计范围。

5. 生产平台会走向组合式,而不是单体式

最有可能胜出的不是“一个超级沙箱项目”,而是一套可组合栈:

MicroVM 负责安全执行K8s 或自研调度负责资源管理MCP 负责工具协议Agent 控制层负责会话和事件上下文层负责信息压缩可观测性系统负责审计和回放

这也是为什么本文不建议只按 stars 排序选型。

八、最终建议

如果只给一个选型表,我会这样建议:

目标
首选
备选
生产级高性能 Agent 沙箱
CubeSandbox
microsandbox
本地开发和 SDK 嵌入
microsandbox
agent-infra/sandbox
企业安全合规
OpenSandbox
CubeSandbox
快速原型和内部 Demo
agent-infra/sandbox
microsandbox
K8s 原生管理
kubernetes-sigs/agent-sandbox
自研 CRD + 底层沙箱
多 Coding Agent 控制
sandbox-agent
自研适配层
浏览器自动化
openbrowser
Playwright 自研封装
上下文优化
context-mode
自研工具输出摘要

更重要的是,不要把 Agent Sandbox 当成一个单点组件。

它会逐渐变成 Agent 基础设施的核心边界:模型在边界外思考,工具在边界内执行;策略决定什么能做,审计记录做了什么,运行时保证做坏了也不会污染宿主系统。

如果说 RAG 解决的是“Agent 知道什么”,MCP 解决的是“Agent 能调用什么”,那么 Sandbox 解决的就是最关键的问题:

Agent 真正动手时,风险被关在哪里?

附录:项目链接

项目
GitHub
文档
CubeSandbox
https://github.com/TencentCloud/CubeSandbox[1] https://docs.cubesandbox.ai[2]
microsandbox
https://github.com/superradcompany/microsandbox[3] https://docs.microsandbox.dev[4]
OpenSandbox
https://github.com/alibaba/OpenSandbox[5] https://open-sandbox.ai[6]
agent-infra/sandbox
https://github.com/agent-infra/sandbox[7] https://sandbox.agent-infra.com[8]
kubernetes-sigs/agent-sandbox
https://github.com/kubernetes-sigs/agent-sandbox[9] https://agent-sandbox.sigs.k8s.io[10]
sandbox-agent
https://github.com/rivet-dev/sandbox-agent[11] https://sandboxagent.dev[12]
openbrowser
https://github.com/ntegrals/openbrowser[13]
context-mode
https://github.com/mksglu/context-mode[14] https://context-mode.com[15]

References

[1]https://github.com/TencentCloud/CubeSandbox[2]:https://docs.cubesandbox.ai[3]:https://github.com/superradcompany/microsandbox[4]:https://docs.microsandbox.dev[5]:https://github.com/alibaba/OpenSandbox[6]:https://open-sandbox.ai[7]:https://github.com/agent-infra/sandbox[8]:https://sandbox.agent-infra.com[9]:https://github.com/kubernetes-sigs/agent-sandbox[10]:https://agent-sandbox.sigs.k8s.io[11]:https://github.com/rivet-dev/sandbox-agent[12]:https://sandboxagent.dev[13]:https://github.com/ntegrals/openbrowser[14]:https://github.com/mksglu/context-mode[15]https://context-mode.com