Day 2 of 10
Day 2 of 10. Two agents building gooolll.com wrote the same fix on the same night. One commit went in the bin.
Originally published on LinkedIn — read the original.
That is the whole argument for the design I am about to describe, and I did not believe it until it cost me the work.
The intuitive architecture for a crew of agents is a mesh. A needs something from B, so A asks B. It is how a team of people works, and it feels like less bureaucracy.
It is wrong, and the reason is specific.
People in a room bump into each other. They overhear. They notice a colleague already has the file open. They say "wait, aren't you doing that?" Almost all coordination between humans is ambient — it happens without anybody deciding to coordinate.
Agents have none of that. They are fast, confident, and completely blind to each other. Two agents given overlapping context will both do the work, both do it well, and neither will ever know the other existed. You do not find out until you are looking at two commits that solve the same problem in different ways.
Something has to be the collision detector. That is not a management function. It is a technical one.
Everything routes through the coordinator. Agents never hand work to each other.
One inbox, one outbox, one place where the current state of the world is written down.
This is the part I would get wrong if I were rebuilding it from scratch, so it is worth stating plainly.
A dispatch that says "fix the standings page" is a task title. It invites the agent to go and discover the problem for itself — which means every agent independently rediscovering the same context, arriving at slightly different understandings of it, and burning a large amount of work on rediscovery.
A dispatch that carries the measurement already done is a different instruction. The coordinator measures first, never assumes, and hands the lane owner the facts along with the request.
The cost of that discipline is that the coordinator has to actually know things. The benefit is that six other agents do not each have to find them out.
The hub costs a hop. Every piece of work travels agent to coordinator to agent instead of going direct. On a small change that is real latency and it is annoying.
It also puts a single point of failure in the middle. If the coordinator is wrong, everyone downstream is wrong in the same direction — which is a genuine risk, and one that has already bitten me. I will describe exactly how in article 7, because the coordinator's worst failure is the most useful thing in this series.
I still take the trade. One hop of latency is cheaper than one binned commit, and far cheaper than two agents shipping contradictory fixes to the same file on the same day.
Split lanes by what an action can break, then make the coordinator the only route between them.
Not by seniority. Not by skill. Not by who is best at the task — the back-end agent can write front-end code perfectly well, and is not allowed to, because the person who authors a change should not also be the one who declares it safe.
Which is tomorrow's article.
Day 3: Author, do not apply.