Evidence at a glance
When a Function Stops, Agent State Can Disappear with It
Vercel has released durable-harness, an open-source npm package with adapters for coding-agent harnesses including Pi, OpenCode, fx, Claude Code, and Codex. It targets a specific problem: many agents were designed as long-running local processes, with conversation state, tool calls, and workspace data held in memory or local files. After a move to the cloud, a timeout or terminated instance can leave a task without the context it needs to continue.
The release matters to technical leaders not simply because it makes agents runnable in the cloud, but because it shifts the reliability problem from one process to a persistence and recovery mechanism. A cloud instance can be replaced, but its successor needs to know which calls completed, which never started, and which were in progress with an uncertain outcome. durable-harness tries to make those states recoverable records rather than relying on the original process staying alive.
Intent, Outcome, and a Queue Form the Recovery Path
durable-harness manages each turn through a Workflow SDK World. A World presents storage, a queue, and a stream behind one interface. Before a model or tool call runs, the system records its intent; after it finishes, it records the outcome. Each turn is also backed by a message in Vercel Queues, allowing a new function to take over if the current one exits.
Recovery is therefore not simply a replay of the entire conversation from the beginning. A replacement instance can inspect the log to distinguish completed, running, and not-yet-started steps. Completed model and tool calls are read from the log rather than executed again, avoiding another charge for finished model work. Calls with uncertain outcomes need to follow their replay policy, rather than being treated as if every operation were a harmless lookup.
Side Effects Are Harder Than Repeating Computation
Tool replay policy is one of the most consequential boundaries in this design. The materials describe lookup-style tools as replay: 'safe', allowing them to run again during recovery, while operations such as refunds use replay: 'never' to prevent a duplicate action. In the latter case, the agent is told that the call may already have happened. That avoids an indiscriminate retry, but the log alone cannot determine whether the external operation actually succeeded.
For teams integrating tools, this means classification should go beyond asking whether a call can be repeated. They also need to examine timeouts, confirmation from external systems, idempotency keys, and compensation procedures. A durable log can preserve an execution trail, but it does not turn a payment, deployment, or data mutation into a transaction. If an external system offers neither a queryable result nor idempotent behavior, recovery can still leave uncertainty for the agent or a human operator.
Workspace Durability Comes in Different Forms
Alongside call logs, an agent needs a file and command environment in which work can continue. durable-harness offers several choices: virtual() keeps files in the session log and provides a bash-compatible shell without network access, with capacity for about 500 files; virtual({ durable: false }) provides in-memory scratch space that is cleared each turn; and sandbox() gives a session a Vercel Sandbox with its workspace on Drive. Typed JSON documents can also be stored in the log, up to 64 KB each.
These are not interchangeable names for one level of persistence. They make different trade-offs in capacity, isolation, network access, and state retention. A virtual workspace may suit smaller text-based tasks, while a more complete command environment may require a Sandbox and its deployment dependencies. Claude Code and Codex rely on local disk state, so the materials say they can run only in a Vercel Sandbox, including in self-hosted deployments.
Portability Does Not Yet Mean Production Readiness
The documented deployment paths include Vercel Functions with Vercel Queues, Node.js 22 or later with Postgres, and local file-based operation. Pi, OpenCode, and fx allow more flexible runtime choices, while Claude Code and Codex remain constrained to Sandboxes. The design aims to let agent logic run across different Worlds, but it does not give every harness the same deployment freedom.
The available evidence also calls for restraint. The package is in the 0.0.x series, the Claude Code and Codex adapters are experimental, and no latency or throughput benchmarks are published. The recovery claims in the materials are self-reported by Vercel. Technical leaders can evaluate it as a concrete candidate for a recovery architecture, but should first check tool replay semantics, workspace constraints, and failure-test results. Until stronger evidence is available, 'durable' should not be read as a guarantee that no work can be lost end to end.