Vercel Sandbox 调整创建逻辑:`Sandbox.create()` 返回即可用,启动错误提前抛出
Vercel 修改了 Sandbox 的创建行为:
Sandbox.create()会等快照恢复完成再返回,拿到对象就能直接执行命令、读写文件。启动阶段的报错也随之提前暴露,不再拖到第一次操作才发生。代价是创建耗时中位数增加约 50 毫秒,但「从创建到完成第一次操作」的总耗时不变。
返回的那一刻,沙箱就已经可用
现在调用 Sandbox.create(),函数返回时拿到的沙箱对象已经是可用状态——执行命令、读写文件都不用再等。
变化只在返回时机上。快照(snapshot)可以理解为沙箱启动前的一份状态存档,恢复它本来就是启动流程的一部分。过去这段等待被推迟到第一次操作时才发生,如今统一挪到创建阶段完成。所以调用方拿到对象后,第一次执行命令或做文件操作,不会再出现额外停顿。
启动错误不再拖到第一次操作
以前启动环节出问题,往往要等到第一次操作才暴露。现在这类错误会直接让 Sandbox.create() 抛异常,问题在创建阶段就能被发现,不会拖到后面某次命令执行时才失败。
对用 AI 代理(替你自动执行任务的程序)批量创建沙箱、跑命令的流程来说,这一点尤其关键:失败能更早被捕获并重试,而不是在后续步骤里才突然爆发。在 AI 编程、氛围编程(vibe coding,边描述意图边让 AI 生成代码)这类需要反复创建隔离环境的工作流中,错误反馈点前移通常意味着更少的无效等待。
耗时变化:等待前移,总量不变
快照恢复的时间现在计入创建过程,不再计入第一次操作。具体影响是:
- 约一半请求(p50,也就是中位数)的创建耗时增加约 50 毫秒;
- 如果快照没有被缓存,增加的时间可能更多;
- 但从「开始创建」到「完成第一次操作」的总耗时保持不变,只是时间点前移了。
换句话说,这不是变慢,而是把原本藏在第一次操作里的等待挪到了创建阶段,让整体耗时分布更可预期。
开发者不需要做任何事
这项变更自动生效,不需要升级开发工具包(SDK),也不用改配置。已有代码无需调整,就能获得「返回即可用」的行为。更多细节可查阅 Sandbox.create() 的官方文档。