Skip to content

strands.types.session

Data models for session management.

class SessionType(str, Enum)

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

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:28

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:43

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:59

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:77

Convert from a Message, base64 encoding bytes values.

def to_message() -> Message

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

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:97

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:102

Convert the SessionMessage to a dictionary representation.

@dataclass
class SessionAgent()

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

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: "Agent") -> "SessionAgent"

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

Convert an Agent to a SessionAgent.

@classmethod
def from_bidi_agent(cls, agent: "BidiAgent") -> "SessionAgent"

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

Convert a BidiAgent to a SessionAgent.

Arguments:

  • agent - BidiAgent to convert

Returns:

SessionAgent with empty conversation_manager_state (BidiAgent doesn’t use conversation manager)

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

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

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:170

Convert the SessionAgent to a dictionary representation.

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

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

Initialize internal state of agent.

def initialize_bidi_internal_state(agent: "BidiAgent") -> None

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

Initialize internal state of BidiAgent.

Arguments:

  • agent - BidiAgent to initialize internal state for
@dataclass
class Session()

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

Session data model.

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

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

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:205

Convert the Session to a dictionary representation.