Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
agentworkforce avatar

Choosing Swarm Patterns

  • 1 installs
  • Updated August 4, 2026
  • agentworkforce/workflows

choosing-swarm-patterns is a Claude Code skill that provides a decision framework for selecting among Agent Relay's 24 multi-agent orchestration patterns.

About

This skill helps pick the right orchestration pattern when coordinating multiple AI agents with the Agent Relay SDK. It documents 24 swarm patterns configured through a single swarm.pattern field, with a decision framework and YAML plus fluent-builder examples. A developer uses it before writing a multi-agent workflow to choose the topology that fits the coordination problem.

  • Decision framework for picking one of 24 Agent Relay swarm patterns
  • Covers the core 10: fan-out, pipeline, hub-spoke, consensus, mesh, handoff, cascade, dag, debate, hierarchical
  • Shows both YAML and fluent-builder configuration

Choosing Swarm Patterns by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #14,102 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

choosing-swarm-patterns capabilities & compatibility

Capabilities
agent orchestration · pattern selection · workflow design
Use cases
orchestration
npx skills add https://github.com/agentworkforce/workflows --skill choosing-swarm-patterns

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
Last updatedAugust 4, 2026
Repositoryagentworkforce/workflows

What it does

Choose the correct Agent Relay swarm pattern (fan-out, pipeline, hub-spoke, etc.) for a multi-agent coordination problem.

Who is it for?

Developers deciding which Agent Relay swarm topology fits a multi-agent task.

Skip if: Implementing single-agent logic or non-Agent-Relay stacks.

When should I use this skill?

You are coordinating multiple AI agents and must pick an orchestration pattern.

What you get

A justified swarm-pattern choice matched to the coordination shape of the task.

  • Selected swarm pattern
  • YAML or fluent-builder workflow configuration

By the numbers

  • 24 swarm patterns supported
  • 10 core patterns documented with topology table

Files

SKILL.mdMarkdownGitHub ↗

Overview

10 orchestration patterns for multi-agent workflows. Pick the simplest pattern that solves the problem — add complexity only when the system proves it's insufficient.

Quick Decision Framework

