本文集中說明雲沙箱對 E2B SDK 和 E2B CLI 的相容範圍。其它開始使用文檔只保留最小接入步驟,介面邊界集中在本文維護。
使用約束參見使用約束。
相容範圍總覽
能力模組 | 相容狀態 | 說明 |
Sandbox | 部分相容(第一代運行時的暫停與恢複需加入白名單,第二代無需;SDK 2.51.0 暫不支援建立和串連) | 支援建立、串連、查詢、逾時設定、暫停、終止、上傳下載地址和連接埠訪問地址。使用 SDK 2.51.0 時暫不支援建立和串連,需改用低於 2.51.0 的 SDK 版本。 |
Commands | 相容 | 支援命令執行、運行中進程管理、標準輸入和 PTY。 |
Filesystem | 部分相容 | 支援檔案讀寫、目錄管理、重新命名、刪除、存在性檢查和目錄監聽。雲沙箱
檔案自訂中繼資料僅第二代運行時( |
Code Interpreter | 相容 | 支援代碼執行、上下文管理、執行輸出、流式輸出和多次執行之間的狀態保持。圖表只支援組建檔案後通過 Filesystem 或下載 URL 取回。 |
Template | 相容 | 支援模板增刪改查,並可從鏡像構建模板。 |
CLI | 部分相容 | 支援常用 Sandbox 和 Template 命令。 |
Network Config Update | 相容 | 支援更新執行中 Sandbox 的網路設定。 |
Snapshots | 相容(需加入白名單) | 支援建立、查詢、刪除,以及從 Snapshot ID / 全名恢複 Sandbox。僅第二代運行時( |
Volume / Access Token | 暫不相容 | 不建議作為雲沙箱接入路徑使用。Team 請在控制台管理。 |
支援 E2B metrics,並在控制台提供可觀測能力;暫不支援 Metrics API。
相容 API
Sandbox
第一代運行時的暫停與恢複僅對已開通白名單的帳號可用,請先完成白名單開通,再調用 sandbox.pause() 或串連已暫停 Sandbox;第二代運行時預設支援暫停與恢複,無需加入白名單。
Snapshot 功能同樣僅對已開通白名單的帳號可用,且僅支援第二代運行時(microVM)。請先完成白名單開通,再調用 Snapshot 相關介面。
支援以下 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.createSnapshot({ name? })/Sandbox.createSnapshot(sandboxId, { name? })Sandbox.listSnapshots({ sandboxId?, name?, limit?, nextToken? })Sandbox.deleteSnapshot(snapshotId | qualifiedName)Python:
sandbox.create_snapshot(name=...)/Sandbox.create_snapshot(sandbox_id, name=...)、Sandbox.list_snapshots(...)、Sandbox.delete_snapshot(snapshot_id | qualified_name)
Sandbox.connect(sandboxId) 可串連已有 Sandbox。如果目標 Sandbox 已暫停,串連時會自動回復。
Sandbox.create() 的模板參數除模板名 / 模板 ID 外,還可以是 Snapshot ID 或已命名 Snapshot 的全名。Snapshot 使用限制和命名規則參見快照(Snapshot)(邀測)。
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.make_dir()sandbox.files.remove()sandbox.files.rename()sandbox.files.watchDir()/sandbox.files.watch_dir()
sandbox.files.write() 支援寫入文本、二進位內容和流式內容。目錄監聽適合等待 Agent 輸出檔案或同步任務產物。
雲沙箱 檔案自訂中繼資料暫不支援。以 Python SDK e2b==2.31.0 為例:方法簽名雖然接受 metadata 參數,但第一代運行時的 Sandbox 使用 envd 0.5.2,SDK 在發出寫入請求前會直接拋出 TemplateException: File metadata requires envd 0.6.2 or later。
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。
圖表與可視化當前只支援檔案降級方案:在 Sandbox 內產生圖片檔案後,通過 Filesystem 或下載 URL 取回。
Template
支援模板的建立、查詢、更新和刪除(增刪改查)。當前模板構建支援從鏡像建立模板。具體使用方式參見構建和系統管理範本。
CLI
雲沙箱相容 E2B CLI 的常用 Sandbox 命令,並擴充部分 Template 管理命令:
命令 | 雲沙箱相容狀態 | 說明 |
| 支援 | 建立 Sandbox 並串連互動式終端,退出終端後自動終止該 Sandbox。 |
| 支援 | 預設返回運行中的 Sandbox,可使用 |
| 支援 | 支援按 ID 終止,也支援 |
| 支援 | 串連已有 Sandbox 並開啟互動式終端;退出終端不會自動終止 Sandbox。 |
| 支援 | 在運行中的 Sandbox 內執行命令,並將輸出返回到本地終端。 |
| 雲沙箱擴充能力 | 列出極速版可用的模板。該命令為極速版擴充能力,輸出欄位可能隨版本變化,具體參數可通過 |
新版本 E2B CLI 使用 E2B_API_KEY 認證。配置方式參見通過 CLI 使用雲沙箱。
Metrics
支援 E2B metrics,並在控制台提供可觀測能力;暫不支援 Metrics API。
受限能力
最近發布的 SDK 2.51.0 版本暫不支援
Sandbox.create()和Sandbox.connect()。請使用低於 2.51.0 的 SDK 版本,官方推薦的版本如下:Python:
e2b==2.31.0、e2b-code-interpreter==2.8.1Node.js:
e2b@^2.31.0、@e2b/code-interpreter@^2.6.1
暫不相容能力
以下能力當前不屬於雲沙箱 E2B 相容主路徑:
Volume API。
Team 管理(請在控制台管理 Team)。
API Key / Access Token 管理。
需要持久化儲存或雲上資料訪問時,請先使用 NAS、OSS 等雲端儲存方案。需要保留 Sandbox 運行時狀態時,可使用快照(Snapshot)(邀測) 。API Key 請在Function Compute控制台建立和管理,不通過 E2B SDK 管理。具體操作參見建立 API Key。
VPC、OSS、日誌採集、監控警示等能力屬於雲沙箱的 Extensions(雲上擴充),不屬於 E2B SDK 原生相容介面。
Extensions 擴充能力
除 E2B 相容外,雲沙箱 還通過 Extensions(雲上擴充)提供以下能力,用於接入Function Compute和阿里雲基礎設施。這些能力不改變 E2B SDK / CLI 的基本使用方式:
Extensions 概覽:擴充能力總覽與各子能力的使用入口。
VPC 網路設定:讓 Sandbox 訪問專用網路中的 RDS、Redis、NAS、內網 API 等資源。
雲沙箱自訂網域名:通過固定的自有網域名稱和自有認證訪問 Sandbox 中的服務。
動態掛載 OSS:建立 Sandbox 時將 OSS Bucket 或子目錄掛載到 Sandbox 內的本地目錄。
監控與日誌:查看 Sandbox 運行狀態和資源使用,並將 stdout / stderr 日誌採集到Log Service。
Team 配額管理:按 Team 設定 CPU 和記憶體資源配額,實現資源隔離與成本控制。
建立 OSS Volume:儲存已有 OSS Bucket 的掛載配置,建立 Sandbox 時可按 Volume 名稱掛載。
建立 AgenticFS Volume:儲存已有 AgenticFS 存取點的掛載配置,建立 Sandbox 時可按 Volume 名稱掛載。
遷移建議
已有 E2B 應用優先保持 SDK 調用方式不變,只替換 API Key、API URL 和網域名稱。
先用
code-interpreter-v1和最小 Sandbox 樣本驗證建立、命令執行、檔案讀寫和釋放資源。對依賴 Metrics API、Logs 或 Volume 的應用,需要先調整設計,不要按 E2B 原路徑隨即轉移。Snapshot 已支援,但命名、刪除路徑和恢複約束與官方 E2B 不完全相同,遷移前請先閱讀快照(Snapshot)(邀測)。
生產代碼應顯式調用
sandbox.kill(),避免 Sandbox 長時間佔用資源。