Sandbox 概览与核心概念
Sandbox 概览与核心概念
为 AI Agent 提供按能力选型、统一生命周期、按秒计费且完整可审计的隔离云环境。
xAPI Sandbox 让应用和 AI Agent 通过一套 Consumer API 使用不同云计算供应商。 调用方描述需要的资源、能力和预算,Gateway 负责选择可售规格、创建实例、统一状态、 记录用量并完成结算。供应商凭证由平台保管,不进入提示词、用户代码或 Sandbox 环境。
请求 exec、files、ports、CPU、内存、GPU 或区域等条件,Gateway 在当前可售
Offering 中选择满足条件且符合预算的规格。
不论底层供应商如何命名状态,调用方只处理统一的
PROVISIONING / RUNNING / SUSPENDED / TERMINATED / FAILED。
每次创建、执行、文件、端口和状态操作都有日志;状态事件、用量段与结算账单可独立查询。
适合哪些任务
如果任务只需要运行一条命令,优先使用 sandbox run。
它会自动完成报价、创建、等待、执行和销毁,遗留实例风险最低。
四个核心对象
Offering
Offering 是供应商注册并通过平台验证的可售规格,声明:
- CPU、内存、卷、GPU 和区域;
exec、files、ports、快照与扩展能力;- 是否支持挂起、恢复,以及挂起后保留文件系统、内存或进程的语义;
- 各状态的估算小时单价与底层计费组件。
Offering 是动态目录。不要把某家供应商的能力或价格硬编码进 Agent;运行前读取目录或报价。
Quote
Quote 把资源需求、能力条件和价格上限解析成一个短时有效的选型结果。报价不会创建实例, 适合在花钱前确认供应商、规格、运行单价和首次预留。
Sandbox instance
实例是实际计费资源。创建返回 202 或 PROVISIONING 只表示请求已受理;只有服务端
观测状态进入 RUNNING 后才可执行命令。任务结束后必须等待 TERMINATED,不能把
“已发送 terminate 请求”当作清理完成。
Audit and billing
每个实例包含四类独立证据:
任务成功不仅意味着命令 exitCode = 0,还应同时满足:产物验证成功、实例进入终态、
没有未关闭的用量段或账单、最终活动实例列表中没有本次任务的遗留资源。
选择供应商还是自动选型
默认使用自动选型,让 Gateway 在当前健康、符合能力且不超过预算的 Offering 中选择。 只有下列情况才建议固定供应商:
- 必须验证某个供应商适配器;
- 必须使用供应商专属能力,例如 Cloudflare Web 预览或 RunPod 连接信息;
- 任务依赖明确的挂起、快照或网络语义;
- 需要可复现的验收环境。
“支持 Sandbox”不等于所有供应商都支持同一组能力。GPU Offering 可能只提供管理型
连接扩展而没有标准 exec/files;Cloudflare 当前 Offering 也可能不支持显式
suspend/resume。始终以实时 Offering 声明为准。
安全模型
- xAPI Key 只由客户端或 Agent 工具执行层发送给 xAPI Gateway。
- 供应商 API Key 只存在于已注册的 Provider Adapter 中,消费者不可见。
- 不把 xAPI Key 放进提示词、远程命令、环境转储、文件或日志。
- 创建请求使用幂等键,避免响应丢失后重复创建计费实例。
- 所有多步骤流程都在
finally/ shelltrap中清理,并在结束时核对服务端终态。