```
Is the task independent per agent?
  YES → fan-out (parallel workers)

Does each step need the previous step's output?
  YES → Is it strictly linear?
    YES → pipeline
    NO  → dag (parallel where possible)

Does a coordinator need to stay alive and adapt?
  YES → Is there one level of management?
    YES → hub-spoke
    NO  → hierarchical (multi-level)

Is the task about making a decision?
  YES → Do agents need to argue opposing sides?
    YES → debate (adversarial)
    NO  → consensus (cooperative voting)

Does the right specialist emerge during processing?
  YES → handoff (dynamic routing)

Do all agents need to freely collaborate?
  YES → mesh (peer-to-peer)

Is cost the primary concern?
  YES → cascade (cheap model first, escalate if needed)

Pattern Reference

#PatternTopologyAgentsBest For
1fan-outStar (SDK center)N parallelIndependent subtasks (reviews, research, tests)
2pipelineLinear chainSequentialOrdered stages (design → implement → test)
3hub-spokeStar (live hub)1 lead + N workersDynamic coordination, lead reviews/adjusts
4consensusBroadcast + voteN votersArchitecture decisions, approval gates
5meshFully connectedN peersBrainstorming, collaborative debugging
6handoffRouting chain1 active at a timeTriage, specialist routing, support flows
7cascadeTiered escalationCheapest → most capableCost optimization, production workloads
8dagDependency graphParallel + joinsComplex projects with mixed dependencies
9debateAdversarial rounds2+ debaters + judgeRigorous evaluation, architecture trade-offs
10hierarchicalTree (multi-level)Lead → coordinators → workersLarge teams, domain separation

Pattern Details

1. fan-out — Parallel Workers
fanOut([
  { task: "Review auth.ts", name: "AuthReviewer" },
  { task: "Review db.ts", name: "DbReviewer" },
], { cli: "claude" });
2. pipeline — Sequential Stages
pipeline([
  { task: "Design the API schema", name: "Designer" },
  { task: "Implement the endpoints", name: "Implementer" },
  { task: "Write integration tests", name: "Tester" },
]);
3. hub-spoke — Persistent Coordinator
hubAndSpoke({
  hub: { task: "Coordinate building a REST API", name: "Lead" },
  workers: [
    { task: "Build database models", name: "DbWorker" },
    { task: "Build route handlers", name: "ApiWorker" },
  ],
});
4. consensus — Cooperative Voting
consensus({
  proposal: "Should we migrate to Fastify?",
  voters: [
    { task: "Evaluate performance", name: "PerfExpert" },
    { task: "Evaluate DX", name: "DxExpert" },
  ],
  consensusType: "majority",
});
5. mesh — Peer Collaboration
mesh({
  goal: "Debug the auth flow returning 500",
  agents: [
    { task: "Check server logs", name: "LogAnalyst" },
    { task: "Review auth code", name: "CodeReviewer" },
    { task: "Write repro test", name: "Tester" },
  ],
});
6. handoff — Dynamic Routing
handoff({
  entryPoint: { task: "Triage the request", name: "Triage" },
  routes: [
    { agent: { task: "Handle billing", name: "Billing" }, condition: "billing, payment" },
    { agent: { task: "Handle tech issues", name: "TechSupport" }, condition: "error, bug" },
  ],
  maxHandoffs: 3,
});
7. cascade — Cost-Aware Escalation
cascade({
  tiers: [
    { agent: { task: "Answer this", cli: "claude" }, confidenceThreshold: 0.7, costWeight: 1 },
    { agent: { task: "Answer this", cli: "claude" }, confidenceThreshold: 0.85, costWeight: 5 },
    { agent: { task: "Answer this", cli: "claude" }, costWeight: 20 },
  ],
});
8. dag — Directed Acyclic Graph
dag({
  nodes: [
    { id: "scaffold", task: "Create project scaffold" },
    { id: "frontend", task: "Build React UI", dependsOn: ["scaffold"] },
    { id: "backend", task: "Build API", dependsOn: ["scaffold"] },
    { id: "integrate", task: "Wire together", dependsOn: ["frontend", "backend"] },
  ],
  maxConcurrency: 3,
});
9. debate — Adversarial Refinement
debate({
  topic: "Monorepo vs polyrepo for the new platform?",
  debaters: [
    { task: "Argue for monorepo", position: "monorepo" },
    { task: "Argue for polyrepo", position: "polyrepo" },
  ],
  judge: { task: "Judge and decide", name: "ArchJudge" },
  maxRounds: 3,
});
10. hierarchical — Multi-Level Delegation
hierarchical({
  agents: [
    { id: "lead", task: "Coordinate full-stack app", role: "lead" },
    { id: "fe-coord", task: "Manage frontend", role: "coordinator", reportsTo: "lead" },
    { id: "be-coord", task: "Manage backend", role: "coordinator", reportsTo: "lead" },
    { id: "fe-dev", task: "Build components", role: "worker", reportsTo: "fe-coord" },
    { id: "be-dev", task: "Build API", role: "worker", reportsTo: "be-coord" },
  ],
});

Reflection Protocol

All patterns support reflection — periodic synthesis that enables course correction. Enabled via reflectionThreshold on WorkflowOptions.
{
  reflectionThreshold: 10, // trigger after 10 agent messages
  onReflect: async (ctx) => {
    // Examine ctx.recentMessages, ctx.agentStatuses
    // Return adjustments or null
  },
}

Common Mistakes

MistakeWhy It FailsFix
Using mesh for everythingO(n^2) communication, debugging nightmareUse hub-spoke for most tasks
Pipeline for independent workSequential bottleneckUse fan-out or dag
Hub-spoke for simple parallel tasksHub is unnecessary overheadUse fan-out
Consensus for non-decisionsVoting on implementation tasks wastes timeUse hub-spoke, let lead decide
No circuit breaker on handoffInfinite routing loopsAlways set maxHandoffs
Cascade without confidence parsingAgents don't report confidenceConvention injection handles this
Hierarchical for 3 agentsManagement overhead exceeds benefitUse hub-spoke for small teams

DAG Executor — Proven Pattern

Agent Completion: Detect → Release → Collect
Agent writes summary file → Orchestrator polls (5s) → Detects new mtime →
  Reads summary → Calls client.release(agent) → agent_exited fires → Node marked complete
State & Resume
saveState(completed, depsOutput, results, startTime);
// Restart with --resume to skip completed nodes

YAML Workflow Definition

Any pattern can be defined in YAML for portability:
version: "1.0"
name: feature-dev
pattern: hub-spoke
agents:
  - id: lead
    role: lead
    cli: claude
  - id: developer
    role: worker
    cli: codex
    reportsTo: lead
steps:
  - id: plan
    agent: lead
    prompt: "Create a development plan for: {{task}}"
    expects: "PLAN_COMPLETE"
  - id: implement
    agent: developer
    dependsOn: [plan]
    prompt: "Implement: {{steps.plan.output}}"
    expects: "DONE"
reflection:
  enabled: true
  threshold: 10
trajectory:
  enabled: true

Related skills

FAQ

How many swarm patterns does it cover?

The Agent Relay SDK supports 24 swarm patterns via a single swarm.pattern field, with 10 core patterns detailed.

How are patterns configured?

Declaratively in YAML or programmatically via the workflow() fluent builder, both hitting the same WorkflowRunner.

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.