←新闻详情

MarkTechPost更新于 10月25日 00:35

Vercel 开源 durable-harness,让编码智能体崩溃后继续运行

Vercel Open-Sources durable-harness for Crash-Proof Coding Agents - MarkTechPost

AI 导读

Vercel 开源 durable-harness,这是一个 npm 包,可包裹 Pi、OpenCode、fx、Claude Code 和 Codex 等编码智能体框架,把会话写入持久日志,函数崩溃后由队列把该轮交给新函数继续执行。已完成的模型和工具调用直接从日志读取,不会重复计费;工具可标记为 safe 重放或 never 不重放。该包版本为 0.0.x、Apache-2.0 许可,可跑在 Vercel Functions 加 Queues、Node.js 22+ 配 Postgres,或本地文件;Claude Code 和 Codex 需运行在 Vercel Sandbox 中,且未公布性能基准。

推荐理由

AI 评分 69

原文把崩溃恢复的日志机制、可重放工具分级和三种运行环境讲清楚了,便于判断能否把编码智能体搬上云端。

主题

标签

正文

当前显示原文,中文全文译文尚未就绪。

Add as a preferredsource on Google

Vercel has released durable-harness, an open-source package that keeps coding agent sessions alive through crashes and timeouts. Vercel durable-harness wraps existing harnesses, including Pi, OpenCode, Claude Code and Codex, without changing them. Each session lives in a durable log. A dead function no longer means lost work. For teams moving agents off laptops and into the cloud, that closes a real gap.

TL;DR

Size: npm package, version 0.0.x, Apache-2.0. Adapters cover 5 harnesses: Pi, OpenCode, fx, Claude Code, Codex.

Runs on: Vercel Functions plus Vercel Queues, Node.js 22+ with Postgres, or laptop files. Claude Code and Codex need a Vercel Sandbox.

Performance: No latency or throughput benchmarks published. All recovery claims are self-reported by Vercel.

Best: Finished model and tool calls are read back from the log, never re-run or billed twice.

Worst: Experimental 0.0.x API. Claude Code and Codex run only in a Vercel Sandbox, even self-hosted.

What is durable-harness?

durable-harness is a set of adapters from Vercel that store a harness session in a Workflow SDK World. A World bundles storage, a queue and a stream behind one interface. The package uses the same machinery that powers Vercel’s Workflow SDK.

Why do coding agents lose work in the cloud?

Harnesses like Pi and Claude Code were designed as long-lived local processes. They keep the session in memory. Locally, the workspace and history sit on the same disk, so resuming takes 1 prompt. In the cloud, a VM with persistent storage does not track which calls completed. Vercel team notes a failed turn or network error then means lost work.

How does durable-harness work?

It writes each step of a turn to a durable log. Before a model or tool call runs, it records an intent. When the call finishes, it records the outcome. Each turn is backed by a message on Vercel Queues. If the function dies, the queue hands the turn to a new function. That function reads the log and continues.

After a crash, the log shows what finished, what was running and what never started:

Completed calls are read from the log, so finished model tokens are not billed again.

replay: 'safe' tools, such as lookups, can run again.

replay: 'never' tools, such as refunds, never run twice. The model is told the call may have happened.

Harness session files are mirrored into the log as well. That covers Claude Code’s transcript, Codex’s rollout and OpenCode’s event store.

Where do files and shell commands run?

Model-chosen commands never run on the function’s own disk. The tools docs list 3 workspace options:

virtual() keeps files in the session log, with a bash-compatible shell and no network. It holds about 500 files.

virtual({ durable: false }) keeps scratch files in memory and clears them every turn.

sandbox() gives each session a Vercel Sandbox, with /workspace on a Drive.

Typed JSON documents, such as a to-do list, also live in the log. Each holds at most 64 KB.

Where can you run durable-harness?

The agent code stays the same across Worlds:

Vercel: the Vercel World, with every session traced in Agent Runs.

Local: files on your machine, with no configuration.

Self-hosted: the Postgres World, version 5.0.4 or later, on Node.js 22+. Vercel’s blog also lists MongoDB, Redis and Turso.

2 environment variables, WORKFLOW_TARGET_WORLD and WORKFLOW_POSTGRES_URL, move an agent to Postgres.

How does durable-harness compare?

What it isDurability adapters for existing coding harnessesDurable execution wrapper for OpenAI Agents SDKTypeScript multi-agent frameworkStateful agents on Durable Objects

Wraps Claude Code / CodexYes, experimental, Sandbox-onlyNot disclosedNot disclosedNot disclosed

Durability backendWorkflow SDK World (Vercel, local, Postgres)Temporal server or Temporal CloudInngest orchestration engineDurable Objects, Cloudflare Workflows

LanguageTypeScriptPythonTypeScriptTypeScript

LicenseApache-2.0MIT (server)Apache-2.0MIT

Status0.0.x, experimentalGA since Mar 23, 2026Not disclosedNot disclosed

Key Takeaways

durable-harness logs every model and tool call, then resumes crashed turns on a new function.

Finished calls are never repeated, so tokens are not billed twice.

Pi and OpenCode run in your function; Claude Code and Codex need a Vercel Sandbox.

Self-hosting works with 2 env vars and a Postgres World.

It is 0.0.x and experimental, with no published benchmarks.

Michal Sutter+ postsBio ⮌

Michal Sutter is a data science professional with a Master of Science in Data Science from the University of Padova. With a solid foundation in statistical analysis, machine learning, and data engineering, Michal excels at transforming complex datasets into actionable insights.

Michal SutterExa 3.0 Search API Tops Perplexity, Brave and Parallel on 8 Benchmarks

Michal SutterMeet Drex Max: Nace AI’s Multimodal Decision Model for Computer-Use Agents with a Score 67.59

RELATED ARTICLESMORE FROM AUTHOR

Google Cloud Ships llm-d 1.0 With Cache-Aware Routing for TPU and GPU Fleets

DeepSeek Open-Sources DeepInfer, the Inference Framework Behind DeepSeek-V4.1-Flash

Exa 3.0 Search API Tops Perplexity, Brave and Parallel on 8 Benchmarks

来源

MarkTechPost