Skip to content

strands.session.session_repository

Session repository interface for agent session management.

class SessionRepository(ABC)

Defined in: src/strands/session/session_repository.py:12

Abstract repository for creating, reading, and updating Sessions, AgentSessions, and AgentMessages.

@abstractmethod
def create_session(session: Session, **kwargs: Any) -> Session

Defined in: src/strands/session/session_repository.py:16

Create a new Session.

@abstractmethod
def read_session(session_id: str, **kwargs: Any) -> Session | None

Defined in: src/strands/session/session_repository.py:20

Read a Session.

@abstractmethod
def create_agent(session_id: str, session_agent: SessionAgent,
**kwargs: Any) -> None

Defined in: src/strands/session/session_repository.py:24

Create a new Agent in a Session.

@abstractmethod
def read_agent(session_id: str, agent_id: str,
**kwargs: Any) -> SessionAgent | None

Defined in: src/strands/session/session_repository.py:28

Read an Agent.

@abstractmethod
def update_agent(session_id: str, session_agent: SessionAgent,
**kwargs: Any) -> None

Defined in: src/strands/session/session_repository.py:32

Update an Agent.

@abstractmethod
def create_message(session_id: str, agent_id: str,
session_message: SessionMessage, **kwargs: Any) -> None

Defined in: src/strands/session/session_repository.py:36

Create a new Message for the Agent.

@abstractmethod
def read_message(session_id: str, agent_id: str, message_id: int,
**kwargs: Any) -> SessionMessage | None

Defined in: src/strands/session/session_repository.py:40

Read a Message.

@abstractmethod
def update_message(session_id: str, agent_id: str,
session_message: SessionMessage, **kwargs: Any) -> None

Defined in: src/strands/session/session_repository.py:44

Update a Message.

A message is usually only updated when some content is redacted due to a guardrail.

@abstractmethod
def list_messages(session_id: str,
agent_id: str,
limit: int | None = None,
offset: int = 0,
**kwargs: Any) -> list[SessionMessage]

Defined in: src/strands/session/session_repository.py:51

List Messages from an Agent with pagination.

def create_multi_agent(session_id: str, multi_agent: "MultiAgentBase",
**kwargs: Any) -> None

Defined in: src/strands/session/session_repository.py:56

Create a new MultiAgent state for the Session.

def read_multi_agent(session_id: str, multi_agent_id: str,
**kwargs: Any) -> dict[str, Any] | None

Defined in: src/strands/session/session_repository.py:60

Read the MultiAgent state for the Session.

def update_multi_agent(session_id: str, multi_agent: "MultiAgentBase",
**kwargs: Any) -> None

Defined in: src/strands/session/session_repository.py:64

Update the MultiAgent state for the Session.