Skip to content

strands.types.session

Data models for session management.

class SessionType(str, Enum)

Defined in: src/strands/types/session.py:17

Enumeration of session types.

As sessions are expanded to support new use cases like multi-agent patterns, new types will be added here.

def encode_bytes_values(obj: Any) -> Any

Defined in: src/strands/types/session.py:27

Recursively encode any bytes values in an object to base64.

Handles dictionaries, lists, and nested structures.

def decode_bytes_values(obj: Any) -> Any

Defined in: src/strands/types/session.py:42

Recursively decode any base64-encoded bytes values in an object.

Handles dictionaries, lists, and nested structures.

@dataclass
class SessionMessage()

Defined in: src/strands/types/session.py:58

Message within a SessionAgent.

Attributes:

  • message - Message content
  • message_id - Index of the message in the conversation history
  • redact_message - If the original message is redacted, this is the new content to use
  • created_at - ISO format timestamp for when this message was created
  • updated_at - ISO format timestamp for when this message was last updated
@classmethod
def from_message(cls, message: Message, index: int) -> "SessionMessage"

Defined in: src/strands/types/session.py:76

Convert from a Message, base64 encoding bytes values.

def to_message() -> Message

Defined in: src/strands/types/session.py:85

Convert SessionMessage back to a Message, decoding any bytes values.

If the message was redacted, return the redact content instead.

@classmethod
def from_dict(cls, env: dict[str, Any]) -> "SessionMessage"

Defined in: src/strands/types/session.py:96

Initialize a SessionMessage from a dictionary, ignoring keys that are not class parameters.

def to_dict() -> dict[str, Any]

Defined in: src/strands/types/session.py:101

Convert the SessionMessage to a dictionary representation.

@dataclass
class SessionAgent()

Defined in: src/strands/types/session.py:107

Agent that belongs to a Session.

Attributes:

  • agent_id - Unique id for the agent.
  • state - User managed state.
  • conversation_manager_state - State for conversation management.
  • created_at - Created at time.
  • updated_at - Updated at time.
@classmethod
def from_agent(cls, agent: "LocalAgent") -> "SessionAgent"

Defined in: src/strands/types/session.py:126

Convert a local agent to a SessionAgent.

@classmethod
def from_dict(cls, env: dict[str, Any]) -> "SessionAgent"

Defined in: src/strands/types/session.py:150

Initialize a SessionAgent from a dictionary, ignoring keys that are not class parameters.

def to_dict() -> dict[str, Any]

Defined in: src/strands/types/session.py:155

Convert the SessionAgent to a dictionary representation.

def initialize_internal_state(agent: "LocalAgent") -> None

Defined in: src/strands/types/session.py:159

Restore internal state for Agent instances.

@dataclass
class Session()

Defined in: src/strands/types/session.py:173

Session data model.

@classmethod
def from_dict(cls, env: dict[str, Any]) -> "Session"

Defined in: src/strands/types/session.py:182

Initialize a Session from a dictionary, ignoring keys that are not class parameters.

def to_dict() -> dict[str, Any]

Defined in: src/strands/types/session.py:186

Convert the Session to a dictionary representation.