Quick Start
1
Simple Usage
2
With Configuration
Hybrid setup — SQL for conversations, Redis for state:
How It Works
Storage Backend Options
The registry supports 12 conversation, 9 state, and 20 knowledge backends — configure each store by URL scheme.- Conversation
- State
- Knowledge
SQLite
Local file database for development and single-instance apps
PostgreSQL
Production SQL with JSONB and connection pooling
MySQL
Popular SQL database with broad tooling support
Redis
Fast in-memory state store
MongoDB
Flexible document store for complex state
ClickHouse
Analytics database for large-scale data
JSON Files
Simple file-based storage with cross-platform locking
The registry is the authoritative list, not the docs. Call
list_available_backends() at runtime to discover the current set:Backend Aliases
Configure with either name — the registry resolves aliases before instantiating the factory (PraisonAI PR #2669).PersistenceConfig(state_store="motor").validate() now succeeds and resolves to AsyncMongoDBStateStore. Unknown names still fail loudly, listing the current registry backends.
Configuration Options
Database backends require the
praisonai wrapper (pip install praisonai). The core SDK defines DbAdapter; implementations live in praisonai.persistence.Best Practices
Choose the right backend
Choose the right backend
SQLite for development; PostgreSQL or MySQL for multi-user production; Redis for fast state; JSON files for minimal dependencies.
Use meaningful session IDs
Use meaningful session IDs
Set
session_id="user-123" so conversations resume reliably across restarts.Read credentials from the environment
Read credentials from the environment
Never hardcode database URLs — use
os.getenv("PRAISON_CONVERSATION_URL").Separate stores by concern
Separate stores by concern
Conversation history, run traces, and vectors scale differently — configure each URL independently.
Related
Database Persistence (Advanced)
MemoryConfig, CLI commands, and Docker setup
Session Persistence
JSON file sessions without a database

