说明:
在运行中的 Sandbox 实例内执行代码时,优先使用
agr instance code run。如需在应用内长期集成代码执行或复用执行上下文,请使用 E2B SDK 或参考数据面 API 文档。功能概述
通过已运行的 Sandbox 实例执行代码,读取标准输出、标准错误和结构化结果。
agr instance code run 适合命令行调试、脚本自动化和一次性任务;如需在应用内持续复用执行上下文、保留变量状态或封装服务端集成,请使用程序化接入方式。支持 Python、JavaScript、TypeScript、R、Java、Bash 六种语言。开始前准备
已创建并启动可用的 Sandbox 实例。
已安装
agr CLI,并准备实例 ID。export INSTANCE_ID="sbx-xxxxxxxx"
使用 agr CLI 执行代码
agr instance code run 是命令行主路径,支持直接传入代码字符串、从文件读取和管道输入三种方式。支持的语言
通过
-l 或 --language 指定语言:语言 | 值 |
Python | python(默认) |
JavaScript | javascript |
TypeScript | typescript |
R | r |
Java | java |
Bash | bash |
输出格式
非流式模式:
-o json,返回完整结构化 JSON。流式模式:
--stream,搭配 -o text 或 -o ndjson。--stream 与 -o json 不兼容。方式一:直接传入代码字符串
agr instance code run "$INSTANCE_ID" \\-c "result = 1 + 2 + 3\\nprint(f'Result: {result}')" \\-l python \\-o json
命令返回
agr.v1 JSON envelope。成功时 Status 为 succeeded,Data 包含执行结果对象;失败时 Status 为 failed,通过 Failure.Code 标识错误原因(详情请参见 错误处理)。方式二:从文件读取代码
agr instance code run "$INSTANCE_ID" \\-f ./script.py \\-l python \\-o json
支持多文件同时传入:
agr instance code run "$INSTANCE_ID" \\-f ./setup.py -f ./main.py \\-l python \\-o json
方式三:从标准输入读取代码
cat <<'PY' | agr instance code run "$INSTANCE_ID" -l python -o jsonimport jsondata = {"status": "ok", "value": 42}print(json.dumps(data, indent=2))PY
指定其他语言
执行 JavaScript:
agr instance code run "$INSTANCE_ID" \\-c "const result = [1,2,3].reduce((a,b) => a+b, 0); console.log(result)" \\-l javascript \\-o json
执行 Bash:
agr instance code run "$INSTANCE_ID" \\-c "echo Hello from sandbox && uname -a" \\-l bash \\-o json
流式输出
实时输出执行过程,适合长时间运行的任务:
agr instance code run "$INSTANCE_ID" \\-c "import time\\nfor i in range(5):\\n print(f'Step {i}')\\n time.sleep(1)" \\-l python \\--stream \\-o ndjson
--stream 与 -o json 不兼容,流式模式下需搭配 -o ndjson 或 -o text 使用。使用临时实例
无需事先创建实例,直接在命令中指定 Tool 并自动创建临时实例:
agr instance code run \\--create-temp-instance \\--tool-id "tool-xxxxxxxx" \\--cleanup always \\-c "print('Running in temp instance')" \\-l python \\-o json
--cleanup 控制临时实例的清理策略:值 | 行为 |
always | 执行完成后始终删除(默认) |
success | 仅执行成功时删除 |
never | 不自动删除 |
也可以通过 Tool 名称指定:
agr instance code run \\--create-temp-instance \\-t "my-tool-name" \\--cleanup success \\-c "print('Hello')" \\-l python \\-o json
程序化集成与上下文能力
如需将代码执行能力嵌入应用服务、Notebook 工作流或长期运行任务,建议使用程序化入口,而不是直接将本页的 CLI 命令改写成服务端调用。
何时继续使用 CLI
以下场景优先使用
agr instance code run:命令行调试或一次性验证。
Shell 脚本、CI 任务和运维自动化。
结合临时实例执行短时任务并在结束后清理资源。
何时使用程序化入口
以下场景更适合程序化接入:
需要在应用内发起代码执行请求。
需要复用执行上下文,在多次调用之间保留变量状态或工作目录。
需要通过 SDK 继续访问文件、进程或其他实例内能力。
当前
agr instance code run 公开命令面未提供创建或复用执行上下文的参数。如需此类能力,请改用以下文档:用 E2B SDK 跑代码:最短可运行的应用内集成路径。
沙箱访问 Token:了解实例级访问凭证的获取、校验和清理方式。
说明:
本页聚焦 CLI 主路径,不展开数据面 HTTP 请求示例。程序化接入时,请优先使用已公开的 SDK 或参考数据面 API 文档中的接口定义与鉴权约定。
错误处理
CLI 错误码
错误码 | 退出码 | 说明 | 处理建议 |
MISSING_INSTANCE | 1 | 目标实例不存在或不可访问 | 确认实例 ID 正确,且实例处于 Running 状态 |
REMOTE_CODE_FAILED | 255 | 远端代码执行失败 | 检查代码逻辑和运行时依赖 |
MISSING_CLOUD_CREDENTIALS | 4 | 缺少云侧凭证 | 检查 CLI 运行环境中的认证配置 |
AUTH_FAILED | 4 | 鉴权失败 | 检查账号凭证或权限配置 |
INVALID_JQ_EXPRESSION | 1 | --jq 表达式非法 | 修正 jq 表达式后重试 |
CLI 错误输出示例:
{"SchemaVersion": "agr.v1","Command": "instance.code.run","Status": "failed","Data": null,"Failure": {"Code": "MISSING_INSTANCE","Kind": "user","Message": "instance not found or not accessible","Hint": "Verify the instance ID and ensure it is in Running state.","Retryable": false},"Meta": {"Backend": "cloud","DurationMs": 320}}
清理资源
执行完成后,及时删除不再使用的 Sandbox 实例以释放资源。
删除实例
agr instance delete "$INSTANCE_ID" -o json
命令返回
agr.v1 JSON envelope,Data 输出类型为 DeleteResult,包含删除计数和 ID 列表。成功时 Status 为 succeeded;部分失败时 Status 为 partial,Failure.Code 为 PARTIAL_DELETE_FAILED。忽略不存在的实例
如果实例可能已被其他流程清理,使用
--ignore-not-found 避免报错:agr instance delete "$INSTANCE_ID" --ignore-not-found -o json
批量删除
支持一次删除多个实例:
agr instance delete "sbx-instance1" "sbx-instance2" "sbx-instance3" -o json
验证清理完成
确认实例已不存在:
agr instance get "$INSTANCE_ID" -o json
如果返回
INSTANCE_NOT_FOUND 错误,说明实例已成功删除。