Vercel 开源 durable-harness,为编码智能体提供崩溃恢复能力
Vercel 开源 durable-harness,通过持久日志记录每次模型和工具调用,使编码智能体会话在崩溃或超时后可从新函数恢复,已完成的调用从日志读取、不会重复计费。
MarkTechPost· Michal Sutter·2026-10-22 06:15· 2 小时前AI 评分68
Vercel 开源 durable-harness,让编码智能体崩溃后仍可恢复
AI 导读
Vercel 开源 durable-harness,通过持久日志记录每次模型和工具调用,使编码智能体会话在崩溃或超时后可从新函数恢复,已完成的调用从日志读取、不会重复计费。
正文 · 原文
Vercel 发布了 durable-harness,这是一个开源包,可让编码智能体会话在崩溃和超时后依然存活。Vercel durable-harness 封装现有 harness,包括 Pi、OpenCode、Claude Code 和 Codex,且不改变它们。每个会话都保存在持久日志中。函数死亡不再意味着工作丢失。对于将智能体从笔记本电脑迁移到云端的团队来说,这填补了一个真实的缺口。
TL;DR
- 大小:npm 包,版本 0.0.x,Apache-2.0。适配器覆盖 5 个 harness:Pi、OpenCode、fx、Claude Code、Codex。
- 运行于:Vercel Functions 加 Vercel Queues、Node.js 22+ 配 Postgres,或笔记本电脑文件。Claude Code 和 Codex 需要 Vercel Sandbox。
- 性能:未发布延迟或吞吐量基准。所有恢复声明均为 Vercel 自述。
- 最佳:已完成的模型和工具调用从日志读回,绝不重跑或重复计费。
- 最差:实验性 0.0.x API。Claude Code 和 Codex 仅在 Vercel Sandbox 中运行,即使自托管也是如此。
什么是 durable-harness?
durable-harness 是 Vercel 的一套适配器,将 harness 会话存储在 Workflow SDK World 中。World 将存储、队列和流捆绑在一个接口之后。该包使用与 Vercel Workflow SDK 相同的机制。
为什么编码智能体在云端会丢失工作?
Pi 和 Claude Code 等 harness 被设计为长期运行的本地进程。它们将会话保存在内存中。在本地,工作区和历史记录位于同一磁盘上,因此恢复只需 1 条提示。在云端,具有持久存储的 VM 不会跟踪哪些调用已完成。Vercel 团队指出,一次失败的回合或网络错误就意味着工作丢失。
durable-harness 如何工作?
它将回合的每一步写入持久日志。在模型或工具调用运行之前,它记录一个意图。当调用完成时,它记录结果。每个回合都由 Vercel Queues 上的一条消息支持。如果函数死亡,队列会将回合交给新函数。该函数读取日志并继续。
崩溃后,日志显示哪些已完成、哪些正在运行、哪些从未开始:
- 已完成的调用从日志读取,因此已完成的模型 token 不会再次计费。
replay: 'safe'工具,例如查询,可以再次运行。replay: 'never'工具,例如退款,绝不运行两次。模型会被告知该调用可能已发生。
Harness 会话文件也会镜像到日志中。这涵盖 Claude Code 的转录、Codex 的 rollout 和 OpenCode 的事件存储。
文件和 shell 命令在哪里运行?
模型选择的命令绝不在函数自己的磁盘上运行。工具文档列出了 3 种工作区选项:
virtual()将文件保存在会话日志中,配有兼容 bash 的 shell 且无网络。它可容纳约 500 个文件。virtual({ durable: false })将临时文件保存在内存中,并在每个回合清除它们。sandbox()为每个会话提供一个 Vercel Sandbox,其中/workspace位于 Drive 上。
带类型的 JSON 文档,例如待办事项列表,也存放在日志中。每个文档最多 64 KB。
你可以在哪里运行 durable-harness?
智能体代码在各个 World 之间保持不变:
- Vercel:Vercel World,每个会话都在 Agent Runs 中追踪。
- 本地:你机器上的文件,无需任何配置。
- 自托管:Postgres World,版本 5.0.4 或更高,运行于 Node.js 22+。Vercel 的博客还列出了 MongoDB、Redis 和 Turso。
2 个环境变量,WORKFLOW_TARGET_WORLD 和 WORKFLOW_POSTGRES_URL,即可将智能体迁移到 Postgres。
durable-harness 对比如何?
| 功能 | durable-harness | Temporal + OpenAI Agents SDK | Inngest AgentKit | Cloudflare Agents SDK |
|---|---|---|---|---|
| 是什么 | 为现有编码 harness 提供的持久性适配器 | OpenAI Agents SDK 的持久执行封装 | TypeScript 多智能体框架 | Durable Objects 上的有状态智能体 |
| 封装 Claude Code / Codex | 是,实验性,仅限 Sandbox | 未披露 | 未披露 | 未披露 |
| 持久性后端 | Workflow SDK World(Vercel、本地、Postgres) | Temporal 服务器或 Temporal Cloud | Inngest 编排引擎 | Durable Objects、Cloudflare Workflows |
| 语言 | TypeScript | Python | TypeScript | TypeScript |
| 许可证 | Apache-2.0 | MIT(服务器) | Apache-2.0 | MIT |
| 状态 | 0.0.x,实验性 | 自 2026 年 3 月 23 日起正式可用 | 未披露 | 未披露 |
关键要点
- durable-harness 记录每次模型和工具调用,然后在新函数上恢复崩溃的轮次。
- 已完成的调用绝不会重复,因此 token 不会被重复计费。
- Pi 和 OpenCode 在你的函数中运行;Claude Code 和 Codex 需要 Vercel Sandbox。
- 自托管只需 2 个环境变量和一个 Postgres World。
- 它是 0.0.x 版本且为实验性,没有公开的基准测试。
查看 GitHub 仓库、文档 和 Vercel 的公告。所有功劳归于该项目的研究者。另外,欢迎在 Twitter 上关注我们,别忘了加入我们的 150k+ ML SubReddit 并订阅 我们的 Newsletter。等等!你在 Telegram 上吗?现在你也可以在 Telegram 上加入我们了。
文章 Vercel Open-Sources durable-harness for Crash-Proof Coding Agents 首次发表于 MarkTechPost。
来源:MarkTechPost · marktechpost.com
来源:RadarAI · aihot.news