Appearance
Sessions API
FileSessionManager
python
from elsai.session import FileSessionManagerPersists sessions to the local filesystem.
python
FileSessionManager(
storage_dir="./sessions",
file_extension=".json",
)| Parameter | Default | Description |
|---|---|---|
storage_dir | "./sessions" | Directory to store session files |
file_extension | ".json" | File extension for session files |
S3SessionManager
python
from elsai.session import S3SessionManagerPersists sessions to Amazon S3.
python
S3SessionManager(
bucket_name="my-sessions-bucket",
prefix="",
region_name=None,
boto3_session=None,
)| Parameter | Description |
|---|---|
bucket_name | S3 bucket name |
prefix | Key prefix (e.g. "sessions/") |
region_name | AWS region |
boto3_session | Custom boto3 session |
RepositorySessionManager
python
from elsai.session import RepositorySessionManagerGeneric session manager backed by a SessionRepository.
python
RepositorySessionManager(repository=my_repository)SessionRepository
python
from elsai.session import SessionRepositoryAbstract base for custom storage backends:
python
class SessionRepository:
def save(self, session_id: str, data: dict) -> None: ...
def load(self, session_id: str) -> dict | None: ...
def delete(self, session_id: str) -> None: ...
def exists(self, session_id: str) -> bool: ...Snapshot
python
from elsai.types._snapshot import Snapshot, SnapshotPreset, SnapshotFieldAn in-memory snapshot of agent state.
SnapshotPreset
| Value | Included fields |
|---|---|
"session" | messages, state, conversation_manager_state, interrupt_state |
SnapshotField
Valid field names: "messages", "state", "conversation_manager_state", "interrupt_state", "system_prompt"
Taking a snapshot
python
snapshot = agent.take_snapshot(preset="session")
snapshot = agent.take_snapshot(include=["messages", "state"])
snapshot = agent.take_snapshot(preset="session", exclude=["interrupt_state"])
snapshot = agent.take_snapshot(preset="session", app_data={"version": "1.0"})Restoring from snapshot
python
agent.load_snapshot(snapshot)Serialising
python
import json
# Serialise
snapshot_dict = snapshot.model_dump()
json_str = json.dumps(snapshot_dict)
# Deserialise
from elsai.types._snapshot import Snapshot
snapshot = Snapshot(**json.loads(json_str))
agent.load_snapshot(snapshot)