Most multi-agent frameworks for software development organize agents around roles: a product manager agent, a developer agent, a tester agent. ChatDev and MetaGPT pioneered this approach, and it works well for monolithic tasks.

But I ran into a wall when I tried to apply it to a real system with multiple independently-deployed services.

The Problem with Role-Based Coordination

Imagine you have a backend search service and a frontend management console. The backend team implements a new API endpoint. The frontend needs to adapt.

In a role-based framework, there's no natural mechanism for this. Both agents are "developers" in the same simulated organization. There's no concept of service boundaries, no versioned contracts, no way to say "the backend changed, and the frontend needs to know exactly what changed."