Skip to main content

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.

Full documentation: docs.lexigram.dev

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


async with Application.boot(modules=[AppModule]) as app:
    # use app.container to resolve services
    ...

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

Download files

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

Source Distribution

lexigram_ai_session-0.1.5001.tar.gz (61.7 kB view details)

Uploaded Source

Built Distribution

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

lexigram_ai_session-0.1.5001-py3-none-any.whl (52.4 kB view details)

Uploaded Python 3

File details

Details for the file lexigram_ai_session-0.1.5001.tar.gz.

File metadata

File hashes

Hashes for lexigram_ai_session-0.1.5001.tar.gz
Algorithm Hash digest
SHA256 6751d4cbfc268572a51d96de895a1eee0018e6d319ce2951e8dd19d3eb08d2c3
MD5 59201bb4be508bedc02919079c216729
BLAKE2b-256 eb8dccf628baf91477e38adef37e0678859c38612bc55b0a58ec361a930ba3d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lexigram_ai_session-0.1.5001-py3-none-any.whl
Algorithm Hash digest
SHA256 4d271ca65fc59494e966f67a0b89738343419fc8d6aa73c0d0510b7f98ab038f
MD5 cebece467ce63bdcd6c37bdc2a93dadb
BLAKE2b-256 45dc279817f20bc88d4d2aceeeee54a9c549cd4f1b19d720e53b2ebf99473ebc

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.5008

1 file

0.1.5003

1 file

This release

0.1.5001 This release

2 files

0.1.3007

1 file

0.1.3006

1 file

0.1.3005

1 file

0.1.4

2 files

0.1.2

1 file

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page