You have one bug and two ways to spend the morning on it. In the first, four agents share it: one reads the failing test and writes a specification, one implements the patch, one runs the suite and sends it back twice, and one opens the pull request at the end. In the second, five agents get the same bug, unchanged, each in its own checkout of the repository, and none of them ever learns that the others exist. Four of those five results go in the bin. The second morning does five times the work, and it is more often the cheaper of the two.

The breakaway costs less than the radio

A cycling team has two ways to win a stage. It can control the race: the whole squad rides at the front, one rider setting the pace, another fetching bottles, another delivering the leader to the final corner, everyone holding a position that only makes sense if the others hold theirs, with the team car on the radio keeping the plan synchronized all afternoon. Or it can put four riders into four different attacks up the road. Nobody talks to anybody. Four efforts get spent, three of them are wasted, and if a single one sticks, the team wins the stage.

The controlled race is the agent team with roles: a specification that has to be written down before the next agent can start, a patch that has to be read before it can be reviewed, and a shape where each step only makes sense because of the step before it. The attack up the road is five agents on the same bug in five isolated working copies. What the second arrangement buys is not speed alone. Coordination is billed continuously — every handoff needs someone to write the contract, every agent needs enough of the others’ work loaded to act on it, and a constraint left out of the first description is still missing three agents later. Competition is billed once, up front, in parallel. The losing branches are deleted without ever being merged into anything.

Racing works when the verdict is mechanical

That bill only stays small if picking the winner is cheap, and it is cheap only when the finish line is something a machine can see. A green build, a diff short enough to read, a test that passes or doesn’t, a two-minute walkthrough of what changed: with evidence like that, choosing among five attempts takes minutes. Without it, someone has to reread five sessions to find out what happened, and you have paid the coordination cost anyway, all at once, at the end. Deciding the acceptance criterion and the budget before the fan-out is the whole trick, because the best diff does not emerge from the number of tries.

Racing also needs the attempts to be genuinely disposable, which is what separate working copies are for: five agents editing one tree would spend the morning colliding instead. Some work is not disposable. A support flow that collects a customer’s details and then authorizes a refund cannot be run five times and scored, because the refund happens once and the state has to move forward intact. That shape wants a handoff. Work split across genuinely different domains — calendar, mail, the CRM — wants separate agents with separate context rather than five copies of the same one.

More agents is not more quality

The expensive mistake is not picking the wrong arrangement. It is picking any arrangement before a single agent has run into a limit you can measure: context filling up with material it never uses, ownership spread so thin that nobody can say which agent broke the build, work that genuinely could have run at the same time and didn’t. Roles that exist only as names are the same error with better vocabulary — a reviewer that produces nothing anyone checks adds a handoff and returns no evidence. When several agents do earn their place, the risk moves into the space between them, which Multi-Agent Systems walks through in detail.

None of this changes the model. It changes what the model is arranged into, and the arrangement is where the cost lives. When agreement costs more than the attempt, stop coordinating and start racing.