Skip to main content

Databases Overview

PraisonAI supports 22 database backends across three categories.

Installation

pip install "praisonaiagents[tools]"

Conversation Stores (6)

Store conversation history and session data.
DatabaseBackend KeyDocker Command
PostgreSQLpostgresdocker run -d -p 5432:5432 -e POSTGRES_PASSWORD=pass postgres:16
MySQLmysqldocker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pass mysql:8
SQLitesqliteNo setup needed
SingleStoresinglestoreCloud service
SupabasesupabaseCloud service
SurrealDBsurrealdbdocker run -d -p 8000:8000 surrealdb/surrealdb

Knowledge Stores (10)

Vector databases for semantic search and RAG.
DatabaseBackend KeyDocker Command
Qdrantqdrantdocker run -d -p 6333:6333 qdrant/qdrant
ChromaDBchromaLocal file storage
PineconepineconeCloud service
Weaviateweaviatedocker run -d -p 8080:8080 semitechnologies/weaviate
LanceDBlancedbLocal file storage
Milvusmilvusdocker run -d -p 19530:19530 milvusdb/milvus
PGVectorpgvectorPostgreSQL + pgvector extension
Redis Vectorredisdocker run -d -p 6379:6379 redis/redis-stack
Cassandracassandradocker run -d -p 9042:9042 cassandra
ClickHouseclickhousedocker run -d -p 8123:8123 clickhouse/clickhouse-server

State Stores (6)

Key-value stores for session state and caching.
DatabaseBackend KeyDocker Command
Redisredisdocker run -d -p 6379:6379 redis:7
MongoDBmongodbdocker run -d -p 27017:27017 mongo
DynamoDBdynamodbAWS service
FirestorefirestoreGCP service
UpstashupstashCloud service
MemorymemoryIn-process (no persistence)

Quick Start

The simplest way to add persistence to your agent:
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

from praisonaiagents import Agent

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

Next Steps