Overview
Single agents are limited by context window, specialization depth, and parallelism. Multi-agent systems overcome these limits by routing subtasks to specialized agents. But multi-agent systems introduce new failure modes: lost context, conflicting decisions, infinite loops, and cascading failures.
This skill provides the architecture and coordination patterns to build multi-agent systems that are reliable, observable, and maintainable.
When to Use
- The task requires more context than a single agent can handle
- Different subtasks require different specializations (research, coding, review, security)
- Subtasks can be parallelized for speed
- The workflow is long-running and requires checkpointing
- Different tasks require different levels of human oversight
Process
Step 1: Design the Agent Network
- Define agent responsibilities: Each agent should have a single, well-defined job. Name them by role:
researcher, coder, reviewer, security-auditor, tester.
- Define communication topology: Who can talk to whom?
- Pipeline: Agent A → Agent B → Agent C (sequential)
- Supervisor: Orchestrator dispatches to specialists (hub-and-spoke)
- Peer: Agents collaborate as equals (mesh)
- Define data contracts: What does each agent receive? What does it output? Use structured formats (JSON schemas) for inter-agent communication.
- Define the orchestration logic: Who decides which agent acts next?
Verify: You can draw the agent network on a whiteboard with clear roles and data flow.
Step 2: Implement Context Management
- Each agent should receive only the context it needs — not the full conversation history.
- Use a shared state store (database, key-value store) for information that multiple agents need.
- Pass summaries, not full transcripts, when context must traverse agent boundaries.
- Include a task ID in every message for tracing.
Verify: No agent receives more context than it requires for its specific task.
Step 3: Design for Failure
- Every agent call can fail — plan for it:
- Timeout with a defined maximum duration
- Retry with exponential backoff (max 3 retries)
- Fallback behavior when retries are exhausted
- Prevent infinite loops: Track call depth. If depth > N (e.g., 10), surface to human review.
- Checkpointing: For long workflows, save state after each major step so the workflow can be resumed after failure.
- Dead letter queue: Failed tasks that exhaust retries go to a queue for human inspection.
Verify: Failure scenarios are defined for every agent-to-agent call.
Step 4: Human-in-the-Loop Checkpoints
- Define which decisions require human approval:
- Irreversible actions (data deletion, financial transactions, external communications)
- High-uncertainty states (agents disagree, confidence below threshold)
- Sensitive operations (PII access, privileged system access)
- Design the human review interface: What information does the reviewer need? What actions can they take?
Verify: At least one human-in-the-loop checkpoint exists for high-risk operations.
Step 5: Observability
- Log every agent invocation: inputs, outputs, duration, token usage, errors.
- Implement distributed tracing across the agent network (trace ID propagated through all calls).
- Dashboard: agent activity, success/failure rates, latency, token consumption.
- Alerts: agent down, retry rate spike, context overflow, unexpected output patterns.
Verify: You can trace any specific task's full execution path across all agents from logs alone.
Common Rationalizations (and Rebuttals)
| Excuse |
Rebuttal |
| "One agent is simpler" |
Until it hits context limits, fails silently, or produces wrong results. Multi-agent is the right tool for complex tasks. |
| "We'll add observability later" |
Multi-agent systems without observability are black boxes. Debug them in production — I dare you. |
| "Agents are smart, they'll figure it out" |
Agents are tools. They need clear roles, contracts, and failure boundaries. |
| "The happy path works fine" |
Multi-agent systems fail in complex ways. Design for failure from day one. |
Red Flags
- Agents pass full conversation history to other agents (context bloat)
- No timeout defined for any agent call
- Agents can call each other recursively without depth limits
- No human approval required for irreversible actions
- No distributed tracing across agent boundaries
- Agents making conflicting state changes with no conflict resolution
Verification
References
1---2name: multi-agent-orchestration3description: Designs and coordinates multi-agent pipelines where specialized agents collaborate to complete complex tasks. Includes communication protocols, failure handling, and state management.4---5
6## Overview
7
8Single agents are limited by context window, specialization depth, and parallelism. Multi-agent systems overcome these limits by routing subtasks to specialized agents. But multi-agent systems introduce new failure modes: lost context, conflicting decisions, infinite loops, and cascading failures.
9
10This skill provides the architecture and coordination patterns to build multi-agent systems that are reliable, observable, and maintainable.
11
12## When to Use
13
14- The task requires more context than a single agent can handle
15- Different subtasks require different specializations (research, coding, review, security)
16- Subtasks can be parallelized for speed
17- The workflow is long-running and requires checkpointing
18- Different tasks require different levels of human oversight
19
20## Process
21
22### Step 1: Design the Agent Network
23
241. **Define agent responsibilities**: Each agent should have a single, well-defined job. Name them by role: `researcher`, `coder`, `reviewer`, `security-auditor`, `tester`.
252. **Define communication topology**: Who can talk to whom?
26 - **Pipeline**: Agent A → Agent B → Agent C (sequential)
27 - **Supervisor**: Orchestrator dispatches to specialists (hub-and-spoke)
28 - **Peer**: Agents collaborate as equals (mesh)
293. **Define data contracts**: What does each agent receive? What does it output? Use structured formats (JSON schemas) for inter-agent communication.
304. **Define the orchestration logic**: Who decides which agent acts next?
31
32**Verify:** You can draw the agent network on a whiteboard with clear roles and data flow.
33
34### Step 2: Implement Context Management
35
365. Each agent should receive **only the context it needs** — not the full conversation history.
376. Use a shared state store (database, key-value store) for information that multiple agents need.
387. Pass **summaries**, not full transcripts, when context must traverse agent boundaries.
398. Include a **task ID** in every message for tracing.
40
41**Verify:** No agent receives more context than it requires for its specific task.
42
43### Step 3: Design for Failure
44
459. **Every agent call can fail** — plan for it:
46 - Timeout with a defined maximum duration
47 - Retry with exponential backoff (max 3 retries)
48 - Fallback behavior when retries are exhausted
4910. **Prevent infinite loops**: Track call depth. If depth > N (e.g., 10), surface to human review.
5011. **Checkpointing**: For long workflows, save state after each major step so the workflow can be resumed after failure.
5112. **Dead letter queue**: Failed tasks that exhaust retries go to a queue for human inspection.
52
53**Verify:** Failure scenarios are defined for every agent-to-agent call.
54
55### Step 4: Human-in-the-Loop Checkpoints
56
5713. Define which decisions require human approval:
58 - Irreversible actions (data deletion, financial transactions, external communications)
59 - High-uncertainty states (agents disagree, confidence below threshold)
60 - Sensitive operations (PII access, privileged system access)
6114. Design the human review interface: What information does the reviewer need? What actions can they take?
62
63**Verify:** At least one human-in-the-loop checkpoint exists for high-risk operations.
64
65### Step 5: Observability
66
6715. Log every agent invocation: inputs, outputs, duration, token usage, errors.
6816. Implement distributed tracing across the agent network (trace ID propagated through all calls).
6917. Dashboard: agent activity, success/failure rates, latency, token consumption.
7018. Alerts: agent down, retry rate spike, context overflow, unexpected output patterns.
71
72**Verify:** You can trace any specific task's full execution path across all agents from logs alone.
73
74## Common Rationalizations (and Rebuttals)
75
76| Excuse | Rebuttal |
77|--------|----------|
78| "One agent is simpler" | Until it hits context limits, fails silently, or produces wrong results. Multi-agent is the right tool for complex tasks. |
79| "We'll add observability later" | Multi-agent systems without observability are black boxes. Debug them in production — I dare you. |
80| "Agents are smart, they'll figure it out" | Agents are tools. They need clear roles, contracts, and failure boundaries. |
81| "The happy path works fine" | Multi-agent systems fail in complex ways. Design for failure from day one. |
82
83## Red Flags
84
85- Agents pass full conversation history to other agents (context bloat)
86- No timeout defined for any agent call
87- Agents can call each other recursively without depth limits
88- No human approval required for irreversible actions
89- No distributed tracing across agent boundaries
90- Agents making conflicting state changes with no conflict resolution
91
92## Verification
93
94- [ ] Agent network designed with clear roles and data contracts
95- [ ] Context is minimized at each agent boundary
96- [ ] Failure handling (timeout, retry, fallback) for every agent call
97- [ ] Infinite loop prevention via call depth limits
98- [ ] Human-in-the-loop checkpoints for high-risk operations
99- [ ] Distributed tracing implemented across agents
100- [ ] End-to-end test of failure scenarios
101
102## References
103
104- [task-decomposition skill](../task-decomposition/SKILL.md)
105- [observability skill](../observability/SKILL.md)
106- [prompt-injection-defense skill](../prompt-injection-defense/SKILL.md)
107- [hallucination-prevention skill](../hallucination-prevention/SKILL.md)