> ## Documentation Index
> Fetch the complete documentation index at: https://phidatainc-studio-tools-doc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Orchestration patterns

> Route, coordinate, broadcast, task, or a deterministic pipeline. Pick the shape the research question needs.

A research question has a shape. A factual lookup wants one specialist. A high-stakes decision wants every specialist at once. A standardized review wants the same auditable steps every time. Agno gives you a Team mode or a Workflow for each.

## Pick the shape

| Pattern        | Primitive                | Best for                                                              |
| -------------- | ------------------------ | --------------------------------------------------------------------- |
| **Route**      | `Team` (route mode)      | A direct question that one specialist owns                            |
| **Coordinate** | `Team` (coordinate mode) | Open-ended questions where a lead decides who to consult              |
| **Broadcast**  | `Team` (broadcast mode)  | High-stakes calls where every specialist evaluates independently      |
| **Task**       | `Team` (tasks mode)      | Multi-step jobs the team decomposes autonomously                      |
| **Pipeline**   | `Workflow`               | Standardized, auditable reviews that must run the same way every time |

## Coordinate: a lead orchestrates dynamically

A lead model decides which analysts to consult based on the question, then synthesizes.

```python theme={null}
from agno.models.google import Gemini
from agno.team import Team, TeamMode

coordinate_team = Team(
    id="coordinate-team",
    name="Investment Team - Coordinate",
    mode=TeamMode.coordinate,
    model=Gemini(id="gemini-3.1-pro-preview"),
    members=[market_analyst, financial_analyst, technical_analyst, risk_officer],
    instructions=[
        "Dynamically decide which analysts to consult based on the question.",
        "Always consult the Risk Officer before any allocation decision.",
        "Provide a final recommendation with a specific dollar allocation.",
    ],
    show_members_responses=True,
)

answer = coordinate_team.run("Should we add NVDA at a $2M position?").content
# The lead consults the analysts it judges relevant, always the Risk
# Officer before sizing, then synthesizes one recommendation.
```

## Broadcast: everyone evaluates, the lead synthesizes

Every analyst assesses the same question independently. The lead reconciles agreement and disagreement into one call. Use this when independence reduces bias.

```python theme={null}
broadcast_team = Team(
    id="broadcast-team",
    name="Investment Team - Broadcast",
    mode=TeamMode.broadcast,
    model=Gemini(id="gemini-3.1-pro-preview"),
    members=[market_analyst, financial_analyst, technical_analyst, risk_officer],
    instructions=[
        "All analysts evaluated this independently.",
        "Note where they agree and disagree, then decide.",
        "Weight the Risk Officer's concerns heavily in position sizing.",
    ],
    show_members_responses=True,
)
```

## Pipeline: the same steps, every time

When a review must be auditable, a `Workflow` fixes the steps. Each step's output feeds the next; independent steps run in [parallel](/use-cases/deep-research/parallel-investigation).

```python theme={null}
from agno.workflow import Parallel, Step, Workflow

investment_workflow = Workflow(
    id="investment-workflow",
    name="Investment Review Pipeline",
    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),
        Step(name="Investment Memo", agent=memo_writer),
        Step(name="Committee Decision", agent=committee_chair),
    ],
)

result = investment_workflow.run("Run a full investment review on NVDA")
# result.content is the Committee Decision; result.step_results holds each
# step in order (the Deep Dive is one nested list). Same shape every run.
```

## Teams vs Workflows

|              | Team                            | Workflow                                  |
| ------------ | ------------------------------- | ----------------------------------------- |
| Control      | A lead model decides the flow   | You define the steps                      |
| Best for     | Open-ended or adaptive research | Standardized, repeatable reviews          |
| Auditability | Varies by run                   | Identical every run                       |
| Failure mode | Lead picks a poor path          | A step is wrong, but always the same step |

A mature research system uses both: Teams for exploration, a Workflow for the decision of record.

## Next steps

| Task                        | Guide                                                                     |
| --------------------------- | ------------------------------------------------------------------------- |
| Fan specialists out at once | [Parallel investigation](/use-cases/deep-research/parallel-investigation) |
| Ground every member         | [Grounding research](/use-cases/deep-research/grounding-research)         |

## Developer Resources

* [Teams](/teams/overview)
* [Team modes cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/03_teams/02_modes)
* [Workflows](/workflows/overview)
* [Workflow cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/04_workflows)
