multi-agent-orchestration
qodex-ai/ai-agent-skills
Design and coordinate multi-agent systems where specialized agents collaborate to solve complex problems
What is multi-agent-orchestration?
Multi-agent orchestration enables you to decompose complex problems into specialized sub-tasks, assigning each to an agent with relevant expertise, then coordinating their work toward a unified goal. Use this when building coordinated agent teams, complex workflows, or systems requiring specialized expertise across domains.
- Design agent teams with specialized roles, goals, and expertise
- Implement orchestration patterns: sequential, parallel, hierarchical, consensus-based, and tool-mediated
- Coordinate agent communication, task delegation, and result aggregation
- Build multi-agent systems using CrewAI, AutoGen, LangGraph, and OpenAI Swarm frameworks
- Monitor workflow execution and measure team performance and agent effectiveness
How to install multi-agent-orchestration
npx skills add https://github.com/qodex-ai/ai-agent-skills --skill multi-agent-orchestrationHow to use multi-agent-orchestration
- 1.Choose an orchestration pattern (sequential, parallel, hierarchical, consensus, or tool-mediated) based on your workflow requirements
- 2.Define your agents with clear roles, goals, expertise areas, and available tools
- 3.Select a framework (CrewAI for hierarchical teams, AutoGen for multi-turn conversations, LangGraph for complex state workflows, Swarm for simple handoffs)
- 4.Implement agent communication using message brokers or shared memory from agent_communication.py utilities
- 5.Execute and monitor your workflow using workflow_management.py utilities and benchmarking.py for performance metrics
Use cases
- Finance teams analyzing market conditions, company financials, risks, and synthesizing reports
- Legal teams reviewing contracts, researching precedents, assessing risks, and drafting documents
- Customer support systems that classify issues, search knowledge bases, determine escalation, and synthesize solutions
- Complex research projects requiring parallel analysis from multiple specialized perspectives
- Decision-making systems where multiple agents debate and reach consensus on recommendations
- AI engineers building coordinated agent systems
- Product teams designing complex workflows requiring specialized expertise
- Organizations needing resilient systems where agent failures don't break the entire pipeline
- Teams working on domain-specific problems (finance, legal, support) requiring multiple specialized roles
multi-agent-orchestration FAQ
Use multi-agent systems for complex workflows requiring multiple specialized roles, domain-specific expertise, parallel processing, collaborative reasoning, or when you need resilience and scalability. Single agents work better for simple, focused tasks.
Sequential for ordered steps, parallel for independent tasks, hierarchical for large projects with oversight, consensus-based for complex decisions needing multiple perspectives, and tool-mediated for large systems with indirect coordination.
CrewAI for teams with clear roles and hierarchy, AutoGen for complex multi-turn conversations and negotiations, LangGraph for complex workflows with state management, and OpenAI Swarm for simple agent handoffs and conversational flows.
Agents can communicate via message brokers, shared memory, direct messaging protocols, or indirectly through shared tools and databases. The agent_communication.py utility provides implementations for these patterns.
Use the benchmarking.py utility to track team performance metrics and agent effectiveness. Monitor workflow execution time, task success rates, and quality of aggregated results.
Full instructions (SKILL.md)
Source of truth, from qodex-ai/ai-agent-skills.
name: multi-agent-orchestration description: Design and coordinate multi-agent systems where specialized agents work together to solve complex problems. Covers agent communication, task delegation, workflow orchestration, and result aggregation. Use when building coordinated agent teams, complex workflows, or systems requiring specialized expertise across domains.
Multi-Agent Orchestration
Design and orchestrate sophisticated multi-agent systems where specialized agents collaborate to solve complex problems, combining different expertise and perspectives.
Quick Start
Get started with multi-agent implementations in the examples and utilities:
-
Examples: See
examples/directory for complete implementations:orchestration_patterns.py- Sequential, parallel, hierarchical, and consensus orchestrationframework_implementations.py- Templates for CrewAI, AutoGen, LangGraph, and Swarm
-
Utilities: See
scripts/directory for helper modules:agent_communication.py- Message broker, shared memory, and communication protocolsworkflow_management.py- Workflow execution, optimization, and monitoringbenchmarking.py- Team performance and agent effectiveness metrics
Overview
Multi-agent systems decompose complex problems into specialized sub-tasks, assigning each to an agent with relevant expertise, then coordinating their work toward a unified goal.
When Multi-Agent Systems Shine
- Complex Workflows: Tasks requiring multiple specialized roles
- Domain-Specific Expertise: Finance, legal, HR, engineering need different knowledge
- Parallel Processing: Multiple agents work on different aspects simultaneously
- Collaborative Reasoning: Agents debate, refine, and improve solutions
- Resilience: Failures in one agent don't break the entire system
- Scalability: Easy to add new specialized agents
Architecture Overview
User Request
↓
Orchestrator
├→ Agent 1 (Specialist) → Task 1
├→ Agent 2 (Specialist) → Task 2
├→ Agent 3 (Specialist) → Task 3
↓
Result Aggregator
↓
Final Response
Core Concepts
Agent Definition
An agent is defined by:
- Role: What responsibility does it have? (e.g., "Financial Analyst")
- Goal: What should it accomplish? (e.g., "Analyze financial risks")
- Expertise: What knowledge/tools does it have?
- Tools: What capabilities can it access?
- Context: What information does it need to work effectively?
Orchestration Patterns
1. Sequential Orchestration
- Agents work one after another
- Each agent uses output from previous agent
- Use Case: Steps must follow order (research → analysis → writing)
2. Parallel Orchestration
- Multiple agents work simultaneously
- Results aggregated at the end
- Use Case: Independent tasks (analyze competitors, market, users)
3. Hierarchical Orchestration
- Senior agent delegates to junior agents
- Manager coordinates flow
- Use Case: Large projects with oversight
4. Consensus-Based Orchestration
- Multiple agents analyze problem
- Debate and refine ideas
- Vote or reach consensus
- Use Case: Complex decisions needing multiple perspectives
5. Tool-Mediated Orchestration
- Agents use shared tools/databases
- Minimal direct communication
- Use Case: Large systems, indirect coordination
Multi-Agent Team Examples
Finance Team
Coordinator Agent
├→ Market Analyst Agent
│ ├ Tools: Market data API, financial news
│ └ Task: Analyze market conditions
├→ Financial Analyst Agent
│ ├ Tools: Financial statements, ratio calculations
│ └ Task: Analyze company financials
├→ Risk Manager Agent
│ ├ Tools: Risk models, scenario analysis
│ └ Task: Assess investment risks
└→ Report Writer Agent
├ Tools: Document generation
└ Task: Synthesize findings into report
Legal Team
Case Manager Agent (Coordinator)
├→ Contract Analyzer Agent
│ └ Task: Review contract terms
├→ Precedent Research Agent
│ └ Task: Find relevant case law
├→ Risk Assessor Agent
│ └ Task: Identify legal risks
└→ Document Drafter Agent
└ Task: Prepare legal documents
Customer Support Team
Support Coordinator
├→ Issue Classifier Agent
│ └ Task: Categorize customer issue
├→ Knowledge Base Agent
│ └ Task: Find relevant documentation
├→ Escalation Agent
│ └ Task: Determine if human escalation needed
└→ Solution Synthesizer Agent
└ Task: Prepare comprehensive response
Implementation Frameworks
1. CrewAI
Best For: Teams with clear roles and hierarchical structure
from crewai import Agent, Task, Crew
# Define agents
analyst = Agent(
role="Financial Analyst",
goal="Analyze financial data and provide insights",
backstory="Expert in financial markets with 10+ years experience"
)
researcher = Agent(
role="Market Researcher",
goal="Research market trends and competition",
backstory="Data-driven researcher specializing in market analysis"
)
# Define tasks
analysis_task = Task(
description="Analyze Q3 financial results for {company}",
agent=analyst,
tools=[financial_tool, data_tool]
)
research_task = Task(
description="Research competitive landscape in {market}",
agent=researcher,
tools=[web_search_tool, industry_data_tool]
)
# Create crew and execute
crew = Crew(
agents=[analyst, researcher],
tasks=[analysis_task, research_task],
process=Process.sequential
)
result = crew.kickoff(inputs={"company": "TechCorp", "market": "AI"})
2. AutoGen (Microsoft)
Best For: Complex multi-turn conversations and negotiations
from autogen import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager
# Define agents
analyst = AssistantAgent(
name="analyst",
system_message="You are a financial analyst..."
)
researcher = AssistantAgent(
name="researcher",
system_message="You are a market researcher..."
)
# Create group chat
groupchat = GroupChat(
agents=[analyst, researcher],
messages=[],
max_round=10,
speaker_selection_method="auto"
)
# Manage group conversation
manager = GroupChatManager(groupchat=groupchat)
# User proxy to initiate conversation
user = UserProxyAgent(name="user")
# Have conversation
user.initiate_chat(
manager,
message="Analyze if Company X should invest in Y market"
)
3. LangGraph
Best For: Complex workflows with state management
from langgraph.graph import Graph, StateGraph
from langgraph.prebuilt import create_agent_executor
# Define state
class AgentState:
research_findings: str
analysis: str
recommendations: str
# Create graph
graph = StateGraph(AgentState)
# Add nodes for each agent
graph.add_node("researcher", research_agent)
graph.add_node("analyst", analyst_agent)
graph.add_node("writer", writer_agent)
# Define edges (workflow)
graph.add_edge("researcher", "analyst")
graph.add_edge("analyst", "writer")
# Set entry/exit points
graph.set_entry_point("researcher")
graph.set_finish_point("writer")
# Compile and run
workflow = graph.compile()
result = workflow.invoke({"topic": "AI trends"})
4. OpenAI Swarm
Best For: Simple agent handoffs and conversational workflows
from swarm import Agent, Swarm
# Define agents
triage_agent = Agent(
name="Triage Agent",
instructions="Determine which specialist to route the customer to"
)
billing_agent = Agent(
name="Billing Specialist",
instructions="Handle billing and payment questions"
)
technical_agent = Agent(
name="Technical Support",
instructions="Handle technical issues"
)
# Define handoff functions
def route_to_billing(reason: str):
return billing_agent
def route_to_technical(reason: str):
return technical_agent
# Add tools to triage agent
triage_agent.functions = [route_to_billing, route_to_technical]
# Execute swarm
client = Swarm()
response = client.run(
agent=triage_agent,
messages=[{"role": "user", "content": "I have a billing question"}]
)
Orchestration Patterns
Pattern 1: Sequential Task Chain
Agents execute tasks in sequence, each building on previous results:
# Task 1: Research
research_output = research_agent.work("Analyze AI market trends")
# Task 2: Analysis (uses research output)
analysis = analyst_agent.work(f"Analyze these findings: {research_output}")
# Task 3: Report (uses analysis)
report = writer_agent.work(f"Write report on: {analysis}")
When to Use: Steps have dependencies, each builds on previous
Pattern 2: Parallel Execution
Multiple agents work simultaneously, results combined:
import asyncio
async def parallel_teams():
# All agents work in parallel
market_task = market_agent.work_async("Analyze market")
technical_task = tech_agent.work_async("Analyze technology")
user_task = user_agent.work_async("Analyze user needs")
# Wait for all to complete
market_results, tech_results, user_results = await asyncio.gather(
market_task, technical_task, user_task
)
# Synthesize results
return synthesize(market_results, tech_results, user_results)
When to Use: Independent analyses, need quick results, want diversity
Pattern 3: Hierarchical Structure
Manager agent coordinates specialists:
manager_agent.orchestrate({
"market_analysis": {
"agents": [competitor_analyst, trend_analyst],
"task": "Comprehensive market analysis"
},
"technical_evaluation": {
"agents": [architecture_agent, security_agent],
"task": "Technical feasibility assessment"
},
"synthesis": {
"agents": [strategy_agent],
"task": "Create strategic recommendations"
}
})
When to Use: Clear hierarchy, different teams, complex coordination
Pattern 4: Debate & Consensus
Multiple agents discuss and reach consensus:
agents = [bull_agent, bear_agent, neutral_agent]
question = "Should we invest in this startup?"
# Debate round 1
arguments = {agent: agent.argue(question) for agent in agents}
# Debate round 2 (respond to others)
counter_arguments = {
agent: agent.respond(arguments) for agent in agents
}
# Reach consensus
consensus = mediator_agent.synthesize_consensus(counter_arguments)
When to Use: Complex decisions, need multiple perspectives, risk assessment
Agent Communication Patterns
1. Direct Communication
Agents pass messages directly to each other:
agent_a.send_message(agent_b, {
"type": "request",
"action": "analyze_document",
"document": doc_content,
"context": {"deadline": "urgent"}
})
2. Tool-Mediated Communication
Agents use shared tools/databases:
# Agent A writes to shared memory
shared_memory.write("findings", {"market_size": "$5B", "growth": "20%"})
# Agent B reads from shared memory
findings = shared_memory.read("findings")
3. Manager-Based Communication
Central coordinator manages agent communication:
manager.broadcast("update_all_agents", {
"new_deadline": "tomorrow",
"priority": "critical"
})
Best Practices
Agent Design
- ✓ Clear, specific role and goal
- ✓ Appropriate tools for the role
- ✓ Relevant background/expertise
- ✓ Distinct from other agents
- ✓ Reasonable scope of work
Workflow Design
- ✓ Clear task dependencies
- ✓ Identified handoff points
- ✓ Error handling between agents
- ✓ Fallback strategies
- ✓ Performance monitoring
Communication
- ✓ Structured message formats
- ✓ Clear context sharing
- ✓ Error propagation strategy
- ✓ Timeout handling
- ✓ Audit logging
Orchestration
- ✓ Define process clearly (sequential, parallel, etc.)
- ✓ Set clear success criteria
- ✓ Monitor agent performance
- ✓ Implement feedback loops
- ✓ Allow human intervention points
Common Challenges & Solutions
Challenge: Agent Conflicts
Solutions:
- Clear role separation
- Explicit decision-making rules
- Consensus mechanisms
- Conflict resolution agent
- Clear authority hierarchy
Challenge: Slow Execution
Solutions:
- Use parallel execution where possible
- Cache results from expensive operations
- Pre-process data
- Optimize agent logic
- Implement timeout handling
Challenge: Poor Quality Results
Solutions:
- Better agent prompts/instructions
- More relevant tools
- Feedback integration
- Quality validation agents
- Result aggregation strategies
Challenge: Complex Workflows
Solutions:
- Break into smaller teams
- Hierarchical structure
- Clear task definitions
- Good state management
- Documentation of workflow
Evaluation Metrics
Team Performance:
- Task completion rate
- Quality of results
- Execution time
- Cost (tokens/API calls)
- Error rate
Agent Effectiveness:
- Task success rate
- Response quality
- Tool usage efficiency
- Communication clarity
- Collaboration score
Advanced Techniques
1. Self-Organizing Teams
Agents autonomously decide roles and workflow:
# Agents negotiate roles based on task
agents = [agent1, agent2, agent3]
task = "complex financial analysis"
# Agents determine best structure
negotiated_structure = self_organize(agents, task)
# Returns optimal workflow for this task
2. Adaptive Workflows
Workflow changes based on progress:
# Monitor progress
if progress < expected_rate:
# Increase resources
workflow.add_agent(specialist_agent)
elif quality < threshold:
# Increase validation
workflow.insert_review_step()
3. Cross-Agent Learning
Agents learn from each other's work:
# After team execution
execution_trace = crew.get_execution_trace()
# Extract learnings
learnings = extract_patterns(execution_trace)
# Update agent knowledge
for agent, learning in learnings.items():
agent.update_knowledge(learning)
Resources
Frameworks
- CrewAI: https://crewai.com/
- AutoGen: https://microsoft.github.io/autogen/
- LangGraph: https://langchain-ai.github.io/langgraph/
- Swarm: https://github.com/openai/swarm
Papers
- "Generative Agents" (Park et al.)
- "Self-Organizing Multi-Agent Systems" (research papers)
Implementation Checklist
- Define each agent's role, goal, and expertise
- Identify available tools/capabilities for each agent
- Plan workflow (sequential, parallel, hierarchical)
- Define communication patterns
- Implement task definitions
- Set success criteria for each task
- Add error handling and fallbacks
- Implement monitoring/logging
- Test team collaboration
- Evaluate quality and performance
- Optimize based on results
- Document workflow and decisions
Getting Started
- Start Small: Begin with 2-3 agents
- Clear Workflow: Document how agents interact
- Test Thoroughly: Validate agent behavior individually and together
- Monitor Closely: Track performance and results
- Iterate: Refine based on results
- Scale: Add agents and complexity as needed
Related skills
More from qodex-ai/ai-agent-skills and the wider catalog.

word-document-processor
Create, edit, and analyze Word documents with full format support and tracked changes.

ecommerce-platform-specialist
Provide expert guidance on Shopify e-commerce platform. Advises on store setup, products, customization, and optimization.

financial-analysis-agent
Create agents for financial analysis, investment research, and portfolio management. Covers financial data processing, risk analysis, and recommendation generation. Use when building investment analysis tools, robo-advisors, portfolio trackers, or financial intelligence systems.

legal-document-analyzer
Build agents for legal document analysis, contract review, and compliance checking. Handles document parsing, risk identification, and legal research. Use when creating contract analysis tools, legal research assistants, compliance checkers, or document review systems.

qodo-get-rules
Load relevant Qodo coding rules for your current task via semantic search.

qodo-pr-resolver
Review and fix Qodo AI code review feedback across GitHub, GitLab, Bitbucket, Azure DevOps, and Gerrit.