Providers
提供方
提供方是沙箱背后的那套后端。CLI 和 SDK 出厂只内置阿里云极速版,其余提供方从 Registry 安装。同一段调用代码,换一个 provider 参数就能换后端。
目前的提供方
阿里云智能体沙箱极速版
alicloud-express
CLI 和 Python SDK 的默认提供方。abx template deploy 在这里构建并登记模板。
内置18 项能力
OpenSandbox 开源沙箱
opensandbox · v0.3.0
在 OpenSandbox 服务(Docker 或 Kubernetes)上运行沙箱。命令、文件和终端走 OpenSandbox 的 HTTP 接口。
需安装Node 插件10 项能力
阿里云智能体沙箱容器版
alicloud-container · v0.2.1
在阿里云 ACS 或 ACK 的 sandbox-manager 上运行沙箱,也就是容器版。
需安装Node 插件9 项能力
CubeSandbox
cubesandbox · v0.2.1
在 CubeSandbox 的 CubeAPI 上运行沙箱,代码解释器走 49999 端口的 Jupyter。
需安装Node 插件9 项能力
E2B
e2b · v0.2.0
在 E2B 云上运行沙箱。API 密钥是 ABX_E2B_API_KEY。不读取极速版密钥,也不读取 E2B_API_KEY。
需安装Node 插件10 项能力
能力对比
一行一项能力,一列一个提供方。没有声明的能力,会在请求发出之前就返回 E8004,所以你在选型时看到的就是运行时的真实行为。
| 能力 | 阿里云智能体沙箱极速版 | OpenSandbox 开源沙箱 | 阿里云智能体沙箱容器版 | CubeSandbox | E2B |
|---|---|---|---|---|---|
| 沙箱 | |||||
创建、连接、列出、销毁 sandbox.lifecycle | ● | ● | ● | ● | ● |
调整存活时间 sandbox.timeout | ● | ● | ● | ● | ● |
暂停与恢复 sandbox.pause | ● | ● | ● | ● | ● |
| 执行 | |||||
运行命令 exec.run | ● | ● | ● | ● | ● |
流式输出 exec.stream | ● | ● | ● | ● | ● |
进程列表与信号 process.manage | ● | ● | ● | – | ● |
交互终端 pty | ● | ● | – | – | – |
| 文件 | |||||
读写、目录、重命名 files.rw | ● | ● | ● | ● | ● |
目录监听 files.watch | ● | – | – | ● | ● |
上传下载 URL files.transfer | ● | – | – | – | – |
| 代码 | |||||
代码解释器 code.interpret | ● | – | ● | ● | ● |
| 模板 | |||||
读取模板 templates.read | ● | – | – | – | – |
构建模板 templates.build | ● | – | – | – | – |
| 网络与存储 | |||||
端口访问 URL ports.url | ● | ● | ● | ● | ● |
自定义域名 ports.domain | ● | – | – | – | – |
挂载存储 storage.mount | ● | – | – | – | – |
VPC 网络 network.vpc | ● | – | – | – | – |
| 会话 | |||||
沙箱内命名命令 sessions | ● | ● | – | – | – |
怎么换后端
安装
从 Registry 下载,校验 sha256 后只复制文件,不执行任何插件代码。
配置
每个提供方只读自己的环境变量,例如 ABX_OPENSANDBOX_BASE_URL。极速版的 Key 不会被带过去。
使用
创建时传 provider。能力以提供方的声明为准。
shell
python -m agent_sandbox.providers install registry:opensandbox --yespython
await Sandbox.create(provider="opensandbox", template="base")接入你自己的后端
一份清单 abx-provider.toml 加一个小程序,就能让 SDK 在你的平台上创建沙箱。提供 REST 清单、独立进程和 Python 三种运行时。