Class MessageWindowChatMemory

java.lang.Object
org.springframework.ai.chat.memory.MessageWindowChatMemory
All Implemented Interfaces:
ChatMemory

public final class MessageWindowChatMemory extends Object implements ChatMemory
A chat memory implementation that maintains a message window of a specified size, ensuring that the total number of messages does not exceed the specified limit. When the number of messages exceeds the maximum size, older messages are evicted.

Messages of type SystemMessage are treated specially: if a new SystemMessage is added, all previous SystemMessage instances are removed from the memory. Also, if the total number of messages exceeds the limit, the SystemMessage messages are preserved while evicting other types of messages.

Since:
1.0.0
Author:
Thomas Vitale, Ilayaperumal Gopinathan
  • Method Details

    • add

      public void add(String conversationId, List<Message> messages)
      Description copied from interface: ChatMemory
      Save the specified messages in the chat memory for the specified conversation.
      Specified by:
      add in interface ChatMemory
    • get

      public List<Message> get(String conversationId)
      Description copied from interface: ChatMemory
      Get the messages in the chat memory for the specified conversation.
      Specified by:
      get in interface ChatMemory
    • clear

      public void clear(String conversationId)
      Description copied from interface: ChatMemory
      Clear the chat memory for the specified conversation.
      Specified by:
      clear in interface ChatMemory
    • builder

      public static MessageWindowChatMemory.Builder builder()