谷歌用微虚拟机暂停 Agent,降低空闲开销
据介绍,Google Cloud 的 Agent Compute Engine 通过硬件隔离的微虚拟机冻结闲置 Agent,并在恢复时保留执行状态与环境上下文。该方案针对人工审批、外部接口等待等场景,减少持续运行费用和环境重建成本。
AI 深度解读
AI Agent 的云账单,可能有不少花在等待上:等人工审批、等外部 API、等工具执行结束。原文讨论的 Google Agent Compute Engine,试图把这段空转时间省下来:暂停 Agent 的运行环境,保留执行状态,需要时再接着跑。
这个方向值得关注,但原文没有提供价格、恢复延迟或生产实测。对程序员更有用的,是看清它适合什么任务,以及为什么「机器恢复了」不等于「业务可以安全继续」。
Agent 等待时,为什么还要交计算费
普通服务往往追求持续响应,Agent 的工作节奏却可能很不均匀。一个研究或编程任务可以持续数天,甚至数周,中间真正消耗 CPU 的时间未必很多。
例如,Agent 完成草稿后等待人工批准。在这段时间里,进程、内存和文件环境仍然存在,传统部署方式通常也继续计费。直接关机虽然能节省资源,重启时却可能需要重新安装依赖、加载上下文、恢复任务进度。
原文给出的解决路径是硬件隔离的微型虚拟机(microVM):把 Agent 当前的运行状态冻结,需要执行时再恢复。它保存的是程序执行到哪里、内存里有什么、环境处于什么状态,而不只是聊天记录。
它瞄准的是「任务持续很久,但计算断断续续」的工作负载。
这里还有一层安全考量。容器共享宿主机内核,每个 microVM 则运行自己的内核,因此能提供更强的隔离边界。对于会运行 AI 生成代码、接触不可信输入的 Agent,这种隔离有实际意义。不过,更强隔离不能直接理解为绝对安全,原文也没有给出具体安全测试。
作者称,这种方式可以降低启动时间和资源需求,并让环境立即恢复。但到底多快、保存多大的状态、与什么配置比较,文中都没说清。
省下 CPU 费用,还要补算哪些账
原文认为,暂停空闲环境可以停止这段时间的 CPU 计费,让团队有机会把 Agent 从数十个扩展到数千个。这是作者对规模化成本的判断,没有账单对照支撑,不能直接当成容量承诺。
能否省钱,首先取决于等待时间。
持续进行计算的 Agent,很难从暂停机制里得到明显收益。如果任务之间只等几秒,管理暂停、保存状态和恢复环境的开销,也可能抵消节省的费用。真正适合的,是需要长时间保留状态、又经常进入较长等待阶段的任务。
其次,暂停不等于所有费用归零。状态仍要保存在磁盘上,持久环境扩展到数千个之后,存储费用可能相当可观。原文甚至提出,高性能状态存储的成本可能接近持续运行计算资源的成本,但没有给出价格或测算条件。
所以,至少要同时计算运行费用、状态存储费用和新增运维成本。只看暂停后的 CPU 账单,很容易高估收益。
还有平台依赖。原文称 Agent Compute Engine 深度集成 Google Cloud,迁往其他平台可能需要重做身份与状态管理。它同时称服务仍处早期,尚未进入广泛预览阶段。这些都是原文提供的信息,文中没有附上可核对的产品文档,也没有展示大规模生产运行结果。
恢复内存,为什么恢复不了业务确定性
暂停恢复最难处理的地方,是外部系统不会跟着虚拟机一起冻结。
原文举了一个支付例子:Agent 已发送付款请求,却在收到确认前暂停。恢复后,它不知道付款是否成功。如果简单重发,就可能重复扣款。
保存内存能记住「我发过请求」,却未必能回答「对方到底完成了没有」。
作者因此强调幂等性:同一个业务动作重复执行,也不会产生重复结果。对于 Node 服务,这通常需要在外部请求和数据库写入处设计去重、结果查询或状态核对机制。原文没有提供具体 API、代码或实现方案,不能把它理解为启用平台功能后就自动具备的能力。
需要补充的是,查询请求与产生副作用的操作不该一概而论。支付、创建订单、发布内容这类动作尤其需要明确恢复规则,不能依赖进程还记得上一次执行位置。
另一个问题是环境漂移。环境经过数周、多次暂停恢复后,文件可能变化,临时依赖可能累积,版本也可能不一致。最终,每个 Agent 都变成难以复制的特殊环境,复现错误和安全审计都会更麻烦。
原文建议设置严格的过期策略,定期从干净镜像重建环境。同时,作者指出,暂停虚拟机的调试工具还不完善,恢复后才出现的问题可能更难排查。保留状态带来的便利,需要用环境治理和恢复验证来支撑。
我的判断
我认同原文对工作负载的划分:等待占比高、环境重建昂贵的 Agent,确实值得研究暂停恢复。它把「长期任务必须长期占着计算资源」这个默认选择拆开了。
但这篇更接近架构分析,缺少产品验证。没有恢复耗时、计费细则、状态大小和故障率数据,「立即恢复」「显著节省」「支持数千个 Agent」都还不足以形成采购依据。
常见替代方案是把任务进度写入数据库,用队列或持久化工作流安排后续执行,等待时释放计算资源。这样需要开发者显式管理业务状态,却更容易看清任务走到了哪一步。microVM 暂停恢复则更适合保留难以重建的进程环境,代价是状态更依赖平台,排障也更复杂。
先判断哪些状态必须留在内存里,再决定是否需要冻结整个环境。
幂等也不是这类服务独有的负担。网络超时、进程重启和消息重试本来就会制造不确定性;暂停恢复只是让这项工程要求更难绕开。
能拿来做什么
- 给现有编程或研究 Agent 记录执行时间、等待时间和环境重建时间,先找出长时间等待且重建昂贵的任务,再估算暂停的收益。
- 检查 Node 工具调用里会产生副作用的操作,为它们明确重复请求如何处理、执行结果如何查询、恢复后如何核对状态。
- 如果尝试保留长期运行环境,同时设计过期重建策略,把必要的任务进度持久化,并验证干净环境能否接续任务。
- 比较 microVM 暂停恢复与队列方案时,把状态存储、迁移和恢复排障一起计入成本;原文的数据不足以替团队完成这笔测算。