运营同学问了一句,你的 Agent 得跑一段代码
周三下午三点,运营同学在你做的数据分析助手里传了个 sales_q3.csv,四十万行,然后打了一句:「华东区哪个品类跌得最快?画个图给我看。」
你的 Agent 很快把代码写出来了——读文件、按品类分组、算环比、matplotlib 出图,十几行,看着挺对。
你盯着那十几行,手放在回车键上没敢按下去。
它可能是对的。也可能 groupby 的键拼错了,四十万行直接把内存吃穿;也可能里面有句 pip install matplotlib 把你线上服务的依赖版本换掉;再糟一点,一个路径拼错的 shutil.rmtree。
于是你开始写那套"临时"的容器脚手架:docker run 起一个、把 CSV 和代码塞进去、把 stdout 抓回来、加超时把它杀掉、再写个定时任务扫没退干净的容器。图画出来了要让运营同学看见,你还得回头补端口映射。两周过去,这套脚手架还在修——而它跟你真正想做的那个分析助手,一点关系都没有。
它替你接手的是「执行」这一段
OpenSandbox 是一个给 AI 应用提供隔离执行环境的沙箱平台。 你的 Agent 要跑一段代码时,发一次 API 调用换回一个隔离沙箱;在里面执行命令、读写文件、跑代码、暴露端口都有现成接口;用完销毁,或者干脆不管——超时会自动回收。
接进来的方式随你的技术栈:Python、Java/Kotlin、TypeScript、C#、Go 各有 SDK,osb 命令行用来手工排查,MCP server 让 Claude Code、Cursor 这类客户端直接把沙箱当工具调用。底层跑在 Docker 还是 Kubernetes、用普通容器还是 gVisor 这类强隔离运行时,对调用方来说是同一套接口——所以可以从一台服务器起步,规模上来后换到集群,你的代码不用改。
边界也说清楚:
- 它做:沙箱的创建、暂停、销毁与超时回收;沙箱内的命令执行、文件读写与代码解释;沙箱端口的对外暴露;出网管控与凭证注入
- 它不做:不提供模型,也不是 Agent 框架——决策逻辑、提示词、模型调用都留在你自己的应用里;沙箱里装了什么由你指定的镜像决定,它不预置业务环境
- 代码和数据跑在你自己的服务器上,Apache 2.0 协议,商用无额外限制
通过阿里云计算巢部署,几分钟内开箱可用,不用自己装运行时、配入口网关、调容器权限。

它解决了什么问题
| 你原来怎么干 | 代价 | 用它之后 |
|---|---|---|
在服务进程里直接 exec 模型生成的代码 |
一次死循环或误删就波及线上进程 | 每次执行在独立沙箱里,炸了只炸这一个沙箱 |
手写 docker run 脚手架管容器 |
起停、超时、清理、日志抓取全要自己实现和维护 | 创建、暂停、销毁都是一次 API 调用 |
| 用定时任务扫僵尸容器 | 忘了清理就攒到磁盘满 | 沙箱自带存活时长,到点自己消失 |
| 每轮追问都重新起容器、重读一遍数据 | 四十万行 CSV 读三遍,用户在对话框里等三遍 | 沙箱可以暂停再恢复,上一轮的变量还在 |
| 给沙箱里的服务手工配端口映射 | 每加一个可视化功能就改一次网络配置 | 网关按沙箱路由,问一次端点就能访问 |
| 把真 API Key 塞进容器环境变量 | 沙箱里跑的是模型写的代码,等于把密钥交给它 | 沙箱里只有假 Key,真凭证在出网时才注入 |
回到那个下午:Agent 写完代码,向 OpenSandbox 要一个沙箱,CSV 写进去、代码在里面跑出结果和一张图,图通过网关地址回到对话框里。运营同学看完切去开会,沙箱挂起;半小时后他回来追问「那把去年同期也叠上来」,沙箱恢复,四十万行不用重读一遍。整场对话结束后没人记得销毁,它到点自己消失了。
而更深一层的变化是:执行不再是一个需要权衡风险的决定。以前"让 Agent 真的动手"要先讨论权限边界,讨论的结果往往是把它砍成只生成不运行、只读不写;现在它就是一次调用,跑错了销毁重来。Agent 能做到哪一步,不再取决于你敢不敢让它动手。
跟着这一次提问,看它都做了什么
第一步:给这段代码找个地方跑
运营同学的问题到了,Agent 需要一个不会连坐到线上服务的地方。
- 一次调用换一个沙箱 —— 起停容器、挂载卷、注入环境变量这些细节都收在接口后面,指定镜像和资源上限就行
- 暂停、恢复与到点自动消失 —— 他去开会那半小时沙箱挂起、内存里的 DataFrame 留着,回来一调恢复就接着算;整场对话没人记得销毁也不会攒成僵尸容器,每个沙箱自带存活时长,需要更久可以续期
- 沙箱池预热 —— 首次拉起要两分钟左右(实测冷启动约 130 秒),预热好的沙箱等着被领用,把这段等待挪出 Agent 的执行链路
第二步:把 CSV 送进去,把结果和图取回来
不用为了"送数据进去、取结果出来"再造一层协议。
- 文件读写与命令执行 —— 四十万行的 CSV 直接写进沙箱,跑 shell、装缺的包、取回产出文件,都是 SDK 里的一个方法
- 代码解释器 —— 直接提交那段 pandas 代码,拿回的是结构化结果和 stdout,不用从终端输出里正则抠数字
- 端口暴露与入口网关 —— 图不落地成文件也行,沙箱里起个交互式图表服务、VNC 或 VS Code,问一次端点就有可访问地址,不用手工配端口映射
第三步:代码要调外部接口,但不能拿到你的 Key
这段代码是模型写的,所以按"它可能干任何事"来设计防线。
- 凭证代理 —— 沙箱内的环境变量是假 Key,真凭证由出网组件在请求发出时按域名和路径注入,工作负载始终拿不到明文
- 出网白名单 —— 默认拒绝所有外连,只放通显式允许的域名
- 强隔离运行时 —— 需要更硬的边界时,可换用 gVisor、Kata Containers 或 Firecracker 微虚机

谁最该用
| 用户类型 | 典型场景 | 用它拿到什么 |
|---|---|---|
| AI Agent / Coding Agent 开发者 | Agent 要执行自己生成的代码、跑测试、改文件 | 不用维护容器脚手架,执行环境按需领用 |
| Agent 评测与强化学习训练团队 | 一轮跑几百个 trial,每个都要干净环境 | 沙箱批量创建与池化,trial 之间互不污染 |
| 提供「在线跑代码」能力的产品团队 | 在线 IDE、数据分析对话、编程教学平台 | 现成的隔离执行加端口暴露,不用自建多租户沙箱 |
| 平台与基础设施团队 | 公司内几个 Agent 团队各搭一套执行环境 | 收敛成一套统一的执行底座和统一的出网管控 |
技术支持
🚀 立即体验
→ 一键部署 OpenSandbox
部署完成后在实例详情页拿到 API 地址和 API Key,请求头带上 OPEN-SANDBOX-API-KEY,调一次 POST /sandboxes 就能拿到你的第一个沙箱。