E2B 兼容说明

更新时间:
复制 MD 格式

本文集中说明云沙箱对 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 长时间占用资源。

后续阅读