ChatHistory Class 
This class holds the history of chat messages from a chat conversation.
Note: the system_message is added to the messages as a ChatMessageContent instance with role=AuthorRole.SYSTEM, but updating it will not update the messages list.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Constructor
ChatHistory(*, messages: list[ChatMessageContent] = None, system_message: str | None = None)Parameters
| Name | Description | 
|---|---|
| messages 
				Required
			 | The messages to add to the chat history. | 
| system_message 
				Required
			 | A system message to add to the chat history, optional. if passed, it is added to the messages as a ChatMessageContent instance with role=AuthorRole.SYSTEM before any other messages. | 
Keyword-Only Parameters
| Name | Description | 
|---|---|
| messages 
				Required
			 |  | 
| system_message 
				Required
			 |  | 
Methods
| add_assistant_message | Add an assistant message to the chat history. | 
| add_developer_message | Add a system message to the chat history. | 
| add_message | Add a message to the history. This method accepts either a ChatMessageContent instance or a dictionary with the necessary information to construct a ChatMessageContent instance. | 
| add_system_message | Add a system message to the chat history. | 
| add_tool_message | Add a tool message to the chat history. | 
| add_user_message | Add a user message to the chat history. | 
| clear | Clear the chat history. | 
| extend | Extend the chat history with a list of messages. | 
| from_rendered_prompt | Create a ChatHistory instance from a rendered prompt. | 
| load_chat_history_from_file | Loads the ChatHistory from a file. | 
| remove_message | Remove a message from the history. | 
| replace | Replace the chat history with a list of messages. This calls clear() and then extend(messages=messages). | 
| restore_chat_history | Restores a ChatHistory instance from a JSON string. | 
| serialize | Serializes the ChatHistory instance to a JSON string. | 
| store_chat_history_to_file | Stores the serialized ChatHistory to a file. | 
| to_prompt | Return a string representation of the history. | 
add_assistant_message
Add an assistant message to the chat history.
add_assistant_message(content: str | list[KernelContent], **kwargs: Any) -> NoneParameters
| Name | Description | 
|---|---|
| content 
				Required
			 | The content of the assistant message, can be a string or a | 
| ChatMessageContent. 
				Required
			 | 
				list of
		 ChatMessageContent. (list* of *<xref:KernelContent instances that are turned into a single>) | 
| **kwargs 
				Required
			 | Additional keyword arguments. | 
add_developer_message
Add a system message to the chat history.
add_developer_message(content: str | list[KernelContent], **kwargs) -> NoneParameters
| Name | Description | 
|---|---|
| content 
				Required
			 | The content of the developer message, can be a string or a | 
| ChatMessageContent. 
				Required
			 | 
				list of
		 ChatMessageContent. (list* of *<xref:KernelContent instances that are turned into a single>) | 
| **kwargs 
				Required
			 | Additional keyword arguments. | 
add_message
Add a message to the history.
This method accepts either a ChatMessageContent instance or a dictionary with the necessary information to construct a ChatMessageContent instance.
add_message(message: ChatMessageContent | dict[str, Any], encoding: str | None = None, metadata: dict[str, Any] | None = None) -> NoneParameters
| Name | Description | 
|---|---|
| message 
				Required
			 | The message to add, either as a pre-constructed ChatMessageContent instance or a dictionary specifying 'role' and 'content'. | 
| encoding | 
				<xref:Optional>[str]
		 The encoding of the message. Required if 'message' is a dict. Default value: None | 
| metadata | Any metadata to attach to the message. Required if 'message' is a dict. Default value: None | 
add_system_message
Add a system message to the chat history.
add_system_message(content: str | list[KernelContent], **kwargs) -> NoneParameters
| Name | Description | 
|---|---|
| content 
				Required
			 | The content of the system message, can be a string or a | 
| ChatMessageContent. 
				Required
			 | 
				list of
		 ChatMessageContent. (list* of *<xref:KernelContent instances that are turned into a single>) | 
