Skip to main content
Session stores persist chat history and metadata — swap the default JSON backend or use hierarchical forks without changing your agent code.

Quick Start

from praisonaiagents import Agent
from praisonaiagents.session import get_default_session_store

store = get_default_session_store()
session_id = "user-42-chat"

agent = Agent(
    name="Assistant",
    memory={"session_id": session_id},
)
agent.start("Remember I like tea.")

store.add_message(session_id, "assistant", agent.start("What do I like?"))
Default files live at ~/.praisonai/sessions/{session_id}.json.

Core Exports

ExportPurpose
DefaultSessionStoreJSON-on-disk default backend
SessionMessage, SessionDataTyped message and session payloads
get_default_session_store()Process-wide store accessor
SessionStoreProtocolImplement for Redis, Postgres, S3 — see Session Protocol
HierarchicalSessionStore, get_hierarchical_session_store()Forks, snapshots, parent-child — see Session Hierarchy
IdentityResolverProtocol, FileIdentityResolverMap anonymous → known user IDs across sessions
SessionContext, set_session_context(), get_session_context()Task-local session context for async flows

Task-Local Context

from praisonaiagents.session import set_session_context, get_session_context

set_session_context(session_id="batch-job-1", user_id="operator")

ctx = get_session_context()
print(ctx.session_id)

Session Persistence

Agent-centric session_id usage

Session Hierarchy

Forking and snapshots