DEV Community

weiwuji
weiwuji

Posted on

Supervisor Architecture: When a Team of Agents Needs a Manager

The Pain: You split into 5 agents per A2A thinking — email, quoting, reports, finance, support. Each works alone fine, but when collaborating on a complex task: who decides order? Who resolves conflicts? Who backs up failures? Leaderless collaboration becomes chaos.
What You'll Learn: Supervisor architecture — the optimal organization for multi-agent systems, and why "one manager + many workers" beats "peer collaboration."


Hot Background: Why Supervisor Became the Mainstream in 2026

In 2026, the mainstream architecture for enterprise multi-agent systems has shifted from "peer collaboration" to "Supervisor + Worker."

Why? Three reasons:

  1. Peer collaboration's "decision vacuum": 5 peer agents, conflict over "who first, who second" — no arbiter. Deadlock, or everyone does it.
  2. The limit of single responsibility: an agent that both works and decides has its context polluted by decision logic — work quality drops.
  3. Observability demand: enterprises need a "master control" to audit all agent behavior uniformly — the Supervisor is that master control.

In one line: the more agents, the more you need a manager. Supervisor architecture is 2026's organizational answer for multi-agent systems.


Supervisor Architecture
One manager, many workers — the manager decides, workers execute.


The Problem: Three Traps of Peer Collaboration

I started with 5 "peer" agents — each could see the others and call them as needed. Three problems emerged:

Trap 1: Who Goes First?

User: check rate → update quote → email the client

Peer collaboration:
  Quoting Agent: I'll calc the rate first (it called the rate agent)
  Email Agent: I'll send the email first (it sees the quote not updated, stuck)
  Report Agent: me too (it wants to log along the way)

  Three agents start simultaneously, wait on each other, chaos
Enter fullscreen mode Exit fullscreen mode

Trap 2: Who Arbitrates?

Rate agent returns two possibilities (sea/air)
  Quoting Agent: use sea
  Finance Agent: use air (history quotes use air)

  Two agents conflict, no arbiter, each computes its own
Enter fullscreen mode Exit fullscreen mode

Trap 3: Who Backs Up?

Email agent fails (client's email format changed)
  It retries 3 times, still fails
  Then what? Nobody handles it — the task is stuck forever
Enter fullscreen mode Exit fullscreen mode

Root cause: peer collaboration mixes "working" and "deciding" — every agent is both worker and manager, so neither is done well.


Supervisor Architecture: One Manager, Many Workers

The core of Supervisor architecture: one "manager agent" handles scheduling, multiple "worker agents" handle execution. The manager doesn't work; the workers don't decide.

┌─────────────────────────────┐
│      Supervisor Agent        │
│  (manager: decide/schedule)  │
└──────┬──────┬──────┬────────┘
       │      │      │
   ┌───▼──┐┌──▼───┐┌▼────┐
   │Email  ││Quote ││Report│
   │Worker ││Worker││Worker│
   └───────┘└──────┘└─────┘
Enter fullscreen mode Exit fullscreen mode

Division of responsibility:

Agent Does Doesn't do
Supervisor decompose, order, arbitrate, retry no hands-on work
Worker only its specialty no decisions

Flat vs Supervisor
Flat collaboration: no order, no arbiter, no fallback. Supervisor: all solved.


My Practice: The Logistics Supervisor

I added a "Scheduler Agent" as my logistics Supervisor:

class SupervisorAgent:
    """Manager agent: only schedules, never does hands-on work"""

    def handle(self, user_request: str):
        """User request → decompose → dispatch → aggregate"""
        # 1. Decompose (LLM decides which workers needed)
        plan = self.plan(user_request)   # [{"worker": "quoting", "action": "calc_rate", ...}, ...]

        # 2. Dispatch in order (previous result feeds next)
        results = {}
        for step in plan:
            worker = self.workers[step["worker"]]
            step["params"].update(results)
            result = worker.handle(step["action"], step["params"])
            results[step["action"]] = result
            # Fallback retry on failure
            if result["status"] == "failed" and result["retryable"]:
                result = self.retry(worker, step, 3)

        # 3. Aggregate
        return self.summarize(results)

    def retry(self, worker, step, max_retries):
        """Fallback: retry, then escalate if still failing"""
        for i in range(max_retries):
            result = worker.handle(step["action"], step["params"])
            if result["status"] == "ok":
                return result
        return {"status": "failed", "error": f"worker {step['worker']} failed after {max_retries} retries"}
Enter fullscreen mode Exit fullscreen mode

Key design:

  • Supervisor's context holds only "scheduling logic" (how to decompose/order/coordinate), not "business knowledge" (how to calc rates)
  • Worker's context holds only "business knowledge," not "scheduling logic"
  • Both contexts stay clean, no cross-contamination

The Payoff: From "Chaotic Collaboration" to "Ordered Pipeline"

Dimension Peer Collaboration Supervisor Architecture
Execution order chaotic (racing) ordered (manager)
Conflict handling no arbitration manager decides
Failure fallback none (stuck) manager retries
Task tracking hard manager records
Context cleanliness low (mixed decisions) high (separation)

Practical conclusion: Supervisor's value isn't "one more layer" — it's "taking decisions out of workers' hands and giving them to a dedicated manager." Each agent's context is cleaner; the whole system is more controllable.


When to Use Supervisor vs Peer

Peer is enough: 2-3 agents, simple tasks, no complex dependencies — peer saves a layer.

Supervisor required:

  1. 5+ agents (more people need management)
  2. Tasks with sequential dependencies (wrong order breaks everything)
  3. Unified audit/tracking needed (enterprise requirement)
  4. Conflicts likely frequent

Where You Are Now

You've evolved from the naivety of "split agents and let them figure it out" to the maturity of "giving the agent team a manager."

Supervisor architecture is the dividing line between "can collaborate" and "collaborates reliably" for multi-agent systems. It's not complex — just one "schedule-only" agent — but precisely this "does-nothing" manager makes the whole system orderly, controllable, and trackable.

Remember: agent teams are like human teams — more people isn't better; organized is better. Supervisor is the manager that turns "many" into "orderly."


About the author: Wu Ji (无记) — AI & digitalization practitioner focused on Agent engineering, Loop Engineering, and digital transformation. Practical, hands-on tutorials — follow along and it just works.

Top comments (0)