cd /news/ai-agents/durable-handoffs-for-multi-agent-pip… · home topics ai-agents article
[ARTICLE · art-51547] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Durable handoffs for multi-agent pipelines

ResonateHQ demonstrates durable handoffs for multi-agent pipelines with a new open-source example. The example coordinates three specialist agents—researcher, writer, reviewer—using a 15-line generator that creates durable checkpoints, allowing retries of only the failed agent without re-running the entire pipeline. The approach eliminates the need for orchestration platforms, event buses, or separate databases, with the runtime providing durability and supporting human-in-the-loop patterns via promises.

read1 min views5 publishedJul 8, 2026

Multi-agent systems are sequential pipelines that look like distributed systems.

A researcher gathers findings, a writer drafts, a reviewer checks.

Each agent makes API calls — to Claude, to OpenAI, to whatever LLM is doing the work.

Each call can fail mid-flight. And when one fails, you get a choice: re-run the whole pipeline from the top and burn tokens you already paid for, or wire up checkpointing yourself.

The example-multi-agent-orchestration-ts repo shows the third option. Three specialist agents — researcher → writer → reviewer — coordinated by a 15-line generator.

Each yield* ctx.run(agent, args) is a durable checkpoint. Crash the writer mid-draft, Resonate retries only the writer.

The researcher does not re-run. Its cached output is fed straight back into the retried call.

There is no retry configuration, no step metadata, no routing schema.

The orchestrator is sequential code that reads top-to-bottom.

The bigger story isn't the retry — it's everything that's missing. No orchestration platform. No event bus, no status dashboard backed by a separate database, no per-step retry knobs.

Resonate runs in embedded mode in this example: no external services, no servers to provision, no operational surface to learn. The durability comes from the runtime, not from the application code.

The same primitive that powers retries also powers human-in-the-loop: yield* ctx.promise({}) blocks the workflow on an external signal.

The pipeline s at that line, waiting for an HTTP resolve. While it waits the process can crash, restart, redeploy — the promise survives, and when it resolves the workflow picks up at the next line.

One mechanism, two patterns. No additional surface area.

Originally published on the Resonate Journal.

── more in #ai-agents 4 stories · sorted by recency
── more on @resonatehq 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/durable-handoffs-for…] indexed:0 read:1min 2026-07-08 ·