Setup: 8 sub-tasks (6 steps each) unless stated; averages over 20 random dependency graphs; one dependency edge to each of the three preceding sub-tasks is present with probability equal to the density.
Dependency density (no prompt cache):
Density
Levels
Edges
Tokens, split / single
Latency, split / single
Success, split vs single (weak model)
0
1.0
0
0.45
0.23
0.71 vs 0.33
0.2
2.9
3.4
0.46
0.54
0.65 vs 0.33
0.5
5.2
9.4
0.47
0.97
0.53 vs 0.33
0.8
6.8
14.6
0.48
1.24
0.46 vs 0.33
1.0
8.0
18.0
0.49
1.46
0.41 vs 0.33
Latency ratio by dependency density, token ratio by task size with and without a prompt cache, and reliability under two sets of hazard rates.
Number of sub-tasks (density 0.1), token ratio split / single:
Sub-tasks
2
3
4
8
12
no prompt cache
1.15
0.91
0.76
0.46
0.33
with prompt cache (read at 0.1)
1.44
1.33
1.21
0.87
0.67
Shared background size (8 sub-tasks, density 0.1), token ratio: 0 tokens: 0.31 without a cache, 0.65 with; 3,000: 0.46 and 0.87; 10,000: 0.67 and 1.22; 20,000: 0.85 and 1.50.
Two scenarios, with a prompt cache: parallel research (8 independent sub-tasks): tokens 0.87, latency 0.23; tightly coupled refactor (density 0.8): tokens 0.90, latency 1.24.
Reliability under a robust model (error rates growing 4 to 5 times more slowly): density 0: split 0.80 against single 0.70; density 0.5: 0.60 against 0.70; density 1.0: 0.46 against 0.70.
Reading it:
Latency is the clear win, and only for independent work. At density 0.5 it is already break-even, and past that the split is slower.
Tokens depend on the cache. Without one, isolated contexts are cheaper for anything beyond two sub-tasks, which is the module 8 (Level 7) result. With one, the single agent's long context is cheap and splitting is only worth it for larger tasks; it costs more for small tasks or a big shared background. This is the same direction as the 15 times reported by Anthropic, although my model does not reproduce that number.
Reliability is the least certain column. It is driven by two assumptions (errors grow with tools and with context). With a weak model, splitting helps even for dependent work; with a robust model, it helps only for independent work. The honest statement is "I would measure it on my own task".
Small tasks do not split. With two sub-tasks the split costs more tokens in both settings, and the latency gain is small.
A decision rule
Can one agent do it reliably? If yes (few tools, short task), stop. This is the usual starting point.
Are there independent branches? Count the levels. If the number of levels is close to the number of sub-tasks, parallelism will not help.
Is the shared background small? If every worker needs the same large context, the tax cancels the saving; consider one agent with a cache, or give workers pointers instead of copies.
Can the handoff be a typed result? If a downstream sub-task depends on an upstream fact that cannot be written down compactly, keep them in one agent.
Is the saving large enough? Compare total tokens, latency and an accuracy measure against a single-agent baseline on a sample of real tasks (Level 9).