Jonatan Matajonmatum.com
conceptsnotesexperimentsessays
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Concepts

Multi-Agent Systems

Architectures where multiple specialized AI agents collaborate, compete, or coordinate to solve complex problems that exceed a single agent's capability.

evergreen#multi-agent#ai-agents#orchestration#collaboration#swarm#a2a

What it is

A multi-agent system is an architecture where multiple specialized AI agents work together to solve complex problems. Each agent has a specific role, tools, and knowledge, and they coordinate through defined communication patterns.

The idea isn't new — it comes from distributed systems research in the 90s — but LLMs have revitalized it by making agents that communicate in natural language possible.

Coordination topologies

Centralized orchestrator

A main agent delegates tasks to specialized agents:

Orchestrator
├── Research agent
├── Code agent
└── Review agent

Advantage: clear control. Disadvantage: bottleneck at the orchestrator.

Swarm

Autonomous agents that pass control to each other based on rules:

Agent A → (condition) → Agent B → (condition) → Agent C

Advantage: flexible, decentralized. Disadvantage: hard to debug.

Debate/Competition

Multiple agents propose solutions and a judge selects the best:

Agent 1 → Proposal
Agent 2 → Proposal    → Judge → Best solution
Agent 3 → Proposal

Agent graph

Agents connected in a directed graph with conditional flows:

Input → Classifier → [Route A: Agent 1 → Agent 2]
                    → [Route B: Agent 3]
                    → Synthesizer → Output

Example: agents-as-tools with Strands

The agents-as-tools pattern turns each specialized agent into a tool the orchestrator can invoke. With Strands Agents:

from strands import Agent
from strands.models.bedrock import BedrockModel
 
# Specialized agents
researcher = Agent(
    model=BedrockModel(model_id="anthropic.claude-sonnet-4-20250514"),
    system_prompt="You are a researcher. Find precise technical information.",
    tools=[web_search, arxiv_search],
)
 
reviewer = Agent(
    model=BedrockModel(model_id="anthropic.claude-sonnet-4-20250514"),
    system_prompt="You are a technical reviewer. Verify claims and detect errors.",
    tools=[fact_check],
)
 
# Orchestrator that uses agents as tools
orchestrator = Agent(
    model=BedrockModel(model_id="anthropic.claude-sonnet-4-20250514"),
    system_prompt=(
        "You coordinate a team of agents. "
        "Use 'researcher' to find information and 'reviewer' to verify it."
    ),
    tools=[researcher.as_tool(), reviewer.as_tool()],
)
 
result = orchestrator("Research prompt caching best practices and verify the data")

Each agent maintains its own context and tools. The orchestrator decides when to invoke each one based on the task.

Frameworks

FrameworkFocusPrimary topology
Strands AgentsAgents-as-tools, graph, swarmOrchestrator + graph
CrewAIStructured roles and tasksOrchestrator
AutoGenMulti-agent conversationsSwarm
LangGraphState graphs with agentsGraph

Failure modes and recovery

Multi-agent systems introduce failure modes that don't exist in individual agents:

FailureCauseRecovery
Error cascadeOne agent fails and dependents followCircuit breaker per agent, fallback to partial response
DeadlockTwo agents waiting for each other's responseTimeouts per interaction, cycle detection
DivergenceAgents produce contradictory resultsJudge agent that resolves conflicts, majority voting
Cost explosionAgents invoking each other recursivelyDepth limit, token budget per task
Context driftShared context degrades between iterationsPeriodic state summary, checkpoints

Cost analysis

Multi-agent system cost grows multiplicatively:

Cost ≈ N_agents × avg_tokens_per_agent × price_per_token × iterations

An orchestrator with 3 specialized agents doing 2 iterations each consumes roughly 6-8x more tokens than a single agent solving the same task. The key question: does the quality improvement justify the additional cost?

Strategies to control costs:

  • Use smaller models for simple-task agents (classification, extraction)
  • Limit context passed between agents (only relevant info, not the full conversation)
  • Set token budgets per task with circuit breakers

When to use multi-agent vs single agent

CriterionSingle agentMulti-agent
Homogeneous task✓Overkill
Multiple expertise domainsInsufficient context✓
Need for cross-verificationNot possible✓
Limited token budget✓Expensive
Independent subtasksSequential✓ (parallel)

Why it matters

Multi-agent systems allow decomposing complex tasks into specialized subtasks, where each agent has its own context, tools, and model. But they are not the default solution — a single well-configured agent solves most problems. Multi-agent is justified when the task genuinely requires diverse expertise, cross-verification, or parallel processing of independent subtasks.

References

  • Large Language Model based Multi-Agents: A Survey of Progress and Challenges — Tao et al., 2024. Comprehensive survey of LLM-based multi-agent systems.
  • Communicative Agents for Software Development — Qian et al., 2023. ChatDev: agents collaborating to develop software.
  • Agent-to-Agent Protocol — Google, 2025. Open protocol for inter-agent communication.
  • AutoGen: Enabling Next-Gen LLM Applications — Wu et al., 2023. Microsoft framework for multi-agent systems.
  • Strands Agents — AWS, 2025. Agent SDK with native support for agents-as-tools, graph, and swarm.

Related content

  • AI Agents

    Autonomous systems that combine language models with reasoning, memory, and tool use to execute complex multi-step tasks with minimal human intervention.

  • Strands Agents

    Open source SDK from AWS for building AI agents with a model-driven approach. Functional agents in a few lines of code, with multi-model support, custom tools, MCP, multi-agent, and built-in observability.

  • Agentic Workflows

    Design patterns where AI agents execute complex multi-step tasks autonomously, combining reasoning, tool use, and iterative decision-making.

  • AI Orchestration

    Patterns and frameworks for coordinating multiple AI models, tools, and data sources in production pipelines, managing flow between components, memory, and error recovery.

  • Content Agent with Strands and Bedrock

    Three-agent system that automates the bilingual MDX content lifecycle: deterministic QA auditing, surgical fixes, and full upgrades — all orchestrated with Strands Agents, Claude Sonnet 4 on Amazon Bedrock, and GitHub Actions with a diamond workflow pattern.

Concepts