背景
在 AI Agent 爆发的今天,越来越多的开发者开始构建自动化的“智能体”。从写代码、查资料到自动化运维,Agent 似乎无所不能。
但随之而来的,是一个极其致命的安全隐患:你敢让 AI Agent 在你的宿主机上直接执行代码或 Shell 命令吗?
一旦大模型出现幻觉,或者遭受 Prompt 注入攻击,它可能会顺手执行个 rm -rf /,或者把你 .ssh 里的私钥全都打包发走。
为了隔离风险,大家通常会引入沙盒。但传统的沙盒往往是“单点”的:
- 跑代码用一套沙盒(单独的 Python 容器)
- 网页抓取用另一套(无头浏览器容器)
这种碎片化导致了一个巨大的痛点:上下文与文件系统割裂。Agent 在浏览器里下载的文件,代码沙盒里读不到,来回搬运文件极其痛苦。

今天要介绍的是由字节跳动开源团队打造的一款“硬核”基础设施——AIO Sandbox(agent-infra/sandbox)。它或许能提供一个更优雅的答案。
什么是 AIO Sandbox?
AIO Sandbox (All-in-One Sandbox) 顾名思义,是一个专为 AI Agent 设计的全能型执行环境。
它将 Browser(浏览器)、Shell(终端)、File(文件系统)、Code Runtime(代码运行环境)以及 VSCode Server 全部塞进了一个轻量级的 Docker 容器中。

与东拼西凑的隔离方案不同,AIO Sandbox 更加深入和原生:它是一个一体化的 Agent 沙盒环境,在单个容器中结合了浏览器、Shell、文件、MCP 操作和 VSCode Server。基于云原生轻量级沙盒技术构建,它为 AI Agent 和开发者提供了统一的沙盒环境。

工作原理
AIO Sandbox 的底层基于云原生容器技术构建,在安全与便捷之间做了很好的平衡:
- 统一文件系统联动: 容器内部所有的组件共享工作区。Agent 通过控制浏览器完成验证码操作并下载报表后,Python 脚本可以直接在同目录下读取并处理该文件。
- 安全的隔离机制: 提供了独立的 Python 和 Node.js 执行环境,并在容器层面利用 Docker 的隔离特性,保证宿主机的绝对安全。
- 丰富的 SDK 支持: 官方提供了 Python、TypeScript 甚至 Go 的 SDK。你的 Agent 业务代码可以像调用本地方法一样,远程控制沙盒内的各种行为,这在构建复杂的 AI Agent 工作流时至关重要。
使用
方式一:Docker 一键启动(推荐体验)
不需要修改任何代码,只要你本地有 Docker,直接在终端运行以下命令:
docker run --security-opt seccomp=unconfined --rm -it -p 8080:8080 ghcr.io/agent-infra/sandbox:latest
(注:国内网络环境可以使用官方提供的加速镜像 enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest)

启动完成后就可以直接通过 web 访问各种沙盒环境了:

方式二:在项目中通过 SDK 深度集成
在你的 AI Agent 代码中,引入 SDK(以 Python 为例):
# pip install agent-sandbox
from agent_sandbox import Sandbox
# 连接到刚才启动的沙盒
client = Sandbox(base_url="http://localhost:8080")
# 1. 让 Agent 执行 Shell 命令
result = client.shell.exec_command(command="ls -la")
print(result.data.output)
# 2. 让 Agent 读写文件
client.file.write_file(file="/home/user/hello.txt", content="Hello AIO Sandbox")
# 3. 让 Agent 控制浏览器截图
screenshot = client.browser.screenshot()
效果
启动结束后,AIO Sandbox 允许代码层面的全方位接管。接入后,你的 Agent 不再是一个只能“嘴炮”的文本模型,而是一个拥有了手(操作文件/代码)、眼(浏览器视觉)、脚(网络与终端)的超级实体。你作为人类开发者,还可以随时打开网页版 VSCode 围观 Agent 的工作现场。
高级配置:守住生产环境的底线
如果你打算在生产环境中大规模部署 AIO Sandbox 为多租户 Agent 提供服务,建议结合 Kubernetes 进行资源编排,并严格限制容器权限。
虽然在本地测试时开启了 seccomp=unconfined(为了部分 Chrome 特性),但在真实的生产集群中,你应当配合 CPU/内存 CGroup 限制,防止恶意的 LLM 生成代码将宿主机资源消耗殆尽:
docker run -m 2g --cpus="1.0" --network=isolated_net ...
注意事项
虽然 AIO Sandbox 极其强大,但在实际落地中基于容器的方案都有一个通病:镜像体积与状态易失性。
因为内置了完整的浏览器、VSCode 和多种语言 Runtime,打出来的镜像体积相对较大。而且加上 --rm 参数的容器在停止后会丢失所有数据。
解决方案:
- 针对体积: 建议在 CI/CD 流程或 K8s 节点中提前通过内网镜像仓库分发、预热拉取(Pre-pull)。
- 针对数据保留: 结合对象存储(如 S3/OSS),在每次沙盒销毁前,通过 SDK 触发 Hook,将工作区的关键产物(如报表、日志、生成的数据)自动打包上传备份。
总结
AIO Sandbox 是一款在 Agentic 时代专注于“筑基”的开源利器。在“大模型+外挂工具”成为标配的今天,为 AI 提供一个安全、统一、可观测的运行时环境至关重要。
如果你正在头疼如何安全地执行大模型生成的 Python 代码,或者受够了碎片化沙盒带来的状态同步之苦,不妨试试 AIO Sandbox。更多技术实践和深入探讨,也欢迎到云栈社区 的开发者板块交流。
参考