PraisonAI

MervinPraison/PraisonAI
8,266 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

AI Agents Framework with Self Reflection and MCP support

README.md

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset=".github/images/logo_dark.png" /> <source media="(prefers-color-scheme: light)" srcset=".github/images/logo_light.png" /> <img alt="PraisonAI Logo" src=".github/images/logo_light.png" width="250" /> </picture> </p>

<!-- mcp-name: io.github.MervinPraison/praisonai -->

<p align="center"> <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://static.pepy.tech/badge/PraisonAI" alt="Total Downloads" /></a> <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/github/v/release/MervinPraison/PraisonAI" alt="Latest Stable Version" /></a> <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License" /></a> <a href="https://registry.modelcontextprotocol.io/servers/io.github.MervinPraison/praisonai"><img src="https://img.shields.io/badge/MCP-Registry-blue" alt="MCP Registry" /></a> </p>

<div align="center">

PraisonAI 🦞

<a href="https://trendshift.io/repositories/9130" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9130" alt="MervinPraison%2FPraisonAI | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

</div>

PraisonAI 🦞 β€” Hire a 24/7 AI Workforce. Stop writing boilerplate and start shipping autonomous, self-improving agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.

curl -fsSL https://praison.ai/install.sh | bash

<div align="center"> <br> <a href="https://x.com/elonmusk/status/1893870468249141688" target="_blank"> <img src="https://img.shields.io/badge/Highlighted_by_Elon_Musk-000000?style=for-the-badge&logo=x&logoColor=white" alt="Highlighted by Elon Musk" /> </a> <br> </div>

<p align="center"> <img src=".github/images/dashboard.png" alt="PraisonAI Dashboard" width="800" /> </p>

<p align="center"> <img src=".github/images/agentflow.gif" alt="PraisonAI AgentFlow" width="800" /> </p>

 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—
 β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘
 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 β•šβ•β•     β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•β•β•    β•šβ•β•  β•šβ•β•β•šβ•β•

 pip install praisonai

<p align="center"> <img src=".github/images/latest_ai_news_and_crawl_each_url_to_find_info.gif" alt="PraisonAI command execution" width="800" /> </p>

\* export TAVILY_API_KEY=xxxxx

<div align="center"> <a href="https://docs.praison.ai"> <p align="center"> <img src="https://img.shields.io/badge/πŸ“š_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" /> </p> </a> </div>

---

🎯 Use Cases

AI agents solving real-world problems across industries:

| Use Case | Description | |----------|-------------| | πŸ” Research & Analysis | Conduct deep research, gather information, and generate insights from multiple sources automatically | | πŸ’» Code Generation | Write, debug, and refactor code with AI agents that understand your codebase and requirements | | ✍️ Content Creation | Generate blog posts, documentation, marketing copy, and technical writing with multi-agent teams | | πŸ“Š Data Pipelines | Extract, transform, and analyze data from APIs, databases, and web sources automatically | | πŸ€– Customer Support | Deploy 24/7 support bots on Telegram, Discord, Slack with memory and knowledge-backed responses | | βš™οΈ Workflow Automation | Automate multi-step business processes with agents that hand off tasks, verify results, and self-correct |

---

πŸš€ Meet your first Agent (Under 1 Minute)

  1. Install the lightweight core SDK:
pip install praisonaiagents
export OPENAI_API_KEY="your-api-key"
  1. Run your first autonomous agent:
from praisonaiagents import Agent

# Give your agent a goal, and watch it work.
agent = Agent(instructions="You are a senior data analyst.")
agent.start("Analyze the top 3 tech trends of 2026 and format as a markdown table.")

---

🌌 The PraisonAI Ecosystem

Start simple with the core SDK, or expand to full visual builders and dashboards when you're ready.

  • Core SDK (praisonaiagents): For pure Python development. pip install praisonaiagents
  • πŸ’» PraisonAI CLI (praisonai): For terminal-based developers. pip install praisonai
  • 🦞 Claw Dashboard: Connect agents directly to Telegram, Slack, or Discord. pip install "praisonai[claw]"
  • πŸ”— Flow Visual Builder: Drag-and-drop workflow creation. pip install "praisonai[flow]"
  • πŸ€– PraisonAI UI: Clean chat interface. pip install "praisonai[ui]"

JavaScript SDK

npm install praisonai

🧠 Supported Providers & Features

