Back to Thoughts

Why Your AI Agents Keep Overwriting Each Other

Michael HofwellerFeb 12, 20265 min readField Notes
Agent CoordinationMulti-Agent

#Why Your AI Agents Keep Overwriting Each Other

If you've tried running multiple AI coding agents on the same project, you've hit this problem: they overwrite each other's work. Agent A rewrites a file that Agent B just modified. Agent B's changes are gone. Nobody noticed until the tests broke.

This isn't a bug in any specific agent. It's a missing layer in the stack.

#The Coordination Gap

Today's AI coding agents are designed to work alone. They assume exclusive access to the codebase. They read a file, reason about changes, write the file back — and never check if someone else touched it in between.

This is fine for solo use. It breaks completely for teams.

The moment you have two agents working in parallel — which is the natural next step for any team trying to move faster — you need coordination. You need agents that can:

  • Declare intent before modifying files
  • Detect conflicts before they happen
  • Communicate about who's doing what
  • Recover when things go wrong

None of this exists in standard agent frameworks today.

#What It Looks Like in Practice

Here's a real scenario from our development workflow:

  1. Agent A starts refactoring the database query layer
  2. Agent B starts adding a new API endpoint that uses the query layer
  3. Agent A finishes and writes updated files
  4. Agent B finishes and writes its files — overwriting Agent A's changes to shared modules
  5. The build breaks. Neither agent's changes work in isolation

The fix isn't to "just run agents sequentially." That defeats the entire purpose of having multiple agents. Sequential execution turns a team of agents into a single agent with extra overhead.

#The Solution is Infrastructure

This is fundamentally an infrastructure problem, not an agent problem. Individual agents don't need to become smarter — they need better primitives to coordinate with.

That's why we built Nexus: a coordination server that sits between agents and the codebase. It provides distributed locking (so agents can claim files), institutional memory (so agents share context), and real-time communication (so agents can negotiate).

The key insight is that agent coordination looks a lot like the distributed systems problems we've been solving for decades. File locking, conflict resolution, state management — these are well-understood domains. We just need to apply them to a new kind of distributed actor.

More on the technical details in our research on distributed locking and institutional memory.