Agent Coordinator Swarm Init
ruvnet/ruflo
Agent skill for coordinator-swarm-init - invoke with $agent-coordinator-swarm-init
A skill your agent uses when coordinating multiple AI agents with Agent Relay's workflow engine and need to pick the right orchestration pattern - covers the 10 core patterns (fan-out, pipeline…
$ npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgentWorkforce/relay choosing-swarm-patterns --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AgentWorkforce/relay.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/choosing-swarm-patterns .claude/skills/choosing-swarm-patterns && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "choosing-swarm-patterns" agent skill from https://github.com/AgentWorkforce/relay/tree/main/.agents/skills/choosing-swarm-patterns into .claude/skills/choosing-swarm-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "choosing-swarm-patterns", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AgentWorkforce/relay/tree/main/.agents/skills/choosing-swarm-patternsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgentWorkforce/relay choosing-swarm-patterns --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentWorkforce/relay.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/choosing-swarm-patterns .agents/skills/choosing-swarm-patterns && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "choosing-swarm-patterns" agent skill from https://github.com/AgentWorkforce/relay/tree/main/.agents/skills/choosing-swarm-patterns into .agents/skills/choosing-swarm-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "choosing-swarm-patterns", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgentWorkforce/relay choosing-swarm-patterns --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentWorkforce/relay.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/choosing-swarm-patterns .cursor/skills/choosing-swarm-patterns && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "choosing-swarm-patterns" agent skill from https://github.com/AgentWorkforce/relay/tree/main/.agents/skills/choosing-swarm-patterns into .cursor/skills/choosing-swarm-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "choosing-swarm-patterns", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AgentWorkforce/relay.git --path .agents/skills/choosing-swarm-patterns--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgentWorkforce/relay choosing-swarm-patterns --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentWorkforce/relay.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/choosing-swarm-patterns .gemini/skills/choosing-swarm-patterns && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "choosing-swarm-patterns" agent skill from https://github.com/AgentWorkforce/relay/tree/main/.agents/skills/choosing-swarm-patterns into .gemini/skills/choosing-swarm-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "choosing-swarm-patterns", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AgentWorkforce/relay choosing-swarm-patternsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgentWorkforce/relay.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/choosing-swarm-patterns .github/skills/choosing-swarm-patterns && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "choosing-swarm-patterns" agent skill from https://github.com/AgentWorkforce/relay/tree/main/.agents/skills/choosing-swarm-patterns into .github/skills/choosing-swarm-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "choosing-swarm-patterns", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgentWorkforce/relay choosing-swarm-patterns --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentWorkforce/relay.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/choosing-swarm-patterns .opencode/skills/choosing-swarm-patterns && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "choosing-swarm-patterns" agent skill from https://github.com/AgentWorkforce/relay/tree/main/.agents/skills/choosing-swarm-patterns into .opencode/skills/choosing-swarm-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "choosing-swarm-patterns", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
choosing-swarm-patternsA skill your agent uses when coordinating multiple AI agents with Agent Relay's workflow engine and need to pick the right orchestration pattern - covers the 10 core patterns (fan-out, pipeline…
Choosing Swarm Patterns is an agent skill from AgentWorkforce/relay. Use when coordinating multiple AI agents with Agent Relay's workflow engine and need to pick the right orchestration pattern - covers the 10 core patterns (fan-out, pipeline, hub-spoke, consensus, mesh, handoff, cascade, dag, debate, hierarchical) plus 14 specialized ones, with decision framework and accurate SDK/YAML examples.
Its SKILL.md is about 5.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Infrastructure for coding agents. The licence is Apache-2.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 734600d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml and typescript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Choosing Swarm Patterns loads about 5.8k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 1,112 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AgentWorkforce/relay at commit 734600d, republished under its Apache-2.0 licence (© AgentWorkforce). 1,112 words, ~5,758 tokens.
.claude/skills/choosing-swarm-patterns/SKILL.md (or your agent's skills folder).The Agent Relay SDK (@agent-relay/sdk) supports 24 swarm patterns via a single swarm.pattern field. Patterns are configured declaratively in YAML — there are no standalone fanOut(...) / hubAndSpoke(...) helpers. Pick the simplest pattern that solves the problem; add complexity only when the system proves it's insufficient.
import { runWorkflow } from '@agent-relay/sdk/workflows';
const run = await runWorkflow('workflows/feature-dev.yaml', {
vars: { task: 'Add OAuth login' },
});Is the task independent per agent?
YES → fan-out (parallel workers, hub collects)
Does each step need the previous step's output?
YES → Is it strictly linear?
YES → pipeline
NO → dag (parallel where possible, `dependsOn` edges)
Does a coordinator need to stay alive and adapt?
YES → hub-spoke (single-level hub + workers)
hierarchical (structurally identical in current impl; use for naming/intent)
Is the task about making a decision?
YES → Do agents need to argue opposing sides?
YES → debate (adversarial, full mesh)
NO → consensus (cooperative, full mesh + coordination.consensusStrategy)
Does the right specialist emerge during processing?
YES → handoff (sequential chain, one active at a time)
Do all agents need to freely collaborate?
YES → mesh (full peer-to-peer edges)
Is cost the primary concern?
YES → cascade (chain of increasingly capable agents; each step's prompt
decides whether to pass through or redo the prior output)| # | Pattern | Topology (actual edges) | Best For |
|---|---|---|---|
| 1 | fan-out | Hub broadcasts to N workers; workers reply to hub only | Independent subtasks (reviews, research, tests) |
| 2 | pipeline | Linear chain (agent_i → agent_{i+1}) | Ordered stages (design → implement → test) |
| 3 | hub-spoke | Hub ↔ spokes (bidirectional); no spoke-to-spoke | Dynamic coordination, lead reviews/adjusts |
| 4 | consensus | Full mesh; decision via coordination.consensusStrategy | Architecture decisions, approval gates |
| 5 | mesh | Full mesh (every agent ↔ every other) | Brainstorming, collaborative debugging |
| 6 | handoff | Chain; passes control forward | Triage, specialist routing |
| 7 | cascade | Chain of dependsOn steps; all run on success, downstream skipped on upstream failure (no built-in "fall through") | Cost optimization: cheap first, each step's prompt passes through or redoes |
| 8 | dag | Edges from step dependsOn | Mixed dependencies, parallel where possible |
| 9 | debate | Full mesh (same topology as mesh; roles drive behavior) | Rigorous adversarial examination |
| 10 | hierarchical | Hub + subordinates (single-level in current impl) | Large teams; semantic distinction from hub-spoke |
Heads up:
hierarchicalresolves to the same edge structure ashub-spokeincoordinator.ts:313-319. Multi-level tree topology is not currently implemented — use pattern name for intent, but expect the same runtime graph.
These 14 additional patterns exist in SwarmPattern (types.ts:114-139). The coordinator has role-based auto-selection heuristics (coordinator.ts:51-165), but they only fire when swarm.pattern is omitted — YAML validation requires it (runner.ts:2105-2117), so auto-selection is effectively a programmatic-API feature. In YAML, set swarm.pattern explicitly.
Topology is still resolved per-pattern once selected; the "Triggering roles" column reflects what the coordinator looks for to shape edges (per coordinator.ts:250-450):
| Pattern | Roles the topology keys off | Topology |
|---|---|---|
map-reduce | mapper + reducer | coordinator → mappers → reducers → coordinator |
scatter-gather | — | hub → workers → hub |
supervisor | supervisor | supervisor ↔ workers |
reflection | critic or reviewer (auto-select uses critic only) | producers → critic → producers (loop) |
red-team | attacker/red-team + defender/blue-team | adversarial mesh with optional judges |
verifier | verifier | producers → verifiers → back to producers |
auction | auctioneer | auctioneer → bidders → auctioneer |
escalation | tier-* | tiered chain, escalate up / report down |
saga | saga-orchestrator, compensate-handler | orchestrator ↔ participants |
circuit-breaker | primary + fallback/backup | try primary, fallback on failure |
blackboard | blackboard / shared-workspace | shared state hub |
swarm | hive-mind / swarm-agent | stigmergy-style |
competitive | — (declared explicitly) | independent parallel implementations + judge |
review-loop | implement* + 2+ reviewer* | implementer ↔ reviewers |
supervisor or hub-spoke when a lead needs to coordinate live squads.review-loop when the main risk is code quality and feedback iteration.reflection when critic feedback should loop directly back to producers.verifier when completion evidence matters more than design debate.competitive only when independent alternative implementations are useful; otherwise split by ownership scope.The per-pattern YAML snippets below show only the pattern-relevant fields. A runnable YAML file also needs the required top-level version and name; see the Complete YAML Example.
swarm: { pattern: fan-out }
agents:
- { name: lead, cli: claude, role: lead }
- { name: auth-rev, cli: claude, role: worker, interactive: false }
- { name: db-rev, cli: claude, role: worker, interactive: false }
workflows:
- name: review
steps:
- { name: review-auth, agent: auth-rev, task: 'Review auth.ts' }
- { name: review-db, agent: db-rev, task: 'Review db.ts' }swarm: { pattern: pipeline }
agents:
- { name: designer, cli: claude }
- { name: implementer, cli: codex, interactive: false }
- { name: tester, cli: codex, interactive: false }
workflows:
- name: build
steps:
- {
name: design,
agent: designer,
task: 'Design the API schema',
verification: { type: output_contains, value: DONE },
}
- {
name: implement,
agent: implementer,
dependsOn: [design],
task: 'Implement: {{steps.design.output}}',
}
- { name: test, agent: tester, dependsOn: [implement], task: 'Write integration tests' }swarm:
pattern: hub-spoke
channel: swarm-api
agents:
- { name: lead, cli: claude, role: lead }
- { name: db-worker, cli: claude, role: worker }
- { name: api-worker, cli: claude, role: worker }
workflows:
- name: api-build
steps:
- { name: models, agent: db-worker, task: 'Build database models' }
- { name: routes, agent: api-worker, task: 'Build route handlers', dependsOn: [models] }
- { name: review, agent: lead, task: 'Review everything', dependsOn: [routes] }swarm: { pattern: consensus }
agents:
- { name: perf, cli: claude, role: reviewer }
- { name: dx, cli: claude, role: reviewer }
- { name: sec, cli: claude, role: reviewer }
coordination:
consensusStrategy: majority # declarative marker: majority | unanimous | quorum
votingThreshold: 0.66
workflows:
- name: decide
steps:
- { name: evaluate-perf, agent: perf, task: 'Evaluate perf of Fastify migration' }
- { name: evaluate-dx, agent: dx, task: 'Evaluate DX of Fastify migration' }
- { name: evaluate-sec, agent: sec, task: 'Evaluate security of Fastify migration' }swarm:
pattern: mesh
channel: swarm-debug
agents:
- { name: logs, cli: claude }
- { name: code, cli: claude }
- { name: repro, cli: claude }
workflows:
- name: debug-auth
steps:
- { name: logs, agent: logs, task: 'Check server logs' }
- { name: code, agent: code, task: 'Review auth code' }
- { name: repro, agent: repro, task: 'Write repro test' }swarm: { pattern: handoff }
agents:
- { name: triage, cli: claude }
- { name: billing, cli: claude }
- { name: tech, cli: claude }
workflows:
- name: support
steps:
- { name: triage, agent: triage, task: 'Triage: {{request}}' }
- { name: billing, agent: billing, dependsOn: [triage], task: 'Handle billing' }
- { name: tech, agent: tech, dependsOn: [triage], task: 'Handle tech issues' }swarm: { pattern: cascade }
agents:
- { name: haiku, cli: claude, model: claude-haiku-4-5-20251001 }
- { name: sonnet, cli: claude, model: claude-sonnet-4-6 }
- { name: opus, cli: claude, model: claude-opus-4-7 }
workflows:
- name: answer
steps:
- { name: try-haiku, agent: haiku, task: '{{question}}' }
- name: try-sonnet
agent: sonnet
dependsOn: [try-haiku]
task: "If this is a complete answer, echo it verbatim. Otherwise answer anew:\n{{steps.try-haiku.output}}"
- name: try-opus
agent: opus
dependsOn: [try-sonnet]
task: "Final-tier answer, using prior attempts for context:\n{{steps.try-sonnet.output}}"swarm:
pattern: dag
maxConcurrency: 3
agents:
- { name: dev, cli: codex, role: worker }
workflows:
- name: fullstack
steps:
- { name: scaffold, agent: dev, task: 'Create project scaffold' }
- { name: frontend, agent: dev, task: 'Build React UI', dependsOn: [scaffold] }
- { name: backend, agent: dev, task: 'Build API', dependsOn: [scaffold] }
- { name: integrate, agent: dev, task: 'Wire together', dependsOn: [frontend, backend] }swarm: { pattern: debate }
agents:
- { name: pro, cli: claude, role: debater, task: 'Argue FOR monorepo' }
- { name: con, cli: claude, role: debater, task: 'Argue FOR polyrepo' }
- { name: judge, cli: claude, role: judge, task: 'Decide after 3 rounds' }
coordination:
barriers:
- { name: debate-done, waitFor: [pro-round-3, con-round-3] }swarm: { pattern: hierarchical }
agents:
- { name: lead, cli: claude, role: lead }
- { name: fe-coord, cli: claude, role: coordinator }
- { name: be-coord, cli: claude, role: coordinator }
- { name: fe-dev, cli: codex, role: worker, interactive: false }
- { name: be-dev, cli: codex, role: worker, interactive: false }
workflows:
- name: large-team
steps:
- { name: plan, agent: lead, task: 'Coordinate full-stack app' }
- { name: fe-plan, agent: fe-coord, task: 'Manage frontend', dependsOn: [plan] }
- { name: be-plan, agent: be-coord, task: 'Manage backend', dependsOn: [plan] }
- { name: fe-impl, agent: fe-dev, task: 'Build components', dependsOn: [fe-plan] }
- { name: be-impl, agent: be-dev, task: 'Build API', dependsOn: [be-plan] }runner.ts:5353-5395, runner.ts:4527-4538):verification:
type: output_contains # or: exit_code | file_exists | custom
value: DONE # or: PLAN_COMPLETE, IMPLEMENTATION_COMPLETE, REVIEW_COMPLETEThe old category-expanded names are wrong. Current Agent Relay MCP tools are
flat names. In a client that decorates MCP tools, the prefix comes from the
configured server key. With the relay broker's agent-relay server key, Claude
Code users commonly see mcp__agent-relay__send_dm; Codex and opencode users
see the bare canonical name send_dm.
| Purpose | Canonical tool | Claude Code form with agent-relay key |
|---|---|---|
| Send DM to another agent | send_dm | mcp__agent-relay__send_dm |
| Check inbox | check_inbox | mcp__agent-relay__check_inbox |
| List agents | list_agents | mcp__agent-relay__list_agents |
| Post to a channel | post_message | mcp__agent-relay__post_message |
| Reply in a thread | reply_to_thread | mcp__agent-relay__reply_to_thread |
| Spawn sub-agent | add_agent | mcp__agent-relay__add_agent |
| Remove sub-agent | remove_agent | mcp__agent-relay__remove_agent |
interactive: falseagents run as non-interactive subprocesses with no relay connection. They must not call Relay MCP tools.
reflectionThreshold callback. It's configured via the trajectories: block:trajectories:
enabled: true
reflectOnBarriers: true # config flag exists but runner does NOT currently invoke this path
reflectOnConverge: true # fires at parallel convergence points (runner.ts:2762-2779)
autoDecisions: true # record retry/skip/fail decisions| Mistake | Why It Fails | Fix |
|---|---|---|
| Using mesh/debate for everything | Full-mesh blows up message volume past ~5 agents | Use hub-spoke or dag for most tasks |
| Pipeline for independent work | Sequential bottleneck | Use fan-out or dag |
| Hub-spoke for 2 agents | Hub is unnecessary overhead | Use pipeline or fan-out |
Expecting consensusStrategy to tally votes | Runner has no vote-tally logic; field only affects coordinator auto-selection | Aggregate votes in a judge/lead step that reads {{steps.*.output}} |
| Handoff with "routing = skip other branches" | Skipping only fires on upstream failure, not routing decisions | Emit a routing token in triage output; downstream prompts self-no-op if token doesn't match |
| Cascade expecting skip-on-success | Runner has no cascade skip logic; failed upstream skips downstream | Chain downstream prompts to pass-through or redo based on {{steps.previous.output}} |
Relying on reflectOnBarriers | Config flag exists but runner never calls it | Use reflectOnConverge for convergence reflection; use reflection pattern for critic loops |
interactive: false agent calling MCP | Non-interactive subprocess has no relay | Use interactive: true (default) or emit output on stdout |
Relying on multi-level hierarchical | Topology is single-level hub in current impl | Use pattern for naming; model levels via dependsOn graph |
Writing mcp__relaycast__send(...) | Wrong tool name | Use post_message / mcp__agent-relay__post_message or send_dm / mcp__agent-relay__send_dm |
// Resume a failed run:
await runWorkflow('feature-dev.yaml', { resume: '<runId>' });
// Skip ahead, re-using cached outputs from an earlier run:
await runWorkflow('feature-dev.yaml', {
startFrom: 'review',
previousRunId: '<runId>',
});version: '1.0'
name: feature-dev
description: 'Blueprint-style feature development with quality gates.'
swarm:
pattern: hub-spoke
maxConcurrency: 2
timeoutMs: 3600000
channel: swarm-feature-dev
idleNudge: { nudgeAfterMs: 120000, escalateAfterMs: 120000, maxNudges: 1 }
agents:
- { name: lead, cli: claude, role: lead, permissions: { access: full } }
- { name: planner, cli: codex, role: planner, interactive: false, permissions: { access: readonly } }
- { name: developer, cli: codex, role: worker, interactive: false, permissions: { access: readwrite } }
- { name: reviewer, cli: claude, role: reviewer, permissions: { access: readonly } }
workflows:
- name: feature-delivery
onError: retry
preflight:
- { command: 'git status --porcelain', failIf: non-empty, description: 'Clean worktree' }
steps:
- name: plan
agent: planner
task: 'Plan: {{task}}'
verification: { type: output_contains, value: PLAN_COMPLETE }
- name: implement
agent: developer
dependsOn: [plan]
task: 'Implement: {{steps.plan.output}}'
verification: { type: output_contains, value: IMPLEMENTATION_COMPLETE }
- name: test
type: deterministic
dependsOn: [implement]
command: npm test
- name: review
agent: reviewer
dependsOn: [test]
task: 'Review implementation'
verification: { type: output_contains, value: REVIEW_COMPLETE }
coordination:
barriers:
- { name: delivery-ready, waitFor: [plan, implement, review], timeoutMs: 900000 }
trajectories:
enabled: true
reflectOnBarriers: true
reflectOnConverge: true
errorHandling:
strategy: retry
maxRetries: 2
retryDelayMs: 5000| Claim | File |
|---|---|
| Pattern enum (24 patterns) | packages/sdk/src/workflows/types.ts:114-139 |
| Topology resolution per pattern | packages/sdk/src/workflows/coordinator.ts:240-450 |
| Interactive-only topology edges | packages/sdk/src/workflows/coordinator.ts:218-237 |
| Pattern auto-selection heuristics (programmatic API only) | packages/sdk/src/workflows/coordinator.ts:51-165 |
runWorkflow(yamlPath, options) | packages/sdk/src/workflows/run.ts |
YAML validation requires version + name + swarm.pattern | packages/sdk/src/workflows/runner.ts:2105-2117 |
| MCP tool names cited in convention-injection | packages/sdk/src/relay-adapter.ts:29-36 |
| Completion modes (verification / evidence / owner / process-exit) | packages/sdk/src/workflows/runner.ts:5353-5395, 4527-4538 |
| Completion via PTY + summary fallback | packages/sdk/src/workflows/runner.ts:6600-6615 |
| Downstream skip on upstream failure (not success) | packages/sdk/src/workflows/runner.ts:7057-7088, step-executor.ts:329-334 |
Trajectory reflection (only reflectOnConverge wired) | packages/sdk/src/workflows/runner.ts:2762-2779, trajectory.ts:173-190 |
© AgentWorkforce, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/choosing-swarm-patterns of AgentWorkforce/relay.
Open the folder on GitHubat commit 734600d
Choosing Swarm Patterns next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Choosing Swarm Patterns this skillAgentWorkforce/relay | 865 | — | ~5.8k | Automated safety check: Pass | Apache-2.0 | |
| Agent Coordinator Swarm Initruvnet/ruflo | 74k | 2 repos | ~997 | Automated safety check: Pass | MIT | |
| Swarm Orchestrationruvnet/ruflo | 74k | — | ~261 | Automated safety check: Pass | MIT | |
| Swarm Orchestrationruvnet/ruflo | 74k | 2 repos | ~779 | Automated safety check: Pass | MIT | |
| Swarm Coordinationruvnet/agentic-flow | 816 | — | ~579 | Automated safety check: Pass | None | |
| Agent Swarmruvnet/ruflo | 74k | 3 repos | ~891 | Automated safety check: Pass | MIT |
ruvnet/ruflo
Agent skill for coordinator-swarm-init - invoke with $agent-coordinator-swarm-init
ruvnet/ruflo
Multi-agent swarm coordination for complex tasks. An agent skill from ruvnet/ruflo.
ruvnet/ruflo
Coordinates a hierarchical swarm of specialized agents through the claude-flow CLI for work that spans several files or modules at once.
ruvnet/agentic-flow
Orchestrate multi-agent swarms for complex parallel task execution
ruvnet/ruflo
Agent skill for swarm - invoke with $agent-swarm. An agent skill from ruvnet/ruflo.
LearnPrompt/cc-harness-skills
Coordinate multiple agents by splitting work into research, synthesis, implementation, and verification, assigning ownership, and keeping the coordinator focused on integration rather than raw…
AgentWorkforce/relay
A skill your agent uses when testing web applications with visual verification - automates Chrome browser interactions, element selection, and screenshot capture for confirming UI functionality
AgentWorkforce/relay
A skill your agent uses when you need Codex to coordinate multiple agents through Agent Relay for peer-to-peer messaging, lead/worker handoffs, or shared status tracking across sub-agents and…
AgentWorkforce/relay
A skill your agent uses when seeing WebSocket errors like "Invalid frame header", "RSV1 must be clear", or "WSERRUNEXPECTEDRSV1" - covers multiple WebSocketServer conflicts, compression issues, and…
AgentWorkforce/relay
A skill your agent uses when implementing GitHub OAuth + GitHub App authentication with Nango - provides two-connection pattern for user login and repo access with webhook handling
AgentWorkforce/relay
A skill your agent uses when building Cmd+K command palettes in React - covers keyboard navigation with arrow keys, keeping selected items in view with scrollIntoView, filtering with shortcut…
AgentWorkforce/relay
A skill your agent uses when you are a registered relay agent (a spawned worker, or a lead that called registeragent) coordinating with peers in real time over current Agent Relay MCP tools -…
A skill your agent uses when coordinating multiple AI agents with Agent Relay's workflow engine and need to pick the right orchestration pattern - covers the 10 core patterns (fan-out, pipeline…. Choosing Swarm Patterns is an agent skill from AgentWorkforce/relay. Use when coordinating multiple AI agents with Agent Relay's workflow engine and need to pick the right orchestration pattern - covers the 10 core patterns (fan-out, pipeline, hub-spoke, consensus, mesh, handoff, cascade, dag, debate, hierarchical) plus 14 specialized ones, with decision framework and accurate SDK/YAML examples.
Choosing Swarm Patterns fits situations like: hierarchical) plus 14 specialized ones; with decision framework and accurate SDK/YAML examples.
Run `npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a claude-code`. Or copy the skill folder (.agents/skills/choosing-swarm-patterns in AgentWorkforce/relay) into .claude/skills/choosing-swarm-patterns in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a codex`. Or copy the skill folder (.agents/skills/choosing-swarm-patterns in AgentWorkforce/relay) into .agents/skills/choosing-swarm-patterns in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgentWorkforce/relay --skill choosing-swarm-patterns -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/choosing-swarm-patterns, .gemini/skills/choosing-swarm-patterns, .github/skills/choosing-swarm-patterns and .opencode/skills/choosing-swarm-patterns in your project.
SKILL.md names no scripts, command-line tools or credentials: Choosing Swarm Patterns is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Choosing Swarm Patterns is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.8k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Choosing Swarm Patterns: Agent Coordinator Swarm Init (ruvnet/ruflo, 74k stars), Swarm Orchestration (ruvnet/ruflo, 74k stars), Swarm Orchestration (ruvnet/ruflo, 74k stars) and Swarm Coordination (ruvnet/agentic-flow, 816 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgentWorkforce (a GitHub organization) maintains it in AgentWorkforce/relay, which has 865 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: AgentWorkforce/relay on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.