crewai - 💡(How to fix) Fix [Docs] Visualize CrewAI's multi-agent swarm pattern with FlowZap — workflow + sequence + architecture in one file [3 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
crewAIInc/crewAI#5033Fetched 2026-04-08 01:25:48
View on GitHub
Comments
3
Participants
2
Timeline
4
Reactions
0
Author
Participants
Timeline (top)
commented ×2mentioned ×1subscribed ×1

Fix Action

Fix / Workaround

CrewAI's parallel agent execution model (dispatcher → parallel specialist agents → aggregator) maps directly to FlowZap's Agentic Swarm template:

dispatcher_agent {# Dispatcher Agent
n1: rectangle label="Split Goals & Dispatch"
n1.handle(bottom) -> research_agent_a.n2.handle(top) [label="Explore Angle 1"]
n1.handle(bottom) -> research_agent_b.n3.handle(top) [label="Explore Angle 2"]
n1.handle(bottom) -> research_agent_c.n4.handle(top) [label="Explore Angle 3"]
}
research_agent_a {# Research Agent A
n2: rectangle label="Parallel Search A"
n2.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings A"]
}
research_agent_b {# Research Agent B
n3: rectangle label="Parallel Search B"
n3.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings B"]
}
research_agent_c {# Research Agent C
n4: rectangle label="Parallel Search C"
n4.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings C"]
}
aggregator_agent {# Aggregator Agent
n5: rectangle label="Merge & Deduplicate"
}

Code Example

dispatcher_agent {# Dispatcher Agent
n1: rectangle label="Split Goals & Dispatch"
n1.handle(bottom) -> research_agent_a.n2.handle(top) [label="Explore Angle 1"]
n1.handle(bottom) -> research_agent_b.n3.handle(top) [label="Explore Angle 2"]
n1.handle(bottom) -> research_agent_c.n4.handle(top) [label="Explore Angle 3"]
}
research_agent_a {# Research Agent A
n2: rectangle label="Parallel Search A"
n2.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings A"]
}
research_agent_b {# Research Agent B
n3: rectangle label="Parallel Search B"
n3.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings B"]
}
research_agent_c {# Research Agent C
n4: rectangle label="Parallel Search C"
n4.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings C"]
}
aggregator_agent {# Aggregator Agent
n5: rectangle label="Merge & Deduplicate"
}
RAW_BUFFERClick to expand / collapse

Hi CrewAI team 👋

I'd like to contribute an architecture diagram for CrewAI using FlowZap — a diagrams-as-code tool where a single .fz file generates three synchronized views: Workflow, Sequence diagram, and Architecture.

CrewAI's parallel agent execution model (dispatcher → parallel specialist agents → aggregator) maps directly to FlowZap's Agentic Swarm template:

dispatcher_agent {# Dispatcher Agent
n1: rectangle label="Split Goals & Dispatch"
n1.handle(bottom) -> research_agent_a.n2.handle(top) [label="Explore Angle 1"]
n1.handle(bottom) -> research_agent_b.n3.handle(top) [label="Explore Angle 2"]
n1.handle(bottom) -> research_agent_c.n4.handle(top) [label="Explore Angle 3"]
}
research_agent_a {# Research Agent A
n2: rectangle label="Parallel Search A"
n2.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings A"]
}
research_agent_b {# Research Agent B
n3: rectangle label="Parallel Search B"
n3.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings B"]
}
research_agent_c {# Research Agent C
n4: rectangle label="Parallel Search C"
n4.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings C"]
}
aggregator_agent {# Aggregator Agent
n5: rectangle label="Merge & Deduplicate"
}

Paste it at https://flowzap.xyz to see all three views rendered live.

Why FlowZap?

Happy to PR this into the docs wherever it fits.

extent analysis

Fix Plan

To integrate the provided FlowZap architecture diagram into the CrewAI documentation, follow these steps:

  • Create a new file with a .fz extension (e.g., crewai_architecture.fz) and paste the provided FlowZap code into it.
  • Update the crewai_architecture.fz file to include any necessary comments or descriptions for clarity.
  • Use the FlowZap MCP tool to generate the Workflow, Sequence diagram, and Architecture views by running the command:
npx -y flowzap-mcp crewai_architecture.fz
  • Review the generated diagrams to ensure they accurately represent the CrewAI architecture.
  • Create a pull request to add the crewai_architecture.fz file and the generated diagrams to the CrewAI documentation.

Verification

To verify that the fix worked, check that:

  • The crewai_architecture.fz file is correctly formatted and renders the expected diagrams when pasted into the FlowZap editor.
  • The generated diagrams accurately represent the CrewAI architecture and are consistent across all three views (Workflow, Sequence diagram, and Architecture).
  • The pull request is successfully merged and the updated documentation is visible on the CrewAI website.

Example Code

The provided FlowZap code can be used as a starting point:

dispatcher_agent {# Dispatcher Agent
  n1: rectangle label="Split Goals & Dispatch"
  n1.handle(bottom) -> research_agent_a.n2.handle(top) [label="Explore Angle 1"]
  n1.handle(bottom) -> research_agent_b.n3.handle(top) [label="Explore Angle 2"]
  n1.handle(bottom) -> research_agent_c.n4.handle(top) [label="Explore Angle 3"]
}
research_agent_a {# Research Agent A
  n2: rectangle label="Parallel Search A"
  n2.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings A"]
}
research_agent_b {# Research Agent B
  n3: rectangle label="Parallel Search B"
  n3.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings B"]
}
research_agent_c {# Research Agent C
  n4: rectangle label="Parallel Search C"
  n4.handle(bottom) -> aggregator_agent.n5.handle(top) [label="Findings C"]
}
aggregator_agent {# Aggregator Agent
  n5: rectangle label="Merge & Deduplicate"
}

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING