本文集中说明云沙箱对 E2B SDK 和 E2B CLI 的兼容范围。其它开始使用文档只保留最小接入步骤,接口边界集中在本文维护。
接入参数配置参见使用约束。
兼容范围总览
| 能力模块 | 兼容状态 | 说明 |
| Sandbox | 兼容 | 支持创建、连接、查询、超时、暂停、终止、上传下载地址和端口访问地址。 |
| Commands | 兼容 | 支持命令执行、运行中进程管理、标准输入和 PTY。 |
| Filesystem | 部分兼容 | 支持文件读写、目录管理、重命名、删除、存在性检查和目录监听。云沙箱当前不支持文件自定义元数据。 |
| Code Interpreter | 兼容 | 支持代码执行、上下文管理、执行输出、流式输出和多次执行之间的状态保持。图表只支持生成文件后通过 Filesystem 取回。 |
| Template | 兼容 | 支持模板管理、模板构建、标签和别名。 |
| CLI | 部分兼容 | 支持常用 Sandbox 和 Template 命令。 |
| Metrics | 兼容 | 支持查看 CPU、内存指标;磁盘/页缓存字段会返回占位值,暂不可用。 |
| Logs / Network Config Update | 受限 | 接口可调用,但返回结果或实际效果存在限制。 |
| Snapshots / Volume / Team / Access Token | 暂不兼容 | 不建议作为云沙箱接入路径使用。 |
兼容 API
Sandbox
支持以下 Sandbox 生命周期和访问能力:
Sandbox.create()Sandbox.connect(sandboxId)Sandbox.list()Sandbox.getInfo(sandboxId)Sandbox.kill(sandboxId)Sandbox.setTimeout(sandboxId, ms)sandbox.getInfo()sandbox.isRunning()sandbox.setTimeout(ms)sandbox.pause()sandbox.kill()sandbox.downloadUrl(path)sandbox.uploadUrl(path)sandbox.getHost(port)
Sandbox.connect(sandboxId) 可连接已有 Sandbox。如果目标 Sandbox 已暂停,连接时会自动恢复。
Commands
支持以下命令执行和进程管理能力:
sandbox.commands.run()sandbox.commands.list()sandbox.commands.connect()sandbox.commands.sendStdin()sandbox.commands.kill()
交互式终端和依赖 TTY 的任务使用 sandbox.pty API。
Filesystem
支持以下文件系统能力:
sandbox.files.list()sandbox.files.exists()sandbox.files.getInfo()/sandbox.files.get_info()sandbox.files.read()sandbox.files.write()sandbox.files.makeDir()sandbox.files.remove()sandbox.files.rename()sandbox.files.watchDir()/sandbox.files.watch_dir()
sandbox.files.write() 支持写入文本、二进制内容和流式内容。目录监听适合等待 Agent 输出文件或同步任务产物。
云沙箱当前不支持通过 metadata 参数附加文件自定义元数据。以 Python SDK e2b==2.31.0 为例,方法签名虽然接受 metadata,但 SDK 检测到 Sandbox 使用 envd 0.5.2 后,会在发送写入请求前抛出 TemplateException: File metadata requires envd 0.6.2 or later.。普通文件写入和读取不受影响。不要把 Sandbox 控制面 metadata 与文件自定义元数据混淆;前者仍可用于标记和查询 Sandbox。
Code Interpreter
支持代码解释器核心能力:
sandbox.runCode()/sandbox.run_code()sandbox.createCodeContext()/sandbox.create_code_context()sandbox.listCodeContexts()/sandbox.list_code_contexts()sandbox.restartCodeContext()/sandbox.restart_code_context()sandbox.removeCodeContext()/sandbox.remove_code_context()执行结果输出,包括 stdout、stderr、execution count、裸表达式结果和
execution.results富结果。stdout、stderr 和结果回调。
多次代码执行之间的变量和上下文状态保持。
通过
language参数执行 Python、JavaScript、TypeScript 和 Bash。不支持 Java 和 R。
图表与可视化当前只支持文件降级方案:在 Sandbox 内生成图片文件后,通过 Filesystem 或下载 URL 取回。
Template
支持以下模板能力:
Template CRUD。
Template Build。
Template Tags。
Template Alias。
当前模板构建支持从镜像创建模板。具体使用方式参见构建自定义镜像模板。
CLI
云沙箱兼容 E2B CLI 的常用 Sandbox 命令,并扩展部分 Template 管理命令:
| 命令 | 云沙箱兼容状态 | 说明 |
sandbox create <template> | 支持 | 创建沙箱并连接交互式终端,退出终端后自动终止该沙箱。 |
sandbox list | 支持 | 默认返回运行中的沙箱,可使用 --state、--metadata、--limit 和 --format。 |
sandbox kill | 支持 | 支持按 ID 终止,也支持 --all 批量终止。 |
sandbox connect | 支持 | 连接已有沙箱并打开交互式终端;退出终端不会自动终止沙箱。 |
sandbox exec | 支持 | 在运行中的沙箱内执行命令,并将输出返回到本地终端。 |
sandbox metrics | 支持 | 查看运行中沙箱的 CPU、内存指标;当前按分钟级粒度返回。 |
template list | 云沙箱扩展能力 | E2B 官方 CLI 文档未单独展开该页面,接入时以本地 CLI 帮助为准。 |
新版本 E2B CLI 使用 E2B_API_KEY 认证。配置方式参见通过 CLI 使用云沙箱。
Metrics
支持查看 Sandbox 指标:
e2b sandbox metrics <sandbox-id>当前支持 CPU、内存指标;磁盘/页缓存字段会返回占位值,不建议用于容量判断。数据粒度随查询时间范围自动调整,适合调试、观察资源使用趋势和排查任务状态。计费、告警和容量治理应以函数计算控制台、云监控或日志服务中的正式数据为准。
受限能力
Sandbox Logs:当前返回空数组。
Network Config Update:当前返回成功,但不进行实际网络变更。
这些接口可以用于保持 SDK 调用兼容,但不适合作为生产日志采集或网络变更的控制面依赖。
暂不兼容能力
以下能力当前不属于云沙箱 E2B 兼容主路径:
Snapshots。
Volume API。
Team 管理。
API Key / Access Token 管理。
文件自定义元数据。
需要持久化存储或云上数据访问时,请先使用 NAS、OSS 等云存储方案。API Key 请在函数计算控制台创建和管理,不通过 E2B SDK 管理。具体操作参见创建 API Key。
VPC、OSS、日志采集、监控告警等能力属于云沙箱的 FC Extensions(云上扩展),不属于 E2B SDK 原生兼容接口。相关说明参见FC Extensions。
迁移建议
已有 E2B 应用优先保持 SDK 调用方式不变,只替换 API Key、API URL 和域名。
先用
code-interpreter-v1和最小 Sandbox 示例验证创建、命令执行、文件读写和释放资源。对依赖高频 Metrics、Logs、Network Config Update、Snapshots、Volume 或文件自定义元数据的应用,需要先调整设计,不要按 E2B 原路径直接迁移。
生产代码应显式调用
sandbox.kill(),避免 Sandbox 长时间占用资源。