<!-- source: https://deepwiki.com/MervinPraison/PraisonAI/1-overview -->

# Overview

- .gitignore
- README.md
- src/praisonai/README.md

## Purpose and Scope

This document provides a high-level introduction to PraisonAI, covering its purpose, architecture, core packages, and deployment options. It serves as the entry point for understanding the system before diving into specific subsystems.

For detailed information about specific components:

- Package architecture and internal structure -> Architecture Overview
- Core concepts (Agents, Tasks, Tools, Memory, Knowledge) -> Key Concepts
- Installation procedures -> Installation

## What is PraisonAI

PraisonAI is a production-ready Multi-AI Agents framework with self-reflection, designed to create AI Agents to automate and solve problems ranging from simple tasks to complex challenges. It provides a low-code solution to streamline the building and management of multi-agent LLM systems, emphasizing:

1. Simplicity : Low-code interfaces (CLI, YAML) alongside programmatic Python/JavaScript SDKs
2. Customization : Support for 100+ LLM providers, multiple memory backends, and extensible tool systems
3. Human-Agent Collaboration : Built-in approval workflows, guardrails, policy engines, and interactive modes

The framework consists of two primary packages:

- praisonaiagents : Core agent framework library for programmatic usage
- praisonai : Application layer with CLI, deployment tools, UI systems, and framework integrations

**Key Features:**

- Performance : Fastest agent instantiation at 3.77 Î¼s (see Performance section)
- Self-Reflection : Built-in reflection capabilities for agent self-assessment
- Multi-Framework Support : Native PraisonAI execution plus AutoGen and CrewAI integration
- Protocol Support : MCP (Model Context Protocol) and A2A (Agent-to-Agent) protocols
- Safety Controls : Guardrails, human approval gates, policy engine, and hooks system