Powered by 100+ LLMs (OpenAI, Anthropic, Gemini & local models).

<p align="center"> <img src="https://img.shields.io/badge/OpenAI-412991?style=flat&logo=openai&logoColor=white" alt="OpenAI" /> <img src="https://img.shields.io/badge/Anthropic-191919?style=flat&logo=anthropic&logoColor=white" alt="Anthropic" /> <img src="https://img.shields.io/badge/Google_Gemini-4285F4?style=flat&logo=google&logoColor=white" alt="Google Gemini" /> <img src="https://img.shields.io/badge/DeepSeek-566AB2?style=flat" alt="DeepSeek" /> <img src="https://img.shields.io/badge/Azure-0078D4?style=flat&logo=microsoftazure&logoColor=white" alt="Azure" /> <img src="https://img.shields.io/badge/Ollama-000000?style=flat" alt="Ollama" /> <img src="https://img.shields.io/badge/Groq-F05237?style=flat" alt="Groq" /> <img src="https://img.shields.io/badge/Mistral-FF7000?style=flat" alt="Mistral" /> <img src="https://img.shields.io/badge/Cerebras-F05A28?style=flat" alt="Cerebras" /> <img src="https://img.shields.io/badge/Cohere-39594D?style=flat" alt="Cohere" /> <img src="https://img.shields.io/badge/OpenRouter-6467F2?style=flat" alt="OpenRouter" /> <img src="https://img.shields.io/badge/Perplexity-20808D?style=flat" alt="Perplexity" /> <img src="https://img.shields.io/badge/Fireworks-FF6B35?style=flat" alt="Fireworks" /> <img src="https://img.shields.io/badge/AWS_Bedrock-FF9900?style=flat&logo=amazonaws&logoColor=white" alt="AWS Bedrock" /> <img src="https://img.shields.io/badge/xAI_Grok-000000?style=flat" alt="xAI Grok" /> <img src="https://img.shields.io/badge/Vertex_AI-4285F4?style=flat&logo=googlecloud&logoColor=white" alt="Vertex AI" /> <img src="https://img.shields.io/badge/HuggingFace-FFD21E?style=flat&logo=huggingface&logoColor=black" alt="HuggingFace" /> <img src="https://img.shields.io/badge/Together_AI-000000?style=flat" alt="Together AI" /> <img src="https://img.shields.io/badge/Databricks-FF3621?style=flat&logo=databricks&logoColor=white" alt="Databricks" /> <img src="https://img.shields.io/badge/Replicate-262626?style=flat" alt="Replicate" /> <img src="https://img.shields.io/badge/Cloudflare-F38020?style=flat&logo=cloudflare&logoColor=white" alt="Cloudflare" /> </p>

<details> <summary><strong>View all 24 providers with examples</strong></summary>

| Provider | Example | |----------|:-------:| | OpenAI | Example | | Anthropic | Example | | Google Gemini | Example | | Ollama | Example | | Groq | Example | | DeepSeek | Example | | xAI Grok | Example | | Mistral | Example | | Cohere | Example | | Perplexity | Example | | Fireworks | Example | | Together AI | Example | | OpenRouter | Example | | HuggingFace | Example | | Azure OpenAI | Example | | AWS Bedrock | Example | | Google Vertex | Example | | Databricks | Example | | Cloudflare | Example | | AI21 | Example | | Replicate | Example | | SageMaker | Example | | Moonshot | Example | | vLLM | Example |

</details>

<div align="center"> <a href="https://x.com/elonmusk/status/1893870468249141688" target="_blank"> <img src=".github/images/elon_musk_praisonai.png" alt="Highlighted by Elon Musk" width="600" /> </a> <p><em>"Grok 3 customer support" β€” <a href="https://x.com/elonmusk/status/1893870468249141688">Elon Musk quoting PraisonAI's tutorial</a></em></p> </div> <br>

---

🌟 Why PraisonAI?

| | Feature | How | |--|---------|-----| | πŸ”Œ | MCP Protocol β€” stdio, HTTP, WebSocket, SSE | tools=MCP("npx ...") | | 🧠 | Planning Mode β€” plan β†’ execute β†’ reason | planning=True | | πŸ” | Deep Research β€” multi-step autonomous research | Docs | | πŸ€– | External Agents β€” orchestrate Claude Code, Gemini CLI, Codex | Docs | | πŸ”„ | Agent Handoffs β€” seamless conversation passing | handoff=True | | πŸ›‘οΈ | Guardrails β€” input/output validation | Docs | | | Web Search + Fetch β€” native browsing | web_search=True | | πŸͺž | Self Reflection β€” agent reviews its own output | Docs | | πŸ”€ | Workflow Patterns β€” route, parallel, loop, repeat | Docs | | 🧠 | Memory (zero deps) β€” works out of the box | memory=True |

