Skip to main content
Resume interrupted sessions to continue where you left off.
from praisonaiagents import Agent, Session

session = Session(session_id="task-123", persistence="sqlite")
agent = Agent(name="Worker", session=session)

agent.resume()
The user reopens the same session ID after a crash or deploy and the agent continues the in-flight task.

Quick Start

1

Simple Usage

Reopen a session by its ID and call resume() to continue the in-flight task.
from praisonaiagents import Agent, Session

session = Session(session_id="task-123", persistence="sqlite")
agent = Agent(name="Worker", session=session)
agent.resume()
2

With Configuration

Add automatic checkpoints so long tasks resume from the latest step, not the start.
from praisonaiagents import Agent, Session

session = Session(
    session_id="task-123",
    persistence="sqlite",
    checkpoint_interval=5,
)
agent = Agent(name="Worker", session=session)
agent.start("Process 1000 items...")

How It Works


Basic Resume

from praisonaiagents import Agent, Session

# Original session
session = Session(session_id="task-123", persistence="sqlite")
agent = Agent(name="Worker", session=session)
agent.start("Start a long task...")

# ... application crashes or restarts ...

# Resume session
session = Session(session_id="task-123", persistence="sqlite")
agent = Agent(name="Worker", session=session)
agent.resume()  # Continues from last checkpoint

With Checkpoints

from praisonaiagents import Agent, Session

session = Session(
    session_id="task-123",
    persistence="sqlite",
    checkpoint_interval=5  # Checkpoint every 5 steps
)

agent = Agent(name="Worker", session=session)

# Long-running task with automatic checkpoints
agent.start("Process 1000 items...")

Manual Checkpoints

from praisonaiagents import Agent, Session

session = Session(session_id="task-123", persistence="sqlite")
agent = Agent(name="Worker", session=session)

# Create checkpoint manually
session.checkpoint(
    state={"processed": 500, "remaining": 500},
    message="Halfway done"
)

# Resume from checkpoint
session.resume_from_checkpoint()

List Sessions

from praisonaiagents import Session

# List all sessions
sessions = Session.list_all(persistence="sqlite")
for s in sessions:
    print(f"{s.session_id}: {s.status}")

Best Practices

resume() finds prior state by session_id. Store the ID (env var, queue message, or DB row) so a restarted process reopens the right session.
Frequent checkpoints cost writes but lose less on failure. For step-heavy tasks, a small interval like checkpoint_interval=5 balances safety and overhead.
Call session.save_state({...}) after a meaningful unit of work so session.restore_state() reopens at a clean point when the same session_id resumes.
Session.list_all(persistence=...) shows every stored session and its status — useful for dashboards and cleanup jobs.

Session Module

Session API reference

Checkpoints

Checkpoint API