ChatMessageStore Class

An in-memory implementation of ChatMessageStoreProtocol that stores messages in a list.

This implementation provides a simple, list-based storage for chat messages with support for serialization and deserialization. It implements all the required methods of the ChatMessageStoreProtocol protocol.

The store maintains messages in memory and provides methods to serialize and deserialize the state for persistence purposes.

Create a ChatMessageStore for use in a thread.

Constructor

ChatMessageStore()

Parameters

Name Description
messages

The messages to store.

Default value: None

Examples


   from agent_framework import ChatMessageStore, ChatMessage

   # Create an empty store
   store = ChatMessageStore()

   # Add messages
   message = ChatMessage(role="user", content="Hello")
   await store.add_messages([message])

   # Retrieve messages
   messages = await store.list_messages()

   # Serialize for persistence
   state = await store.serialize()

   # Deserialize from saved state
   restored_store = await ChatMessageStore.deserialize(state)

Methods

__init__

Create a ChatMessageStore for use in a thread.

__new__
add_messages

Add messages to the store.

deserialize

Create a new ChatMessageStore instance from serialized state data.

list_messages

Get all messages from the store in chronological order.

serialize

Serialize the current store state for persistence.

update_from_state

Update the current ChatMessageStore instance from serialized state data.

__init__

Create a ChatMessageStore for use in a thread.

__init__(messages: Sequence[ChatMessage] | None = None)

Parameters

Name Description
messages

The messages to store.

Default value: None

__new__

__new__(**kwargs)

add_messages

Add messages to the store.

async add_messages(messages: Sequence[ChatMessage]) -> None

Parameters

Name Description
messages
Required

Sequence of ChatMessage objects to add to the store.

Returns

Type Description

deserialize

Create a new ChatMessageStore instance from serialized state data.

async classmethod deserialize(serialized_store_state: MutableMapping[str, Any], **kwargs: Any) -> TChatMessageStore

Parameters

Name Description
serialized_store_state
Required

Previously serialized state data containing messages.

kwargs
Required
Any

Keyword-Only Parameters

Name Description
**kwargs

Additional arguments for deserialization.

Returns

Type Description
<xref:agent_framework._threads.TChatMessageStore>

A new ChatMessageStore instance populated with messages from the serialized state.

list_messages

Get all messages from the store in chronological order.

async list_messages() -> list[ChatMessage]

Returns

Type Description

List of ChatMessage objects, ordered from oldest to newest.

serialize

Serialize the current store state for persistence.

async serialize(**kwargs: Any) -> dict[str, Any]

Parameters

Name Description
kwargs
Required
Any

Keyword-Only Parameters

Name Description
**kwargs

Additional arguments for serialization.

Returns

Type Description

Serialized state data that can be used with deserialize_state.

update_from_state

Update the current ChatMessageStore instance from serialized state data.

async update_from_state(serialized_store_state: MutableMapping[str, Any], **kwargs: Any) -> None

Parameters

Name Description
serialized_store_state
Required

Previously serialized state data containing messages.

kwargs
Required
Any

Keyword-Only Parameters

Name Description
**kwargs

Additional arguments for deserialization.

Returns

Type Description