<details> <summary><strong>View all 25 features</strong></summary>

| | Feature | How | |--|---------|-----| | πŸ’‘ | Prompt Caching β€” reduce latency + cost | prompt_caching=True | | πŸ’Ύ | Sessions + Auto-Save β€” persistent state across restarts | auto_save="my-project" | | πŸ’­ | Thinking Budgets β€” control reasoning depth | thinking_budget=1024 | | πŸ“š | RAG + Quality-Based RAG β€” auto quality scoring retrieval | Docs | | πŸ“Š | Model Router β€” auto-routes to cheapest capable model | Docs | | 🧊 | Shadow Git Checkpoints β€” auto-rollback on failure | Docs | | πŸ“‘ | A2A Protocol β€” agent-to-agent interop | Docs | | πŸ“ | Context Compaction β€” never hit token limits | Docs | | πŸ“‘ | Telemetry β€” OpenTelemetry traces, spans, metrics | Docs | | πŸ“œ | Policy Engine β€” declarative agent behavior control | Docs | | πŸ”„ | Background Tasks β€” fire-and-forget agents | Docs | | πŸ” | Doom Loop Detection β€” auto-recovery from stuck agents | Docs | | πŸ•ΈοΈ | Graph Memory β€” Neo4j-style relationship tracking | Docs | | πŸ–οΈ | Sandbox Execution β€” isolated code execution | Docs | | πŸ–₯️ | Bot Gateway β€” multi-agent routing across channels | Docs |

</details>

---

πŸ“˜ Using Python Code

1. Single Agent

from praisonaiagents import Agent
agent = Agent(instructions="You are a helpful AI assistant")
agent.start("Write a movie script about a robot in Mars")

2. Multi Agents

from praisonaiagents import Agent, Agents

research_agent = Agent(instructions="Research about AI")
summarise_agent = Agent(instructions="Summarise research agent's findings")
agents = Agents(agents=[research_agent, summarise_agent])
agents.start()

3. MCP (Model Context Protocol)

from praisonaiagents import Agent, MCP

# stdio - Local NPX/Python servers
agent = Agent(tools=MCP("npx @modelcontextprotocol/server-memory"))

# Streamable HTTP - Production servers
agent = Agent(tools=MCP("https://api.example.com/mcp"))

# WebSocket - Real-time bidirectional
agent = Agent(tools=MCP("wss://api.example.com/mcp", auth_token="token"))

# With environment variables
agent = Agent(
    tools=MCP(
        command="npx",
        args=["-y", "@modelcontextprotocol/server-brave-search"],
        env={"BRAVE_API_KEY": "your-key"}
    )
)

πŸ“– Full MCP docs β€” stdio, HTTP, WebSocket, SSE transports

4. Custom Tools

from praisonaiagents import Agent, tool

@tool
def search(query: str) -> str:
    """Search the web for information."""
    return f"Results for: {query}"

@tool
def calculate(expression: str) -> float:
    """Safely evaluate a numeric arithmetic expression."""
    import ast
    import operator
    
    # Define allowed operations
    _OPS = {
        ast.Add: operator.add,
        ast.Sub: operator.sub,
        ast.Mult: operator.mul,
        ast.Div: operator.truediv,
        ast.Pow: operator.pow,
        ast.USub: operator.neg,
        ast.UAdd: operator.pos,
    }
    
    def _safe_eval(node):
        if isinstance(node, ast.Constant) and isinstance(node.value, (int, float)):
            return node.value
        elif isinstance(node, ast.BinOp) and type(node.op) in _OPS:
            return _OPS[type(node.op)](_safe_eval(node.left), _safe_eval(node.right))
        elif isinstance(node, ast.UnaryOp) and type(node.op) in _OPS:
            return _OPS[type(node.op)](_safe_eval(node.operand))
        else:
            raise ValueError("Unsupported expression")
    
    try:
        return _safe_eval(ast.parse(expression, mode="eval").body)
    except (ValueError, SyntaxError, TypeError, ZeroDivisionError, OverflowError):
        raise ValueError("Invalid arithmetic expression")

