> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Databases Overview

> Supported database backends for PraisonAI

# Databases Overview

PraisonAI supports 22 database backends across three categories.

## Installation

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
pip install "praisonaiagents[tools]"
```

## Conversation Stores (6)

Store conversation history and session data.

| Database    | Backend Key   | Docker Command                                                     |
| ----------- | ------------- | ------------------------------------------------------------------ |
| PostgreSQL  | `postgres`    | `docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=pass postgres:16` |
| MySQL       | `mysql`       | `docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pass mysql:8`   |
| SQLite      | `sqlite`      | No setup needed                                                    |
| SingleStore | `singlestore` | Cloud service                                                      |
| Supabase    | `supabase`    | Cloud service                                                      |
| SurrealDB   | `surrealdb`   | `docker run -d -p 8000:8000 surrealdb/surrealdb`                   |

## Knowledge Stores (10)

Vector databases for semantic search and RAG.

| Database     | Backend Key  | Docker Command                                            |
| ------------ | ------------ | --------------------------------------------------------- |
| Qdrant       | `qdrant`     | `docker run -d -p 6333:6333 qdrant/qdrant`                |
| ChromaDB     | `chroma`     | Local file storage                                        |
| Pinecone     | `pinecone`   | Cloud service                                             |
| Weaviate     | `weaviate`   | `docker run -d -p 8080:8080 semitechnologies/weaviate`    |
| LanceDB      | `lancedb`    | Local file storage                                        |
| Milvus       | `milvus`     | `docker run -d -p 19530:19530 milvusdb/milvus`            |
| PGVector     | `pgvector`   | PostgreSQL + pgvector extension                           |
| Redis Vector | `redis`      | `docker run -d -p 6379:6379 redis/redis-stack`            |
| Cassandra    | `cassandra`  | `docker run -d -p 9042:9042 cassandra`                    |
| ClickHouse   | `clickhouse` | `docker run -d -p 8123:8123 clickhouse/clickhouse-server` |

## State Stores (6)

Key-value stores for session state and caching.

| Database  | Backend Key | Docker Command                       |
| --------- | ----------- | ------------------------------------ |
| Redis     | `redis`     | `docker run -d -p 6379:6379 redis:7` |
| MongoDB   | `mongodb`   | `docker run -d -p 27017:27017 mongo` |
| DynamoDB  | `dynamodb`  | AWS service                          |
| Firestore | `firestore` | GCP service                          |
| Upstash   | `upstash`   | Cloud service                        |
| Memory    | `memory`    | In-process (no persistence)          |

## Quick Start

The simplest way to add persistence to your agent:

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent

# Create agent with database persistence
agent = Agent(
    name="Assistant",
    instructions="You are a helpful assistant.",
    memory={
        "db": "postgresql://localhost/praisonai",
        "session_id": "my-session"
    }
)

response = agent.start("Hello!")
print(response)
```

## Backend Examples

<CodeGroup>
  ```python PostgreSQL theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
  from praisonaiagents import Agent

  agent = Agent(
      name="Bot",
      memory={"db": "postgresql://user:pass@localhost:5432/mydb"}
  )
  response = agent.start("Hello!")
  ```

  ```python SQLite theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
  from praisonaiagents import Agent

  agent = Agent(
      name="Bot",
      memory={"db": "conversations.db"}
  )
  response = agent.start("Hello!")
  ```

  ```python MySQL theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
  from praisonaiagents import Agent

  agent = Agent(
      name="Bot",
      memory={"db": "mysql://user:pass@localhost:3306/mydb"}
  )
  response = agent.start("Hello!")
  ```
</CodeGroup>

## Next Steps

* [PostgreSQL](/docs/databases/postgres) - Production conversation store
* [Qdrant](/docs/databases/qdrant) - Vector search
* [Redis](/docs/databases/redis) - State and caching