**Sources:** [README.md26](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L26-L26) [README.md128-140](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L128-L140) [src/praisonai/pyproject.toml2-4](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai/pyproject.toml#L2-L4) [src/praisonai-agents/pyproject.toml2-8](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai-agents/pyproject.toml#L2-L8)

## Repository Structure

```

```

**Sources:** [src/praisonai-agents/pyproject.toml92-94](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai-agents/pyproject.toml#L92-L94) [src/praisonai/pyproject.toml118-120](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai/pyproject.toml#L118-L120) [docker/README.md13-20](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/README.md?plain=1#L13-L20)

## Two-Package Architecture

PraisonAI uses a two-package design to separate concerns:

```

```

### Package Comparison

**Optional Dependencies:**

Both packages support modular installation via extras:

**praisonaiagents extras:**

- mcp : MCP protocol support (fastapi, websockets)
- memory : Memory backends (chromadb, litellm)
- knowledge : Knowledge/RAG systems (mem0ai, markitdown)
- api : API server mode (fastapi, uvicorn)

**praisonai extras:**

- ui : Web UI (chainlit, sqlalchemy)
- chat : Chat interface (chainlit, crawl4ai)
- api : REST API (flask, fastapi)
- crewai : CrewAI integration
- autogen : AutoGen integration

**Sources:** [src/praisonai-agents/pyproject.toml6-56](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai-agents/pyproject.toml#L6-L56) [src/praisonai/pyproject.toml2-103](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai/pyproject.toml#L2-L103) [README.md174-186](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L174-L186)

## Core System Components

```

```

**Sources:** [src/praisonai-agents/praisonaiagents/__init__.py1-200](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai-agents/praisonaiagents/__init__.py#L1-L200) Diagram 2 from high-level architecture

## Deployment Options

PraisonAI supports multiple deployment modes:

### Docker Services

```

```

**Sources:** [docker/Dockerfile.ui1-47](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/Dockerfile.ui#L1-L47) [docker/Dockerfile.chat1-47](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/Dockerfile.chat#L1-L47) [docker/Dockerfile1-47](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/Dockerfile#L1-L47) [docker/README.md6-20](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/README.md?plain=1#L6-L20)

### Cloud Deployment

The `CloudDeployer` class in [src/praisonai/praisonai/deploy.py6-186](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai/praisonai/deploy.py#L6-L186) automates deployment to Google Cloud Platform:

```

```

The deployment process:

1. Generates Dockerfile dynamically deploy.py 56-63
2. Creates api.py Flask application deploy.py 76-90
3. Builds Docker image for linux/amd64 platform deploy.py 140-141
4. Pushes to Google Artifact Registry deploy.py 144-145
5. Deploys to Cloud Run with environment variables deploy.py 146-149

**Sources:** [src/praisonai/praisonai/deploy.py6-186](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai/praisonai/deploy.py#L6-L186) [docker/README.md224-263](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/README.md?plain=1#L224-L263)

## CLI Entry Points

The CLI system provides 50+ commands organized into 11 categories:

```

```

**Entry Point Configuration:**

[src/praisonai/pyproject.toml24-26](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai/pyproject.toml#L24-L26)

```

```

**CLI Quick Reference Table:**

**Sources:** [README.md1531-1546](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L1531-L1546) [src/praisonai/pyproject.toml24-26](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai/pyproject.toml#L24-L26) Diagram 3 from architecture

## Integration Capabilities

### LLM Provider Support

PraisonAI integrates with 100+ LLM providers through LiteLLM abstraction:

**Environment Variables:**

Required environment variables (at least one):

```

```

Optional configuration:

```

```

**Sources:** [README.md196-216](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L196-L216) [README.md482-516](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L482-L516) [src/praisonai-agents/pyproject.toml9-18](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai-agents/pyproject.toml#L9-L18)

### Protocol Support

```

```

**Sources:** Diagram 5 from high-level architecture, [README.md347-357](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L347-L357)

## Version Information

Current stable versions:

**Version Files:**

- src/praisonai-agents/pyproject.toml 7
- src/praisonai/pyproject.toml 7

**Release Information:**

- Latest stable release: Check GitHub Releases
- PyPI downloads:

## Performance Characteristics

PraisonAI Agents is the **fastest AI agent framework** for agent instantiation according to benchmarks:

**Import Time Optimization:**

**Lazy Loading Architecture:**

The framework uses `_lazy.py` utilities with `__getattr__` mechanism to enable on-demand module loading:

- 186+ symbols mapped to modules in praisonaiagents/__init__.py
- Heavy modules ( crewai , langchain , autogen ) imported only when accessed
- Tool decorators and functions loaded on-demand via praisonaiagents/_lazy.py
- Configuration generators lazily imported in praisonaiagents/config/_lazy.py

**Benchmark Command:**

```

```

**Sources:** [README.md128-149](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/README.md?plain=1#L128-L149) [src/praisonai-agents/praisonaiagents/_lazy.py1-50](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/src/praisonai-agents/praisonaiagents/_lazy.py#L1-L50)

## Directory Structure

Standard directory layout:

```
~/.praison/               # Configuration root (PRAISON_CONFIG_DIR)
|-- database.sqlite       # Session database
|-- chainlit.md          # Chainlit configuration
|-- .chainlit/           # Chainlit runtime files
|-- config/              # Agent configurations
|-- memory/              # Memory storage (FileMemory)
|-- knowledge/           # RAG knowledge base
`-- rules/               # Global rule files

./.praison/              # Project-specific config
|-- workflows/           # Workflow definitions (YAML)
|-- rules/               # Project rule files
`-- docs/                # Generated documentation
```

**Sources:** [docker/README.md55-67](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/README.md?plain=1#L55-L67) [docker/Dockerfile.ui14](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/Dockerfile.ui#L14-L14) [docker/Dockerfile.ui26-30](https://github.com/MervinPraison/PraisonAI/blob/ab80807b/docker/Dockerfile.ui#L26-L30)
