Orchestrator Pattern
A manager agent that delegates work to specialists
Let a manager agent delegate subtasks to specialists for complex, open-ended work.
from praisonaiagents import Agent, Task, AgentTeam
researcher = Agent(name="Researcher", instructions="Research topics")
writer = Agent(name="Writer", instructions="Write content")
task = Task(description="Report on AI trends", expected_output="A detailed report")
team = AgentTeam(agents=[researcher, writer], tasks=[task], process="hierarchical", manager_llm="gpt-4o")
team.start()The user starts a hierarchical team; the manager assigns work and returns a consolidated result.
Orchestrator Pattern
Like a project manager who assigns work to team members.
How It Works
Key Difference
| Aspect | AgentFlow | Orchestrator |
|---|---|---|
| Who decides? | You | AI Manager |
| Flow | Fixed steps | Dynamic |
| Token usage | Lower | Higher |
| Best for | Predictable tasks | Complex, unclear tasks |
Code
from praisonaiagents import Agent, Task, AgentTeam
# Workers
researcher = Agent(name="Researcher", instructions="Research topics")
analyst = Agent(name="Analyst", instructions="Analyze data")
writer = Agent(name="Writer", instructions="Write content")
# The task
task = Task(
description="Create a comprehensive report on AI trends",
expected_output="A detailed report"
)
# Hierarchical team - manager decides who does what
team = AgentTeam(
agents=[researcher, analyst, writer],
tasks=[task],
process="hierarchical",
manager_llm="gpt-4o"
)
result = team.start()Manager Decision Flow
When to Use
| Use Orchestrator | Use AgentFlow |
|---|---|
| Complex, unclear tasks | Simple, clear steps |
| Don’t know order upfront | Know exact order |
| Need flexibility | Need predictability |
| Higher budget OK | Cost-sensitive |