Skip to content
AX Principles
AX-SYS-19AdvancedDraft

Define roles and handoff contracts for multi-agent flows

Define roles y contratos de transferencia para flujos multiagente

#enterprise#a2a

When agents collaborate, specify each one's responsibility and boundaries, and the exact contract for passing work between them.

Why

Clear roles and handoff contracts prevent multi-agent chaos. The Google A2A protocol formalises this at the protocol level: a planner agent decomposes a goal, delegates sub-tasks via A2A, and each sub-agent executes using its own tool connections. Microsoft's agent governance research identifies undefined role boundaries as the primary cause of enterprise multi-agent failures. The 12-Factor Agents framework is direct: one agent, one job — compose rather than build monoliths. Without an explicit handoff contract (who does what, with what scope, and what they return), agents improvise coordination and produce unpredictable outcomes.

Do

Name roles and define the handoff payload.

Don't

Let agents improvise coordination.

Artifact

{
  "from_agent": "planner",
  "to_agent": "executor",
  "role": "executor",
  "task": "Issue refund for order ord_123",
  "scope": ["refunds:write"],
  "context": { "order_id": "ord_123", "reason": "duplicate charge" },
  "constraints": { "max_spend_usd": 50, "requires_dry_run": true },
  "return_to": "planner"
}

Citations

  1. [01]
    Google A2A Protocol — Task Lifecycle and Orchestration

    A planning agent decomposes objectives into sub-tasks and delegates each to a specialised agent via A2A; clear role definitions and handoff payloads are required for reliable multi-agent coordination

  2. [02]
    Microsoft — agent-governance-toolkit

    Multi-agent orchestration patterns require explicit role definitions and handoff contracts — undefined boundaries are the primary cause of agent coordination failures in enterprise deployments

  3. [03]
    12-Factor Agents — Single Responsibility

    Build small, focused agents with one clear job and compose them into workflows; each agent should have a named role and explicit input/output contract