Parallel investigation

Run independent specialist steps concurrently, then synthesize their results.

Place independent specialist steps in a Workflow Parallel block. Each step in the block runs concurrently, and the Workflow waits for the block to finish before continuing. In this review, fundamental and technical analysis both start after market assessment and complete before risk assessment.

These are composition examples adapted from the Investment Team application. Follow its clone, database, credentials, and research-loading setup for a complete application. Its agents/, teams/, and workflows/ define the components referenced here; agents/settings.py supplies shared knowledge and paths.

Import those components into your application module, or define your own before composing them. The application uses Gemini; the OpenAI variants on these pages require uv pip install "agno[openai]" and OPENAI_API_KEY as well. Shared knowledge/storage still needs the application's database and embedding-provider setup. Prose context, analyst-output variables, and local archives must be supplied by your application.

from agno.workflow import Parallel, Step, Workflow

workflow = Workflow(
    id="review",
    name="Deep Dive Review",
    steps=[
        Step(name="Market Assessment", agent=market_analyst),
        Parallel(
            Step(name="Fundamental Analysis", agent=financial_analyst),
            Step(name="Technical Analysis", agent=technical_analyst),
            name="Deep Dive",
        ),
        Step(name="Risk Assessment", agent=risk_officer),
    ],
)

result = workflow.run("Run a full review on NVDA")
final = result.content  # the last step's output

# Gotcha: result.step_results is positional, and a Parallel block is one
# StepOutput whose .steps holds the sub-steps, not flattened:
#   [ StepOutput("Market Assessment"),
#     StepOutput("Deep Dive", steps=[StepOutput("Fundamental Analysis"),
#                                    StepOutput("Technical Analysis")]),
#     StepOutput("Risk Assessment") ]

Market assessment runs first. Fundamental and technical analysis both use that market context, so they run together. Risk assessment starts after both analyses finish.

Two ways to fan out

ShapeUse when
Parallel step in a WorkflowThe investigations and their position in the step graph are fixed
Broadcast TeamA lead should synthesize independent opinions on one question

A Broadcast team is the adaptive version: every member evaluates the same question simultaneously and the lead reconciles them. See Orchestration patterns.

Model the dependencies

Use the step graph to express data dependencies. Group steps that share the same prerequisite in Parallel. Place downstream steps after the block.

StepDepends onRuns
Market assessmentResearch requestFirst, alone
Fundamental analysisMarket contextIn parallel with technical
Technical analysisMarket contextIn parallel with fundamental
Risk assessmentBoth analysesAfter the parallel block

Reduce research latency

Running independent analyses concurrently reduces wall-clock latency while preserving each specialist's full analysis.

Next steps

TaskGuide
Choose the orchestration shapeOrchestration patterns
Ground each parallel specialistGrounding research
Synthesize into one artifactStructured deliverable

Developer Resources