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
|
|
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
|
|
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
|
|
Keyword-Only Parameters
| Name | Description |
|---|---|
|
**kwargs
|
Additional arguments for deserialization. |
Returns
| Type | Description |
|---|---|