跳到主要内容
返回时间线
Vercel News来源发表:

编码智能体不再怕函数中途死掉:每一步写进持久日志,新函数接着跑完

核心概要

Vercel 发布开源 durable-harness,让 Pi、OpenCode、Codex、Claude Code 等编码智能体在云端函数崩溃或超时后从日志续跑。此前在云端用虚拟机加持久存储复现本地环境,虚拟机不会自动记录哪些模型调用和工具调用已完成,也不会在崩溃后恢复被中断的回合,一次失败就丢工作。该工具在每次模型调用或工具调用前记录意图、结束后记录结果,并用队列消息兜底,把回合交给新函数读取日志继续。

Source-provided article image: Making every harness durable
Vercel

深度剖析

编码智能体在云端的会话现在可以在函数中途死亡后继续,而不必人工重启。 此前在云端用虚拟机加持久存储可以复现本地的连续访问,但虚拟机不会自动记录哪些模型调用和工具调用已完成,也不会在崩溃后恢复被中断的回合。 以给现有应用添加定价页的编码智能体为例,函数在等待 CI 时超时:没有持久化时智能体停止工作直到被手动重启,已完成的工作被重复;使用 durable-harness 时新函数从日志读取已完成结果并续跑。

续跑靠的是把回合的每一步写进一份持久日志,再由队列把死掉的回合转交给新函数。 durable-harness 是一组适配器和工具,让已有 harness 把会话保存在 World 中,即 Workflow SDK 的持久化后端。 每次模型调用或工具调用前记录意图、结束后记录结果,回合本身由队列消息兜底;已完成的调用因结果从日志读取而不再重跑,被中断的工具按 replay 标记处理,标记为 safe 的重新执行,其余以可能已执行的状态交回模型判断。

启示与展望

该工具面向在云端运行编码智能体的开发者,覆盖 Pi、OpenCode、Codex、Claude Code 等 harness,并支持自托管到自有 Postgres 实例或让本地 harness 工作流具备持久性。Claude Code 与 Codex 因需要真实 shell 和文件系统、不适合多租户使用,始终运行在 Vercel Sandbox 中。文件工作区可在会话日志中的虚拟文件系统与独立 Sandbox 之间选择,前者适合短任务和小工作区。

崩溃恢复的说明以演示中的函数超时和连接断开为场景,未给出在真实长任务上的统计结果。工具被中断后标记为 safe 的会重新执行,其余以可能已执行的状态交回模型,由模型决定是否核查,因此副作用是否重复取决于工具如何标注。虚拟文件系统无法访问函数文件或网络,适合短任务和小工作区。