agent = Agent(
    instructions="You are a helpful assistant",
    tools=[search, calculate]
)
agent.start("Search for AI news and calculate 15*4")

⚠️ Security Note: Never use eval(), exec(), or subprocess in tool functions that process LLM-generated or user-supplied input. Always validate and sanitize inputs to prevent code injection attacks. πŸ“– Full tools docs β€” BaseTool, tool packages, 100+ built-in tools

5. Persistence (Databases)

from praisonaiagents import Agent, db

agent = Agent(
    name="Assistant",
    db=db(database_url="postgresql://localhost/mydb"),
    session_id="my-session"
)
agent.chat("Hello!")  # Auto-persists messages, runs, traces

πŸ“– Full persistence docs β€” PostgreSQL, MySQL, SQLite, MongoDB, Redis, and 20+ more

6. PraisonAI Claw 🦞 (Dashboard UI)

Connect your AI agents to Telegram, Discord, Slack, WhatsApp and more β€” all from a single command.

pip install "praisonai[claw]"
praisonai claw

Required Environment Variables

Copy .env.example to .env and configure the following variables:

| Variable | Required | Description | |----------|----------|-------------| | OPENAI_API_KEY | Yes | OpenAI API key for all LLM calls | | TAVILY_API_KEY | Yes (Claw) | Tavily key for the built-in web-search tool. Get one free at https://app.tavily.com |

Open http://localhost:8082 β€” the dashboard comes with 13 built-in pages: Chat, Agents, Memory, Knowledge, Channels, Guardrails, Cron, and more. Add messaging channels directly from the UI.

πŸ“– Full Claw docs β€” platform tokens, CLI options, Docker, and YAML agent mode

7. Langflow Integration πŸ”— (Visual Flow Builder)

Build multi-agent workflows visually with drag-and-drop components in Langflow.

pip install "praisonai[flow]"
praisonai flow

Open http://localhost:7861 β€” use the Agent and Agent Team components to create sequential or parallel workflows. Connect Chat Input β†’ Agent Team β†’ Chat Output for instant multi-agent pipelines.

πŸ“– Full Flow docs β€” visual agent building, component reference, and deployment

8. PraisonAI UI πŸ€– (Clean Chat)

Lightweight chat interface for your AI agents.

pip install "praisonai[ui]"
praisonai ui

---

πŸ“„ Using YAML (No Code)

Example 1: Two Agents Working Together

Create agents.yaml:

framework: praisonai
topic: "Write a blog post about AI"

agents:
  researcher:
    role: Research Analyst
    goal: Research AI trends and gather information
    instructions: "Find accurate information about AI trends"
    
  writer:
    role: Content Writer
    goal: Write engaging blog posts
    instructions: "Write clear, engaging content based on research"

Run with: ``bash praisonai agents.yaml ``

The agents automatically work together sequentially

Example 2: Agent with Custom Tool

Create two files in the same folder:

agents.yaml: ```yaml framework: praisonai topic: "Calculate the sum of 25 and 15"

agents: calculator_agent: role: Calculator goal: Perform calculations instructions: "Use the add_numbers tool to help with calculations" tools:

  • add_numbers

**tools.py:**

def add_numbers(a: float, b: float) -> float: """ Add two numbers together.

Args: a: First number b: Second number

Returns: The sum of a and b """ return a + b ```

Run with: ``bash praisonai agents.yaml ``

πŸ’‘ Tips: - Use the function name (e.g., add_numbers) in the tools list, not the file name - Tools in tools.py are automatically discovered - The function's docstring helps the AI understand how to use it

---

🎯 CLI Quick Reference

| Category | Commands | |----------|----------| | Execution | praisonai, --auto, --interactive, --chat | | Research | research, --query-rewrite, --deep-research | | Planning | --planning, --planning-tools, --planning-reasoning | | Workflows | workflow run, workflow list, workflow auto | | Memory | memory show, memory add, memory search, memory clear | | Knowledge | knowledge add, knowledge query, knowledge list | | Sessions | session list, session resume, session delete | | Tools | tools list, tools info, tools search | | MCP | mcp list, mcp create, mcp enable | | Development | commit, docs, checkpoint, hooks | | Scheduling | schedule start, schedule list, schedule stop |

πŸ“– Full CLI reference

---

✨ Key Features

