Agent Runtime 代码执行

通过已运行的 Sandbox 实例执行代码,读取标准输出、标准错误和结构化结果。agr instance code run 适合命令行调试、脚本自动化和一次性任务;如需在应用内持续复用执行上下面、保留变量状态或封装服务端集成,请使用程序化接入方式。支持 Python、JavaScript、TypeScript、R、Java、Bash 六种语言。

相关产品
Agent Runtime 产品页,含版本规格、价格与购买入口。

注意:说明:

注意:在运行中的 Sandbox 实例内执行代码时,优先使用 agr instance code run。如需在应用内长期集成代码执行或复用执行上下文,请使用 E2B SDK 或参考数据面 API 文档。

二、开始前准备

·已创建并启动可用的 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

20、批量删除

支持一次删除多个实例:

agr instance delete "sbx-instance1" "sbx-instance2" "sbx-instance3" -o json

21、验证清理完成

确认实例已不存在:

agr instance get "$INSTANCE_ID" -o json

如果返回 INSTANCE_NOT_FOUND 错误,说明实例已成功删除。

赞 (0)
上一篇 4天前
下一篇 4天前