Skip to main content

Persistence Quickstart

Enable automatic conversation persistence with just 2 lines of code.

Installation

pip install "praisonai[tools]"

Docker Setup

# PostgreSQL
docker run -d --name praison-postgres -p 5432:5432 \
    -e POSTGRES_PASSWORD=praison123 \
    -e POSTGRES_DB=praisonai \
    postgres:16

# Qdrant (optional - for knowledge)
docker run -d --name praison-qdrant -p 6333:6333 qdrant/qdrant

# Redis (optional - for state)
docker run -d --name praison-redis -p 6379:6379 redis:7

Basic Usage

from praisonaiagents import Agent, db

# Create database adapter
db_instance = db(
    database_url="postgresql://postgres:praison123@localhost:5432/praisonai"
)

# Create agent with persistence
agent = Agent(
    name="Assistant",
    instructions="You are a helpful assistant.",
    db=db_instance,
    session_id="my-session-001"
)

# All chats are automatically persisted
response = agent.chat("My name is Alice")
print(response)

# Close when done
db_instance.close()

SQLite (Zero Config)

from praisonaiagents import Agent, db

db_instance = db(database_url="conversations.db")
agent = Agent(name="Assistant", db=db_instance, session_id="local-session")
agent.chat("Hello!")
db_instance.close()

Auto-Detect Backend

from praisonaiagents import db

# PostgreSQL
db_instance = db(database_url="postgresql://user:pass@localhost/db")

# SQLite
db_instance = db(database_url="mydata.db")

# MySQL
db_instance = db(database_url="mysql://user:pass@localhost/db")

Environment Variables

export PRAISON_CONVERSATION_URL="postgresql://localhost/mydb"
export OPENAI_API_KEY="your-key"
import os
from praisonaiagents import db

db_instance = db(database_url=os.getenv("PRAISON_CONVERSATION_URL"))

CLI Usage

# Validate connectivity
praisonai persistence doctor \
    --conversation-url "postgresql://postgres:praison123@localhost/praisonai"

# Run agent with persistence
praisonai persistence run \
    --session-id "cli-session" \
    --conversation-url "postgresql://postgres:praison123@localhost/praisonai" \
    "Hello, my name is Bob"

Next Steps