<details open> <summary><strong>πŸ€– Core Agents</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Single Agent | Example | πŸ“– | | Multi Agents | Example | πŸ“– | | Auto Agents | Example | πŸ“– | | Self Reflection AI Agents | Example | πŸ“– | | Reasoning AI Agents | Example | πŸ“– | | Multi Modal AI Agents | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ”„ Workflows</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Simple Workflow | Example | πŸ“– | | Workflow with Agents | Example | πŸ“– | | Agentic Routing (route()) | Example | πŸ“– | | Parallel Execution (parallel()) | Example | πŸ“– | | Loop over List/CSV (loop()) | Example | πŸ“– | | Evaluator-Optimizer (repeat()) | Example | πŸ“– | | Conditional Steps | Example | πŸ“– | | Workflow Branching | Example | πŸ“– | | Workflow Early Stop | Example | πŸ“– | | Workflow Checkpoints | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ’» Code & Development</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Code Interpreter Agents | Example | πŸ“– | | AI Code Editing Tools | Example | πŸ“– | | External Agents (All) | Example | πŸ“– | | Claude Code CLI | Example | πŸ“– | | Gemini CLI | Example | πŸ“– | | Codex CLI | Example | πŸ“– | | Cursor CLI | Example | πŸ“– |

</details>

<details> <summary><strong>🧠 Memory & Knowledge</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Memory (Short & Long Term) | Example | πŸ“– | | File-Based Memory | Example | πŸ“– | | Claude Memory Tool | Example | πŸ“– | | Add Custom Knowledge | Example | πŸ“– | | RAG Agents | Example | πŸ“– | | Chat with PDF Agents | Example | πŸ“– | | Data Readers (PDF, DOCX, etc.) | CLI | πŸ“– | | Vector Store Selection | CLI | πŸ“– | | Retrieval Strategies | CLI | πŸ“– | | Rerankers | CLI | πŸ“– | | Index Types (Vector/Keyword/Hybrid) | CLI | πŸ“– | | Query Engines (Sub-Question, etc.) | CLI | πŸ“– |

</details>

<details> <summary><strong>πŸ”¬ Research & Intelligence</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Deep Research Agents | Example | πŸ“– | | Query Rewriter Agent | Example | πŸ“– | | Native Web Search | Example | πŸ“– | | Built-in Search Tools | Example | πŸ“– | | Unified Web Search | Example | πŸ“– | | Web Fetch (Anthropic) | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ“‹ Planning & Execution</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Planning Mode | Example | πŸ“– | | Planning Tools | Example | πŸ“– | | Planning Reasoning | Example | πŸ“– | | Prompt Chaining | Example | πŸ“– | | Evaluator Optimiser | Example | πŸ“– | | Orchestrator Workers | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ‘₯ Specialized Agents</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Data Analyst Agent | Example | πŸ“– | | Finance Agent | Example | πŸ“– | | Shopping Agent | Example | πŸ“– | | Recommendation Agent | Example | πŸ“– | | Wikipedia Agent | Example | πŸ“– | | Programming Agent | Example | πŸ“– | | Math Agents | Example | πŸ“– | | Markdown Agent | Example | πŸ“– | | Prompt Expander Agent | Example | πŸ“– |

</details>

<details> <summary><strong>🎨 Media & Multimodal</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Image Generation Agent | Example | πŸ“– | | Image to Text Agent | Example | πŸ“– | | Video Agent | Example | πŸ“– | | Camera Integration | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ”Œ Protocols & Integration</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | MCP Transports | Example | πŸ“– | | WebSocket MCP | Example | πŸ“– | | MCP Security | Example | πŸ“– | | MCP Resumability | Example | πŸ“– | | MCP Config Management | Docs | πŸ“– | | LangChain Integrated Agents | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ›‘οΈ Safety & Control</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Guardrails | Example | πŸ“– | | Human Approval | Example | πŸ“– | | Rules & Instructions | Docs | πŸ“– |

</details>