| **kwargs 
				Required
			 | Additional keyword arguments. | 
add_tool_message
Add a tool message to the chat history.
add_tool_message(content: str | list[KernelContent], **kwargs: Any) -> NoneParameters
| Name | Description | 
|---|---|
| content 
				Required
			 | The content of the tool message, can be a string or a | 
| ChatMessageContent. 
				Required
			 | 
				list of
		 ChatMessageContent. (list* of *<xref:KernelContent instances that are turned into a single>) | 
| **kwargs 
				Required
			 | Additional keyword arguments. | 
add_user_message
Add a user message to the chat history.
add_user_message(content: str | list[KernelContent], **kwargs: Any) -> NoneParameters
| Name | Description | 
|---|---|
| content 
				Required
			 | The content of the user message, can be a string or a | 
| ChatMessageContent. 
				Required
			 | 
				list of
		 ChatMessageContent. (list* of *<xref:KernelContent instances that are turned into a single>) | 
| **kwargs 
				Required
			 | Additional keyword arguments. | 
clear
Clear the chat history.
clear() -> Noneextend
Extend the chat history with a list of messages.
extend(messages: Iterable[ChatMessageContent]) -> NoneParameters
| Name | Description | 
|---|---|
| messages 
				Required
			 | The messages to add to the history. Can be a list of ChatMessageContent instances or a ChatHistory itself. | 
from_rendered_prompt
Create a ChatHistory instance from a rendered prompt.
from_rendered_prompt(rendered_prompt: str) -> _TParameters
| Name | Description | 
|---|---|
| rendered_prompt 
				Required
			 | The rendered prompt to convert to a ChatHistory instance. | 
Returns
| Type | Description | 
|---|---|
| The ChatHistory instance created from the rendered prompt. | 
load_chat_history_from_file
Loads the ChatHistory from a file.
load_chat_history_from_file(file_path: str) -> ChatHistoryParameters
| Name | Description | 
|---|---|
| file_path 
				Required
			 | The path to the file from which to load the ChatHistory. | 
Returns
| Type | Description | 
|---|---|
| The deserialized ChatHistory instance. | 
remove_message
Remove a message from the history.
remove_message(message: ChatMessageContent) -> boolParameters
| Name | Description | 
|---|---|
| message 
				Required
			 | 
				<xref:semantic_kernel.contents.chat_history.ChatMessageContent>
		 The message to remove. | 
Returns
| Type | Description | 
|---|---|
| True if the message was removed, False if the message was not found. | 
replace
Replace the chat history with a list of messages.
This calls clear() and then extend(messages=messages).
replace(messages: Iterable[ChatMessageContent]) -> NoneParameters
| Name | Description | 
|---|---|
| messages 
				Required
			 | The messages to add to the history. Can be a list of ChatMessageContent instances or a ChatHistory itself. | 
restore_chat_history
Restores a ChatHistory instance from a JSON string.
restore_chat_history(chat_history_json: str) -> _TParameters
| Name | Description | 
|---|---|
| chat_history_json 
				Required
			 | The JSON string to deserialize into a ChatHistory instance. | 
Returns
| Type | Description | 
|---|---|
| The deserialized ChatHistory instance. | 
Exceptions
| Type | Description | 
|---|---|
| If the JSON string is invalid or the deserialized data fails validation. | 
serialize
Serializes the ChatHistory instance to a JSON string.
serialize() -> strReturns
| Type | Description | 
|---|---|
| A JSON string representation of the ChatHistory instance. | 
Exceptions
| Type | Description | 
|---|---|
| If the ChatHistory instance cannot be serialized to JSON. | 
store_chat_history_to_file
Stores the serialized ChatHistory to a file.
store_chat_history_to_file(file_path: str) -> NoneParameters
| Name | Description | 
|---|---|
| file_path 
				Required
			 | The path to the file where the serialized data will be stored. | 
to_prompt
Return a string representation of the history.
to_prompt() -> strAttributes
messages
messages: list[ChatMessageContent]system_message
system_message: str | None