Parallel Agent Execution
Multiple Agent tool calls in a single message run concurrently. Useful when tasks are independent — researching three unrelated parts of a codebase, running three different tests, exploring three design options.
Parallel agents are a relay race with three runners on different tracks — works if tracks don't cross, fails if they do.
The harness detects multiple tool calls of any type in one assistant turn and executes them in parallel. Each subagent gets its own process, context window, and tool budget. They can't see each other or share state. Results are aggregated and returned together. Best for fan-out work where the parent will synthesize multiple independent reports. Cost is nearly linear in the number of agents (parallelism saves wall time, not tokens).
Parallel agents are the right call when (a) tasks are truly independent (no shared dependency), (b) each task is non-trivial (>30s of work), (c) the parent can synthesize the results meaningfully. They're wrong when tasks overlap (duplicated work), when one agent's output feeds another (sequential), or when results are tiny (overhead exceeds savings). Watch for context bloat in the parent: 5 subagent reports of 500 tokens each is 2.5K tokens added to the parent's window. Background mode is similar but for fire-and-forget — the parent doesn't wait, just gets a notification when done.
I run subagents in parallel when tasks are independent — research three modules at once, run three different test suites, explore three architecture options. The harness handles concurrency automatically when there are multiple Agent calls in a single tool-use turn. The wins are wall-clock time and parent context isolation. The traps are duplicated work when tasks aren't really independent, and parent context bloat when each agent returns verbose reports — I cap subagent responses with explicit length limits.
Parallel agents that overlap. Three agents researching the same auth code = three different summaries with different framings, all of which the parent now has to reconcile. Decompose tasks orthogonally before fanning out.