Core Components

Compare Agent, AgentTeam, AgentFlow, and AgentOS

PraisonAI provides four core components for building AI applications. Each serves a distinct purpose in the architecture.

Diagram

🚀 Production

🛠️ Development

App

Workflow

Team

Single Agent

🤖 Agent

👥 AgentTeam

🔄 AgentFlow

📡 AgentOS

Quick Reference

ComponentCategoryPurposeUse When
AgentSingle AgentSingle autonomous unitSimple tasks, single-purpose automation
AgentTeamTeamMulti-agent coordinatorTask delegation, hierarchical teams
AgentFlowWorkflowDeterministic pipelinesStep-by-step flows, loops, conditionals
AgentOSAppProduction deploymentWeb APIs, production services

Agent

The fundamental building block. A single AI entity with instructions and tools.

python
from praisonaiagents import Agent

agent = Agent(
    name="Researcher",
    instructions="You research topics thoroughly",
    tools=[search_tool]
)

result = agent.start("What is quantum computing?")

Key Features

  • Single purpose, focused execution
  • Direct tool access
  • Memory and context support
  • Works standalone or within orchestrators

AgentTeam

Coordinates multiple agents through task assignment. Think: “Who does what task.”

python
from praisonaiagents import Agent, AgentTeam, Task

researcher = Agent(role="Researcher", instructions="Research topics")
writer = Agent(role="Writer", instructions="Write content")

task1 = Task(description="Research AI", agent=researcher)
task2 = Task(description="Write article", agent=writer, context=[task1])

manager = AgentTeam(
    agents=[researcher, writer],
    tasks=[task1, task2],
    process="sequential"
)
result = manager.start()

Key Features

  • Task-based delegation with explicit agent assignment
  • Sequential, parallel, or hierarchical execution
  • Task dependencies via context
  • Manager LLM for hierarchical validation

AgentFlow

Executes deterministic step sequences with advanced patterns. Think: “What happens in order.”

python
from praisonaiagents import Agent
from praisonaiagents import AgentFlow, route, loop

researcher = Agent(instructions="Research topics")
writer = Agent(instructions="Write content")

workflow = AgentFlow(
    steps=[
        researcher,
        route({
            "positive": [writer],
            "default": [fallback]
        })
    ]
)
result = workflow.run("Research AI trends")

Key Features

  • Pattern-based: route(), parallel(), loop(), repeat(), when()
  • Steps can be agents OR functions
  • CSV/file iteration with loop(from_csv="data.csv")
  • Recipe composition with include()

AgentOS

Deploys agents, managers, or workflows as production web services.

python
from praisonai import AgentOS
from praisonaiagents import Agent, AgentTeam, AgentFlow

assistant = Agent(name="assistant", instructions="Be helpful")
manager = AgentTeam(agents=[...], tasks=[...])
workflow = AgentFlow(steps=[...])

app = AgentOS(
    name="My AI API",
    agents=[assistant],
    managers=[manager],
    workflows=[workflow]
)
app.serve(port=8000)

Key Features

  • FastAPI-based REST endpoints
  • WebSocket support
  • Auto-generated API docs (/docs)
  • CORS configuration
  • Health checks (/health)

Endpoints

EndpointMethodDescription
/GETApp status and component list
/healthGETHealth check
/api/agentsGETList all agents
/api/chatPOSTChat with an agent

Comparison Matrix

CapabilityAgentAgentTeamAgentFlowAgentOS
Single Task✅ Primary❌⚠️ Via step✅ Wraps
Multi-Agent❌✅ Primary✅ Via steps✅ Wraps
SequentialN/A✅✅ DefaultN/A
ParallelN/A✅✅ parallel()N/A
HierarchicalN/A✅❌N/A
Conditional❌⚠️ condition={}✅ route(), when()N/A
Looping❌⚠️ loop_over✅ loop()N/A
Repeat Until❌❌✅ repeat()N/A
Web API❌❌❌✅ Primary
Functions as Steps❌❌✅N/A

When to Use What

Diagram

Yes

No

Yes

No

Yes

No

Yes

No

What do you need?

Single agent?

Use Agent

Deterministic flow?

Use AgentFlow

Task dependencies?

Use AgentTeam

Production API?

Use AgentOS

  1. Simple single task

    Use Agent directly:

    python
    Agent(instructions="...").start("prompt")
  2. Multi-agent with task delegation

    Use AgentTeam:

    python
    AgentTeam(agents=[...], tasks=[...]).start()
  3. Deterministic pipeline with patterns

    Use AgentFlow:

    python
    AgentFlow(steps=[...]).run("input")
  4. Production deployment

    Wrap in AgentOS:

    python
    AgentOS(agents=[...]).serve(port=8000)

Shared Parameters

All orchestrators (AgentTeam, AgentFlow) support identical feature parameters:

ParameterTypeDescription
memorybool / MemoryConfigEnable memory
planningbool / PlanningConfigPlanning mode
contextbool / ContextConfigContext management
outputstr / OutputConfigOutput settings
hooksHooksConfigLifecycle callbacks
autonomybool / AutonomyConfigAgent autonomy
knowledgebool / KnowledgeConfigRAG configuration
guardrailsbool / GuardrailConfigValidation
webbool / WebConfigWeb search
reflectionbool / ReflectionConfigSelf-reflection
cachingbool / CachingConfigCaching

Best Practices

Start with Agent, scale up

Begin with a single Agent. Only add orchestration when you need multiple agents or complex flows.

Choose one orchestrator per project

Don’t mix AgentTeam and AgentFlow for the same task. Pick based on your mental model: – AgentTeam = “Who does what” (task assignment) – AgentFlow = “What happens when” (step sequence)

Use AgentOS for all production deployments

Even for single agents, AgentOS provides proper API structure, CORS, and health checks.

Prefer AgentFlow for deterministic processes

If you need guaranteed execution order, conditional branching, or loops, use AgentFlow.


Related