The agent needs a lane.
When several AI agents share the same accounts, files and queues, they will eventually do the same job twice. The fix isn't a smarter model. It's giving every shared thing exactly one owner, and making each agent check the record before it acts.
Two weeks ago one of my LinkedIn posts went up twice. A few days later a link post on X did the same thing. Nobody hacked anything and no model hallucinated. The same job existed in two places, and both of them ran.
I run a small team of AI agents. One plans content, one runs operations, one posts. They share one computer, one browser and one plain-text queue of everything that's meant to go out. That works well right up to the moment two of them reach for the same thing.
The same week, a chat app's web session on that shared computer logged itself out twice in two days, most likely because more than one agent had opened it. And when I cleaned up the queue, I found leftover rows for two videos that another lane had already scheduled. If I hadn't marked them skipped, they'd have gone out twice as well.
That is the whole essay. When several AI agents share accounts, files or queues, give every shared thing exactly one owner, and make every agent check the record before it acts. A smarter model doesn't fix duplicate work. Clear lanes do.
Why do multi-agent AI systems duplicate work?
Because each agent only sees its own slice of the situation, and nothing stops two agents from deciding the same task is theirs. Duplicate work isn't a rare bug. It's the default outcome when roles overlap.
Anthropic ran into it building the multi-agent research system behind Claude's Research feature. In How we built our multi-agent research system they write that "without detailed task descriptions, agents duplicate work, leave gaps, or fail to find necessary information." Their example: one subagent researched the 2021 automotive chip crisis "while 2 others duplicated work investigating current 2025 supply chains, without an effective division of labor."
Researchers at UC Berkeley and collaborators went further. In Why Do Multi-Agent LLM Systems Fail?, Cemri and colleagues analysed 150 traces from multi-agent systems and found 14 distinct failure modes in three groups: system design issues, inter-agent misalignment and task verification. Two of them describe my double post almost exactly. "Disobey role specification" is an agent ignoring the limits of its role, "potentially leading to an agent behaving like another." "Step repetition" is the "unnecessary reiteration of previously completed steps."
Two agents that both think a job is theirs will both do it.
What does it mean to give an AI agent a lane?
A lane is a written boundary: the actions, accounts and files one agent owns, and the ones it may only read. Inside its lane the agent acts. Outside it, the agent asks, hands over, or leaves a note for the owner.
In my setup the lanes are boring and specific. The posting agent is the only one that publishes to my social accounts. The planning agent drafts and suggests, but never posts. The ops agent routes work and writes things down, but hands every post to the poster. Each row in the queue names who it belongs to.
The Berkeley paper has a useful example of why this matters. In one framework they studied, an agent sometimes ended a conversation without the agreement of the agent meant to have the final say. Making sure that agent "had the final say" lifted the overall task success rate by 9.4%. Same models, clearer ownership.
- 01One ownerEvery shared account, file and queue row has exactly one agent that may change it.the poster posts · the planner drafts · the ops agent routes
- 02A visible claimBefore acting, the owner marks the job as taken.status in the queue · hold · scheduled · posted · with a URL
- 03A check before actingThe agent reads the current state, not its memory of it.is it already scheduled · already live · already claimed
How do you stop two AI agents from doing the same task twice?
Make the action idempotent, which means doing it a second time changes nothing. Then make the agent prove the job isn't done before it does it.
Payment systems solved this long ago. Stripe's idempotent requests exist "for safely retrying requests without accidentally performing the same operation twice": you attach a unique key to the request, and if it's sent again with the same key, Stripe returns the saved result instead of charging twice. Agents need the same thing for anything that leaves a mark, such as a post, an email or a payment. The job gets one ID, and the second attempt at that ID is a no-op.
Most social platforms don't give you an idempotency key, so my posting agent does the next best thing. Before it publishes, it checks the scheduled and live posts for that slot. After it publishes, it writes the live URL back into the queue and notes that there's a single copy. Once a day it checks the scheduled list again for duplicates or posts that vanished. Since that routine started, its notes have read the same way: one copy, nothing missing.
How should AI agents share a single account or browser session?
One session, one owner, and nobody opens a second one. If several agents need the same logged-in account, they reuse the one that already exists, or they ask its owner to do the action.
After the chat session dropped twice, the rule became simple: there is one tab for it, every agent reuses that tab, nobody opens a new one, and nobody clicks the button that takes the session over from somewhere else. It hasn't been a problem since. It's the same idea as a lock in software: only one process holds it at a time, and the others wait.
Do you even need more than one agent?
Sometimes not. Cognition, the team behind Devin, argued in Don't Build Multi-Agents that splitting work across agents that can't see each other's decisions is fragile, because "actions carry implicit decisions, and conflicting decisions carry bad results." Anthropic's own numbers point to the cost: in their data, multi-agent systems "use about 15× more tokens than chats."
I still run several agents, because my work really is separate: planning, posting, operations. But I only split where the lanes are clean. If two agents keep needing the same file to do their jobs, that's usually one job, not two.
In The agent needs its own login I wrote about knowing which agent did what. In The agent needs a yes I wrote about which actions need a human. This one sits between them: before any agent acts, it should know whether the thing is even its to touch.
Give every shared thing one owner. Then make every agent read the record before it acts.
- Human obsolescenceSep 10, 2026 · 10 min
The useful question isn't whether humans get replaced. It's which layer of the job already has — and what the remaining human is actually for.
- Weekend Agent — AI callsMay 18, 2026 · 9 min
An outbound voice agent that actually calls your leads, qualifies them, books meetings, and writes everything back to your CRM — built in a weekend with Vapi, ElevenLabs, and a small amount of glue code.
- The boring middleMay 12, 2026 · 12 min
Why "agents that work on a Tuesday" is the only useful metric in this whole space — and the unsexy plumbing that gets you there.
Owned, undistributed, and published only here — no newsletter, no funnel, no upsell.