Skip to main content

AI session management for the Lexigram Framework — branching, checkpointing, multi-agent sessions

Project description

lexigram-ai-session

AI session management for the Lexigram Framework — branching, checkpointing, multi-agent sessions


Overview

Stateful conversation session management for the Lexigram AI framework. Provides full session lifecycle (create → turn → checkpoint → restore → close), pluggable persistence backends, timeline branching, and multi-agent group sessions. Zero-config usage starts with sensible defaults.

Install

uv add lexigram-ai-session

Quick Start

from lexigram import Application
from lexigram.di.module import Module, module

from lexigram.ai.session import SessionModule
from lexigram.ai.session.config import SessionConfig

@module(imports=[
    SessionModule.configure(
        SessionConfig(backend="in_memory"),
        enable_cleanup_scheduler=True,
    )
])
class AppModule(Module):
    pass

app = Application(modules=[AppModule])
if __name__ == "__main__":
    app.run()

Configuration

Zero-config usage: Call SessionModule.configure() with no arguments to use defaults.

Option 1 — YAML file

# application.yaml
ai_session:
  backend: "cache"
  session_ttl: 86400
  max_turns_per_session: 1000
  auto_checkpoint_interval: 10
  consolidate_on_close: true

Option 2 — Profiles + Environment Variables (recommended)

export LEX_AI_SESSION__BACKEND=cache
# Environment variables for each field

Option 3 — Python

from lexigram.ai.session.config import SessionConfig
from lexigram.ai.session import SessionModule

config = SessionConfig(
    backend="cache",
    session_ttl=86400,
    max_turns_per_session=1000,
    auto_checkpoint_interval=10,
)
SessionModule.configure(config)

Config reference

Field Default Env var Description
enabled True LEX_AI_SESSION__ENABLED Enable the AI session subsystem
backend "in_memory" LEX_AI_SESSION__BACKEND Persistence backend: in_memory, cache, database
session_ttl 86400 LEX_AI_SESSION__SESSION_TTL Session max age in seconds (0 = no expiry)
cleanup_interval_s 600 LEX_AI_SESSION__CLEANUP_INTERVAL_S How often expired sessions are swept
max_turns_per_session 1000 LEX_AI_SESSION__MAX_TURNS_PER_SESSION Hard turn cap before session is closed
max_sessions_per_user 100 LEX_AI_SESSION__MAX_SESSIONS_PER_USER Concurrent session limit per user
auto_checkpoint_interval 10 LEX_AI_SESSION__AUTO_CHECKPOINT_INTERVAL Checkpoint every N turns
max_checkpoints_per_session 50 LEX_AI_SESSION__MAX_CHECKPOINTS_PER_SESSION Retained checkpoints per session
max_branches_per_session 10 LEX_AI_SESSION__MAX_BRANCHES_PER_SESSION Max forked branches per session
max_agents_per_group 10 LEX_AI_SESSION__MAX_AGENTS_PER_GROUP Max agents in a group session
default_turn_strategy "round_robin" LEX_AI_SESSION__DEFAULT_TURN_STRATEGY Multi-agent turn strategy
consolidate_on_close True LEX_AI_SESSION__CONSOLIDATE_ON_CLOSE Trigger memory consolidation on close

Module Factory Methods

Method Description
SessionModule.configure(config, enable_cleanup_scheduler) Configure with explicit config
SessionModule.stub(config) Minimal config for testing

Key Features

  • Session lifecycle: Create, turn, checkpoint, restore, suspend, close with FSM-enforced status transitions
  • Timeline branching: BranchManager forks sessions into independent timelines that can be merged
  • Multi-agent groups: GroupSession coordinates multiple agents with configurable turn-taking strategies
  • Persistence backends: In-memory, Redis (cache), and database stores
  • Web middleware: SessionMiddleware resolves session ID from cookie or HTTP header
  • Analytics: Session analytics with turn counts, token totals, and cost tracking

Testing

async with Application.boot(modules=[SessionModule.stub()]) as app:
    # your test code
    ...

Key Source Files

File What it contains
src/lexigram/ai/session/module.py SessionModule.configure(), .stub()
src/lexigram/ai/session/config.py SessionConfig
src/lexigram/ai/session/manager/core.py SessionManagerImpl
src/lexigram/ai/session/branching/branch_manager.py BranchManager
src/lexigram/ai/session/multi_agent/group_session.py GroupSession
src/lexigram/ai/session/middleware/session_middleware.py SessionMiddleware
src/lexigram/ai/session/stores/ Persistence backends
src/lexigram/ai/session/di/provider.py SessionProvider

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lexigram_ai_session-0.1.1-py3-none-any.whl (50.6 kB view details)

Uploaded Python 3

File details

Details for the file lexigram_ai_session-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lexigram_ai_session-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9a49406f6ff8592f90a3a90f67a53a44d33608c2109ce9c4a5d6f0cbae7bf0b
MD5 dbe51c04e75d5e91a0d1130eaddaa8d7
BLAKE2b-256 20df274e593d0674011ecaf343f6a7292db30350958fe407ce3cd40b9fb9fe92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page