Default to a Single-Threaded Linear Agent

Run one task at a time in sequence unless you have a concrete reason to fan out — parallelism is an optimization, not a starting point.

What it is

The instinct when designing multi-step workflows is to run as much as possible in parallel. Resist that instinct as the default. A single-threaded, linearly sequenced agent — step one completes, step two begins — is far easier to reason about, debug, and modify than a concurrent fan-out. You know exactly what happened in what order. You can read the trace top to bottom. When something goes wrong, the failure site is localized and the prior context is intact. Parallelism introduces race conditions, conflicting writes, interleaved context, and compound failure modes. These are solvable problems, but solving them costs complexity, and complexity in agentic systems tends to compound. Before reaching for parallel execution, ask: does the current bottleneck actually come from serial execution? In many cases the answer is no — the bottleneck is I/O latency, model response time, or human review cycles that no amount of internal concurrency resolves. Start linear. Profile before optimizing.

When to reach for it

When NOT to

Exemplars

Related