Agent Runtime 停止与超时

手动停止 Sandbox Instance、在创建时设置运行时长,以及在实例运行期间调整超时配置。

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

一、适用场景

·主动停止不再使用的实例,释放运行配额。

·在创建实例时显式限制可运行时长,避免任务结束后长时间占用资源。

·在实例仍处于运行中时延长或缩短超时窗口。

·通过实例详情区分手动停止与超时回收。

二、开始前准备

·已安装 agr CLI。

·已通过环境变量或 CLI 配置文件提供可用凭证。

·已获取目标实例的 InstanceId;如果要创建新实例,还需要准备可用的 ToolId 或 ToolName。

执行以下命令确认 CLI 和凭证就绪:

agr version -o json –non-interactiveagr status -o json –non-interactiveagr doctor -o json –non-interactive

预期结果:

·agr version 返回 CLI 版本和 commit 信息。

·agr status 用于查看 CLI 当前读取到的配置与凭证来源;重点检查 Data.Auth.SecretId.Present 和 Data.Auth.SecretKey.Present 是否都为 true。

·agr doctor 用于做凭证与连通性自检;当 SecretId、SecretKey、Connectivity 等检查项都为 ok 时,可继续执行后续实例操作。

三、使用 agr CLI 停止

执行以下命令停止一个或多个实例:

agr instance delete <instance-id> [instance-id…] -o json

如果实例可能已被清理,可追加 –ignore-not-found,将“实例不存在”视为成功。

预期结果:

·命令返回结构化 JSON 结果。

·删除请求提交后,实例先进入 STOPPING,完成后进入 STOPPED。

验证方式:

agr instance get <instance-id> -o json –non-interactive

重点检查以下字段:

·Data.Status:预期从 RUNNING 变为 STOPPING 或 STOPPED。

·Data.StopReason:手动停止时为 manual。

·Data.ExpiresAt:停止完成后不再继续延长。

兼容 E2B 的 HTTP 接口也可用于停止实例:

DELETE /sandboxes/{sandboxID}

该接口成功时返回 204 No Content。如需确认实例已结束,请继续调用实例详情接口检查 state。

清理说明:

·停止操作不可回滚。误停后需要重新创建实例。

·如果只是临时释放资源并计划稍后恢复,请优先评估暂停/恢复能力。

四、使用 agr CLI 创建限时实例

执行以下命令,在创建时直接设置实例超时:

agr instance create –tool-id <tool-id> –timeout 30m -o json

–timeout 支持 duration 字符串,例如 5m、30m、300s;纯数字按秒处理。默认值为 5m。

验证方式:

agr instance get <instance-id> -o json –non-interactive

重点检查以下字段:

·Data.Status:实例启动完成后应为 RUNNING。

·Data.TimeoutSeconds:返回秒级超时值。

·Data.ExpiresAt:返回实例预计结束时间。

创建实例时,也可通过兼容 E2B 的 HTTP 接口在请求体中传入秒级 timeout 字段;创建完成后建议通过实例详情接口复核实际生效值。

五、使用 agr CLI 更新超时

当实例仍处于运行中时,执行以下命令调整超时:

agr instance update <instance-id> –timeout 45m -o json

–timeout 支持 duration 字符串,例如 10m、45m、300s。

限制说明:

·只有 RUNNING 状态的实例支持原地更新超时。

·Persistent=true 的实例不受 timeout 回收限制,不能通过该命令修改超时。

·取值必须大于 0。

验证方式:

agr instance get <instance-id> -o json –non-interactive

重点检查以下字段:

·Data.Status:更新后应保持为 RUNNING。

·Data.TimeoutSeconds:更新为新的秒数。

·Data.ExpiresAt:随新的超时窗口刷新。

六、查看超时与停止原因

执行以下命令查看当前实例状态:

agr instance get <instance-id> -o json –non-interactive

重点字段如下:

字段 含义
Data.Status 当前实例状态,例如 RUNNING、STOPPING、STOPPED
Data.TimeoutSeconds 当前生效的超时值,单位为秒
Data.ExpiresAt 当前超时窗口对应的预计结束时间
Data.StopReason 停止原因;常见值包括 manual、timeout、error、system
Data.Persistent 是否为常驻实例;为 true 时不参与 timeout 自动回收

通过兼容 E2B 的 HTTP 接口查询实例详情时,对应可观察字段为 state 和 endAt。

七、常见错误

场景 表现 处理建议
删除不存在的实例 agr instance delete 返回 INSTANCE_NOT_FOUND 确认 InstanceId 是否正确;如果目标可能已经不存在,可追加 –ignore-not-found。
更新非 RUNNING 实例的超时 更新请求失败 先执行 agr instance get 确认实例状态;已停止实例需要重新创建。
更新超时为 0、负数或非法格式 更新请求失败 对 agr instance update 使用 10m、300s 等合法 duration;对 E2B 兼容控制面请求使用大于 0 的秒级整数。
更新 Persistent=true 的实例超时 更新请求失败 常驻实例不依赖 timeout 回收;如需结束实例,请直接停止。
赞 (0)
上一篇 4天前
下一篇 4天前