Skip to main content
Run independent agent tasks at the same time, then combine their outputs in one workflow.
The user sends one request; parallel agents run at the same time before an aggregator merges results.

Quick Start

1

Simple Usage

2

With Configuration


How It Works


Configuration Options

parallel() accepts a list of agents or step callables. Each worker receives the same workflow context; results are collected in ctx.variables["parallel_outputs"] for the next step.

Best Practices

Only parallelise work that does not need another worker’s output mid-flight. Route dependent steps after the aggregator.
A dedicated agent (or function step) after parallel() turns multiple raw outputs into one coherent response.
When workers call external APIs, use await workflow.astart() so concurrent I/O does not block the event loop.
Parallel LLM calls multiply token usage and API requests. Cap worker count or add a rate limiter if needed.

Orchestrator Worker

Route tasks to specialised workers from a central orchestrator

AgentFlow

Build multi-step agent pipelines