Stitch agents into runs that never lose their place.
Patchwork is the orchestration layer for multi-agent systems. Every step is checkpointed, every retry is traced, and a crashed worker picks up exactly where the last one stopped.
2,341 runs in flight right now
// 1,900+ teams ship agents on patchwork
01~/patchwork/agents
A directory of agents your team can actually reuse.
Publish an agent once with its model, tools and budget. Every workflow in your org can call it, and every call shows up in the same success-rate history.
10 agents shown
02~/patchwork/runs/run_8f2c
Crashes, rate limits, a human on lunch. The run keeps its place.
Patchwork records every step result as a checkpoint. When a model 429s it backs off and retries that branch only; when a worker dies, another one replays the cached steps for free and carries on.
- fetch_sourcesw-2
- fan_out(research × 3)queued
- └ research[0]queued
- └ research[1]queued
- └ research[2]queued
- draft_reportqueued
- await_approvalqueued
- publishqueued
event log
- 0.0srun_8f2c started · research-digest@v14
exactly-once side effects
Idempotency keys are derived from the step path, so a replayed publish never double-posts.
per-branch retries
One flaky branch backs off alone. Its siblings keep their results and nobody re-pays for tokens.
sleep for weeks
await_approval parks the run at zero cost. It wakes on a webhook, a click or a timeout.
03~/patchwork/sdk
It’s just your code, with checkpoints.
No DAG DSL, no YAML pipelines. Write the workflow as a normal async function in TypeScript or Python; Patchwork turns each step into a durable, replayable unit.
import { workflow, step, agent } from "@patchwork/sdk"; const reader = agent("deep-reader", { model: "atlas-2-large" }); export default workflow("research-digest", async (ctx, topic: string) => { // Every step is checkpointed. Replays are free. const sources = await step("fetch_sources", () => ctx.tools.web.search(topic)); // Fan out with bounded concurrency and per-branch retries. const notes = await ctx.parallel( sources.chunk(3).map((batch, i) => step(`research[${i}]`, () => reader.run({ batch }), { retry: { max: 5, backoff: "exponential", on: [429, 503] }, }), ), ); const draft = await step("draft_report", () => reader.run({ notes })); // Pauses the run (for minutes or weeks) until a human approves. await ctx.approval("await_approval", { to: "@research-leads", draft }); return step("publish", () => ctx.tools.cms.publish(draft), { idempotent: true });});04~/patchwork/primitives
Six primitives. Every agent system you’ve sketched on a whiteboard.
Durable steps
Results persist to your own Postgres or our managed store. Replays read from cache, not from the model.
p99 checkpoint write · 4ms
Fan-out & join
Map over 10 or 10,000 inputs. Concurrency limits per agent, per model and per tenant.
up to 50k branches / run
Human in the loop
Approvals, edits and escalations as first-class steps — routed to chat, email or your own UI.
suspend for up to 1 year
Budgets that hold
Cap tokens and dollars per run. Hitting the cap pauses the run instead of failing it.
enforced before the call
Versioned workflows
Deploy v15 while v14 runs drain. In-flight runs never see code they did not start with.
zero-downtime deploys
Traces you can query
Every attempt, token and tool call in one schema. Export over OpenTelemetry or query in SQL.
30-day retention on Team
steps checkpointed last month
control-plane uptime, trailing 90 days
median token spend saved by cached replays
from npm install to first durable run
05~/patchwork/pricing
Pay for steps that finish. Retries and replays are on us.
A step is one checkpointed unit of work. Failed attempts, backoff waits and cached replays never count toward your bill.
≈ 8,333 steps a day · about 27,778 agent runs at 9 steps each
hobby
For side projects and the first agent you are not sure about yet.
over the 10k free steps
- 10k steps / month
- 3 workflows
- 7-day trace retention
- Community support
team
fits your usageEverything durable, priced on steps — not seats, not tokens.
$49 base + $0.40 per 1k steps over 100k
- 100k steps included
- Unlimited workflows & agents
- Human-in-the-loop approvals
- 30-day traces + OTel export
- SSO via your identity provider
scale
Self-host the runtime in your VPC with our control plane, or run fully air-gapped.
- Volume step pricing
- Bring-your-own Postgres
- 99.99% uptime SLA
- Audit log streaming
- Named solutions engineer
06 · ~/patchwork/docs
Your first durable run is eleven minutes away.
The docs walk you from init to a fan-out with retries and a human approval, on your laptop, without an account.