<details> <summary><strong>βš™οΈ Advanced Features</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Async & Parallel Processing | Example | πŸ“– | | Parallelisation | Example | πŸ“– | | Repetitive Agents | Example | πŸ“– | | Agent Handoffs | Example | πŸ“– | | Stateful Agents | Example | πŸ“– | | Autonomous Workflow | Example | πŸ“– | | Structured Output Agents | Example | πŸ“– | | Model Router | Example | πŸ“– | | Prompt Caching | Example | πŸ“– | | Fast Context | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ› οΈ Tools & Configuration</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | 100+ Custom Tools | Example | πŸ“– | | YAML Configuration | Example | πŸ“– | | 100+ LLM Support | Example | πŸ“– | | Callback Agents | Example | πŸ“– | | Hooks | Example | πŸ“– | | Middleware System | Example | πŸ“– | | Configurable Model | Example | πŸ“– | | Rate Limiter | Example | πŸ“– | | Injected Tool State | Example | πŸ“– | | Shadow Git Checkpoints | Example | πŸ“– | | Background Tasks | Example | πŸ“– | | Policy Engine | Example | πŸ“– | | Thinking Budgets | Example | πŸ“– | | Output Styles | Example | πŸ“– | | Context Compaction | Example | πŸ“– |

</details>

<details> <summary><strong>πŸ“Š Monitoring & Management</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Sessions Management | Example | πŸ“– | | Auto-Save Sessions | Docs | πŸ“– | | History in Context | Docs | πŸ“– | | Telemetry | Example | πŸ“– | | Langfuse Tracing | Docs | πŸ“– | | Project Docs (.praison/docs/) | Docs | πŸ“– | | AI Commit Messages | Docs | πŸ“– | | @Mentions in Prompts | Docs | πŸ“– |

</details>

<details> <summary><strong>πŸ–₯️ CLI Features</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Slash Commands | Example | πŸ“– | | Autonomy Modes | Example | πŸ“– | | Cost Tracking | Example | πŸ“– | | Repository Map | Example | πŸ“– | | Interactive TUI | Example | πŸ“– | | Git Integration | Example | πŸ“– | | Sandbox Execution | Example | πŸ“– | | CLI Compare | Example | πŸ“– | | Profile/Benchmark | Docs | πŸ“– | | Auto Mode | Docs | πŸ“– | | Init | Docs | πŸ“– | | File Input | Docs | πŸ“– | | Final Agent | Docs | πŸ“– | | Max Tokens | Docs | πŸ“– |

</details>

<details> <summary><strong>πŸ§ͺ Evaluation</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Accuracy Evaluation | Example | πŸ“– | | Performance Evaluation | Example | πŸ“– | | Reliability Evaluation | Example | πŸ“– | | Criteria Evaluation | Example | πŸ“– |

</details>

<details> <summary><strong>🎯 Agent Skills</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Skills Management | Example | πŸ“– | | Custom Skills | Example | πŸ“– |

</details>

<details> <summary><strong>⏰ 24/7 Scheduling</strong></summary>

| Feature | Code | Docs | |---------|:----:|:----:| | Agent Scheduler | Example | πŸ“– |

</details>

---

πŸ’» Using JavaScript Code

npm install praisonai
export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
const { Agent } = require('praisonai');
const agent = new Agent({ instructions: 'You are a helpful AI assistant' });
agent.start('Write a movie script about a robot in Mars');

---

⚑ Performance

PraisonAI is built for speed, with agent instantiation in around 14ΞΌs. This reduces overhead, improves responsiveness, and helps multi-agent systems scale efficiently in real-world production workloads.

| Performance Metric | PraisonAI | |--------------------|-----------| | Avg Instantiation Time | 14 ΞΌs |

---

---

⭐ Star History

