durable-harness

5天前发布 21 00

Vercel开源durable-harness,给Claude Code、OpenCode、Pi等编码代理增加持久会话能力,进程崩溃、超时后可断点续跑;已完成调用不会重复计费Token。支持本地、Vercel云、Postgres自托管三种部署,但当前为0.0.x实验版本,Claude Code与Codex运行依赖Vercel Sandbo...

所在地:
Vercel
收录时间:
2026-10-23
其他站点:
durable-harnessdurable-harness

Vercel 正式开源 durable-harness,一款面向编码代理的持久化适配层工具包,用于解决云端AI编码代理进程崩溃、超时导致任务中断、工作成果丢失的痛点。它作为适配器封装现有各类编码harness,无需改动原有代理本身,支持Pi、OpenCode、fx、Claude Code、Codex。项目采用Apache-2.0协议,当前处于0.0.x实验阶段。

durable-harness

核心原理

编码代理(Claude Code、Pi这类工具)原生多设计为本地内存常驻进程,一旦云端函数崩溃,内存中的会话状态直接丢失。

durable-harness 会把每一步执行动作写入持久日志:执行前记录调用意图,完成后保存结果;任务流程依托Vercel Queues消息队列调度。当进程崩溃,队列会把本轮任务转交新函数,新实例读取日志,从断点继续执行。

日志会区分不同工具的重放策略:

  • 已经完成的模型/工具调用直接读取日志结果,不会重复执行、不会重复扣减token费用
  • replay: 'safe' 类工具(如文件检索)可安全重跑
  • replay: 'never' 类高危操作(退款等)绝不重复执行,模型会知晓调用可能已发生

会话日志同时镜像保存harness会话记录,包含Claude Code转录、Codex输出、OpenCode事件存储。结构化JSON文档(待办清单等)也存入日志,单条上限64KB。

工作区选项

命令与文件不会直接运行在函数本地磁盘,提供3种工作区模式:

  1. virtual():文件保存在会话日志,内置兼容bash的沙盒shell,无外网,最多容纳约500个文件
  2. virtual({ durable: false }):临时文件存放内存,每轮执行后清空
  3. sandbox():独立Vercel Sandbox,在Drive挂载/workspace工作目录

    注意:Claude Code、Codex无论云端或自托管场景,都必须依赖Vercel Sandbox。

部署运行环境

  • Vercel平台:依托Vercel Functions + Vercel Queues,Agent Runs追踪会话
  • 本地环境:直接写入本机文件,零配置
  • 自托管:Node.js22+搭配Postgres 5.0.4+,也支持MongoDB、Redis、Turso,仅需配置两个环境变量即可切换后端

横向对比

durable-harness定位是现有编码harness的持久化适配器,和Temporal、Inngest AgentKit、Cloudflare Agents SDK等代理编排框架定位不同,优势在于原生兼容Claude Code、Codex编码代理生态;缺点是版本尚为实验版,暂无公开延迟、吞吐量基准,恢复能力数据均为Vercel自报。

相关导航