Cookbook
Best-practice workflow patterns with copy-paste code examples.
A curated collection of workflow patterns with clean, copy-paste code examples for real use cases.
Agent Patterns
- Durable Agent — Replace a stateless AI agent with one that survives crashes and retries tool calls
- Human-in-the-Loop — Pause an agent for human approval, then resume based on the decision
- Agent Cancellation — Stop a running agent immediately via
run.cancel()or gracefully via a hook +Promise.race
Common Patterns
- Sequential & Parallel Execution — Compose steps with
await,Promise.all, andPromise.raceagainst durable sleeps and webhooks - Workflow Composition — Call workflows from other workflows by direct await or background spawn via
start() - Saga — Coordinate multi-step transactions with automatic rollback when a step fails
- Batching — Process large collections in parallel batches with failure isolation
- Rate Limiting — Handle 429 responses and transient failures with RetryableError and backoff
- Scheduling — Use durable sleep to schedule actions minutes, hours, or weeks ahead
- Timeouts — Add deadlines to slow steps, hooks, and webhooks by racing them against a durable sleep
- Idempotency — Ensure side effects happen exactly once, even when steps retry
- Webhooks — Receive HTTP callbacks from external services and process them durably
Integrations
- AI SDK — Use streamText() directly inside a workflow for lower-level control over model calls and tool execution
- Chat SDK — Build durable chat sessions with workflow persistence and AI SDK chat primitives
- Sandbox — Orchestrate Vercel Sandbox lifecycle inside durable workflows
Advanced
- Child Workflows — Spawn and orchestrate child workflows from a parent
- Upgrading Workflows — Identify a clean upgrade point in a long-running workflow and spawn a fresh run on the latest deployment carrying state forward
- Serializable Steps — Wrap non-serializable third-party objects so they cross the workflow boundary
- Publishing Libraries — Ship npm packages that export reusable workflow functions