Agents

Understanding Agents in PraisonAI

Understanding Agents

Agents are the core building blocks of PraisonAI. Each agent is an autonomous AI entity with specific roles, goals, and capabilities.

Single Agent vs Multi-Agent

Diagram

๐Ÿ‘ฅ Multi-Agent Team

AgentTeam()

๐Ÿค– Agent 1

๐Ÿค– Agent 2

๐Ÿค– Agent 3

๐Ÿค– Single Agent

Agent()

Task

Use CaseClassCode
One agent, one taskAgentAgent(instructions="...").start()
Multiple agents working togetherAgentTeamAgentTeam(agents=[...]).start()

Agent Architecture

Diagram

๐Ÿ“‹ Task

๐Ÿค– AI Agent

๐Ÿ”ง Tools

๐Ÿ“‹ Task

๐Ÿค– AI Agent

๐Ÿ”ง Tools

โ–ถ Start

โš™ Process

โœ“ Output

Key Components

Component Details

Role and Goal

ComponentDescriptionExample
RoleAgent’s function and expertiseResearch Analyst, Code Developer
GoalSpecific objectives to achieveAnalyze market trends, Generate reports
BackstoryContextual backgroundExpert with 10 years of experience

Capabilities

Basic
agent = Agent(
    name="Researcher",
    role="Senior Research Analyst",  # Part of System Prompt
    goal="Uncover cutting-edge developments in AI",  # Part of System Prompt
    backstory="You are an expert at a technology research group",  # Part of System Prompt
    llm="gpt-4o"
)
  1. Install PraisonAI

    Install the core package:

    Terminal
    pip install praisonaiagents
  2. Configure Environment
    Terminal
    export OPENAI_API_KEY=your_openai_key

    Generate your OpenAI API key from OpenAI Use other LLM providers like Ollama, Anthropic, Groq, Google, etc. Please refer to the Models for more information.

  3. Create Agent

    Create app.py:

    Single Agent
    from praisonaiagents import Agent
    
    agent = Agent(instructions="Your are a helpful AI assistant")  # System Prompt: defines WHO the agent is
    agent.start("Write a movie script about a robot in Mars")  # User Prompt: defines WHAT to do
    Multi Agents
    from praisonaiagents import Agent, AgentTeam
    
    research_agent = Agent(instructions="Research about AI")  # System Prompt
    summarise_agent = Agent(instructions="Summarise research agent's findings")  # System Prompt
    
    agents = AgentTeam(agents=[research_agent, summarise_agent])
    agents.start()  # User Prompt (uses task descriptions)
  4. Start Agents

    Execute your script:

    Terminal
    python app.py

    You should see: – Agent initialization – Agents progress – Final results – Generated report

Agent Types

Best Practices

Async Capabilities

Advanced Features

Async Support

Agents now support asynchronous operations through the following methods:

  • achat: Async version of the chat method
  • astart: Async version of start method
  • aexecute_task: Async version of execute_task method
  • arun_task: Async version of run_task method
  • arun_all_tasks: Async version of run_all_tasks method

Example Usage:

python
import asyncio
from praisonaiagents import Agent, Task, AgentTeam

async def main():
    # Create an async agent
    async_agent = Agent(
        name="AsyncAgent",
        role="Async Task Specialist",
        goal="Perform async operations",
        backstory="Expert in async operations",
        tools=[async_search_tool],  # Your async tool

    )

    # Create an async task
    async_task = Task(
        description="Perform async operation",
        expected_output="Async result",
        agent=async_agent,
        async_execution=True  # Enable async execution
    )

    # Create and start agents with async support
    agents = AgentTeam(
        agents=[async_agent],
        tasks=[async_task],

    )

    # Start async execution
    result = await agents.astart()
    print(result)

# Run the async main function
if __name__ == "__main__":
    asyncio.run(main())

Key Features:

  • Full async/await support
  • Parallel task execution
  • Async tool integration
  • Async callback support
  • Mixed sync/async operations

Next Steps