Skip to main content
PraisonAI provides four core components for building AI applications. Each serves a distinct purpose in the architecture.
Naming Convention: AgentFlow is the class name (code), Workflow is the concept category. Similarly, AgentOS is the class, App is the concept.

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.
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.”
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.”
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.
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/Aparallel()N/A
HierarchicalN/AN/A
Conditional⚠️ condition={}route(), when()N/A
Looping⚠️ loop_overloop()N/A
Repeat Untilrepeat()N/A
Web API✅ Primary
Functions as StepsN/A

When to Use What

1

Simple single task

Use Agent directly:
Agent(instructions="...").start("prompt")
2

Multi-agent with task delegation

Use AgentTeam:
AgentTeam(agents=[...], tasks=[...]).start()
3

Deterministic pipeline with patterns

Use AgentFlow:
AgentFlow(steps=[...]).run("input")
4

Production deployment

Wrap in AgentOS:
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

Begin with a single Agent. Only add orchestration when you need multiple agents or complex flows.
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)
Even for single agents, AgentOS provides proper API structure, CORS, and health checks.
If you need guaranteed execution order, conditional branching, or loops, use AgentFlow.

Agents

Agent configuration reference

Tasks

Task configuration reference

Process Types

Sequential, parallel, hierarchical

AgentFlow

Workflow patterns deep dive

AgentOS

Production deployment