![Star History Chart](https://docs.praison.ai)

---

πŸ” Langfuse Tracing

pip install "praisonai[langfuse]"
praisonai langfuse

<p align="center"> <img src=".github/images/langfuse.png" alt="PraisonAI Langfuse Tracing" width="800" /> </p>

---

πŸŽ“ Video Tutorials

Learn PraisonAI through our comprehensive video series:

<details> <summary><strong>View all 22 video tutorials</strong></summary>

| Topic | Video | |-------|--------| | AI Agents with Self Reflection | ![Self Reflection](https://www.youtube.com/watch?v=vLXobEN2Vc8) | | Reasoning Data Generating Agent | ![Reasoning Data](https://www.youtube.com/watch?v=fUT332Y2zA8) | | AI Agents with Reasoning | ![Reasoning](https://www.youtube.com/watch?v=KNDVWGN3TpM) | | Multimodal AI Agents | ![Multimodal](https://www.youtube.com/watch?v=hjAWmUT1qqY) | | AI Agents Workflow | ![Workflow](https://www.youtube.com/watch?v=yWTH44QPl2A) | | Async AI Agents | ![Async](https://www.youtube.com/watch?v=VhVQfgo00LE) | | Mini AI Agents | ![Mini](https://www.youtube.com/watch?v=OkvYp5aAGSg) | | AI Agents with Memory | ![Memory](https://www.youtube.com/watch?v=1hVfVxvPnnQ) | | Repetitive Agents | ![Repetitive](https://www.youtube.com/watch?v=dAYGxsjDOPg) | | Introduction | ![Introduction](https://www.youtube.com/watch?v=Fn1lQjC0GO0) | | Tools Overview | ![Tools Overview](https://www.youtube.com/watch?v=XaQRgRpV7jo) | | Custom Tools | ![Custom Tools](https://www.youtube.com/watch?v=JSU2Rndh06c) | | Firecrawl Integration | ![Firecrawl](https://www.youtube.com/watch?v=UoqUDcLcOYo) | | User Interface | ![UI](https://www.youtube.com/watch?v=tg-ZjNl3OCg) | | Crawl4AI Integration | ![Crawl4AI](https://www.youtube.com/watch?v=KAvuVUh0XU8) | | Chat Interface | ![Chat](https://www.youtube.com/watch?v=sw3uDqn2h1Y) | | Code Interface | ![Code](https://www.youtube.com/watch?v=_5jQayO-MQY) | | Mem0 Integration | ![Mem0](https://www.youtube.com/watch?v=KIGSgRxf1cY) | | Training | ![Training](https://www.youtube.com/watch?v=aLawE8kwCrI) | | Realtime Voice Interface | ![Realtime](https://www.youtube.com/watch?v=frRHfevTCSw) | | Call Interface | ![Call](https://www.youtube.com/watch?v=m1cwrUG2iAk) | | Reasoning Extract Agents | ![Reasoning Extract](https://www.youtube.com/watch?v=2PPamsADjJA) |

</details>

---

πŸ‘₯ Contributing

We welcome contributions! Fork the repo, create a branch, and submit a PR β†’ Contributing Guide.

---

❓ FAQ & Troubleshooting

<details> <summary><strong>ModuleNotFoundError: No module named 'praisonaiagents'</strong></summary>

Install the package: ``bash pip install praisonaiagents ``

</details>

<details> <summary><strong>API key not found / Authentication error</strong></summary>

Ensure your API key is set: ``bash export OPENAI_API_KEY=your_key_here ``

For other providers, see Models docs.

</details>

<details> <summary><strong>How do I use a local model (Ollama)?</strong></summary>

# Start Ollama server first
ollama serve

# Set environment variable
export OPENAI_BASE_URL=http://localhost:11434/v1

See Models docs for more details.

</details>

<details> <summary><strong>How do I persist conversations to a database?</strong></summary>

Use the db parameter: ```python from praisonaiagents import Agent, db

agent = Agent( name="Assistant", db=db(database_url="postgresql://localhost/mydb"), session_id="my-session" ) ```

See Persistence docs for supported databases.

</details>

<details> <summary><strong>How do I enable agent memory?</strong></summary>

from praisonaiagents import Agent

agent = Agent(
    name="Assistant",
    memory=True,  # Enables file-based memory (no extra deps!)
    user_id="user123"
)

See Memory docs for more options.

</details>

<details> <summary><strong>How do I run multiple agents together?</strong></summary>

from praisonaiagents import Agent, Agents

agent1 = Agent(instructions="Research topics")
agent2 = Agent(instructions="Summarize findings")
agents = Agents(agents=[agent1, agent2])
agents.start()

See Agents docs for more examples.

</details>

<details> <summary><strong>How do I use MCP tools?</strong></summary>

from praisonaiagents import Agent, MCP

agent = Agent(
    tools=MCP("npx @modelcontextprotocol/server-memory")
)

See MCP docs for all transport options.

</details>

Getting Help

---

<div align="center"> <p><strong>Made with ❀️ by the PraisonAI Team</strong></p> <p> <a href="https://docs.praison.ai">πŸ“š Documentation</a> β€’ <a href="https://github.com/MervinPraison/PraisonAI">GitHub</a> β€’ <a href="https://youtube.com/@MervinPraison">▢️ YouTube</a> β€’ <a href="https://x.com/MervinPraison">𝕏 X</a> β€’ <a href="https://linkedin.com/in/mervinpraison">πŸ’Ό LinkedIn</a> </p> </div>

Related MCP servers

Browse all β†’