[控场AI]
产品durable-harness

durable-harness

Vercel 推出的开源适配器和工具集,为 Pi、OpenCode、Claude Code 等编码代理框架注入持久性,通过日志与队列机制实现崩溃恢复和恰好一次语义

时间轴 (近 90 天)

10月21日

目前公开的信息集中在功能层面,实际的恢复粒度、日志开销、与各 Agent 的具体集成方式,还需要看代码和文档才能判断。

待验证50%
10月21日

据 MarkTechPost 报道,durable-harness 的设计目标是覆盖 Vercel 平台、Postgres 以及本地笔记本三种运行环境。

待验证50%
10月21日

恢复时可能重放部分已执行过的工具调用,若这些调用不是幂等的(例如重复写入文件、重复发送请求),就可能产生副作用。

待验证50%
10月21日

durable-harness 的耐久性被做成独立的 harness 层,与具体 Agent 的逻辑解耦;Agent 仍按原有方式发起模型调用和工具调用,harness 在中间拦截并记录这些事件。

待验证50%
10月21日

Vercel 选择开源 durable-harness 而非闭源提供,暗示编程 Agent 的耐久性正在从差异化功能变成基础设施。

待验证50%
10月21日

Vercel 开源了 durable-harness 项目。

待验证50%
10月21日

durable-harness 明确列出的支持对象包括 Pi、OpenCode、Claude Code 和 Codex。

待验证50%
10月20日

durable-harness 的持久化层必须嵌入到 harness 的循环边界上,在每轮模型调用和工具执行前后打检查点。

待验证50%
10月20日

不同 harness 的状态模型和循环结构不同,因此无法靠统一接口一劳永逸地适配持久化层。

待验证50%
10月20日

公开信息仅有 Vercel 的一条发布推文,durable-harness 的定价、技术文档、状态序列化机制、与各 harness 的集成方式以及数月级运行的实际资源表现均未披露。

待验证50%

还有 14 条时间轴事件

全部知识事实 (20)

待验证

恢复时可能重放部分已执行过的工具调用,若这些调用不是幂等的(例如重复写入文件、重复发送请求),就可能产生副作用。

50%
待验证

目前公开的信息集中在功能层面,实际的恢复粒度、日志开销、与各 Agent 的具体集成方式,还需要看代码和文档才能判断。

50%
待验证

Vercel 选择开源 durable-harness 而非闭源提供,暗示编程 Agent 的耐久性正在从差异化功能变成基础设施。

50%
待验证

durable-harness 的耐久性被做成独立的 harness 层,与具体 Agent 的逻辑解耦;Agent 仍按原有方式发起模型调用和工具调用,harness 在中间拦截并记录这些事件。

50%
待验证

durable-harness 明确列出的支持对象包括 Pi、OpenCode、Claude Code 和 Codex。

50%
待验证

据 MarkTechPost 报道,durable-harness 的设计目标是覆盖 Vercel 平台、Postgres 以及本地笔记本三种运行环境。

50%
待验证

durable-harness 的持久化层必须嵌入到 harness 的循环边界上,在每轮模型调用和工具执行前后打检查点。

50%
待验证

不同 harness 的状态模型和循环结构不同,因此无法靠统一接口一劳永逸地适配持久化层。

50%
待验证

公开信息仅有 Vercel 的一条发布推文,durable-harness 的定价、技术文档、状态序列化机制、与各 harness 的集成方式以及数月级运行的实际资源表现均未披露。

50%
待验证

durable-harness 写入 World 接口,因此同一代理可以从一个 World 迁移到另一个而无需更改代码:在 Vercel 上使用 Vercel World,开发时使用本地文件,自托管时使用 Postgres、MongoDB、Redis 或 Turso。

50%
待验证

在 durable-harness 中,将代理迁移到 Postgres 只需设置两个环境变量 WORKFLOW_TARGET_WORLD 和 WORKFLOW_POSTGRES_URL。

50%
待验证

durable-harness 中的文档(document)是存在于会话日志中的类型化 JSON,能抵御崩溃并随会话移动,工具可以通过 io.docs 编辑文档,每次编辑与工具结果一起提交到日志。

50%
待验证

durable-harness 利用驱动 Workflow SDK 的同一套机制来抵御崩溃和函数超时。

50%
待验证

durable-harness 的核心设计是“日志与队列”:在模型调用或工具调用运行前记录意图,调用完成后记录结果;轮次由队列消息兜底,函数死亡后新函数读取日志并从断点继续。

50%
待验证

durable-harness 将已完成调用的结果记录在日志中,恢复时从日志读取,因此不会为已完成的模型调用重复支付 token 费用。

50%
待验证

被中断的工具若标记为 `replay: 'safe'` 则会重新运行;其他工具会以“可能已运行”的状态返回给模型,由模型决定是否检查。

50%
待验证

durable-harness 提供三种文件系统选项:virtual()(文件保存在会话日志中,带兼容 bash 的 shell,无法访问函数文件或网络)、virtual({ durable: false })(文件保存在内存中,每轮结束时清除)、sandbox()(提供独立的 Vercel Sandbox,/workspace 位于 Drive 上)。

50%
待验证

对于保留自身会话文件的框架(如 Claude Code 的 transcript、Codex 的 rollout、OpenCode 的事件存储),每条记录都会镜像到日志中,新函数或 Sandbox 可从中重建它们。

50%
待验证

Claude Code 和 Codex 在 durable-harness 中始终运行在 Vercel Sandbox 中,因为它们需要真实的 shell 和文件系统,不适合多租户使用。

50%
待验证

durable-harness 将 /workspace 放在比沙箱本身更持久的 Drive 存储上,沙箱实例被回收或重建后工作区文件仍然保留,新沙箱可以挂载同一 Drive 继续工作。

50%

来源文章