Class SummaryStrategy

java.lang.Object
com.tnsai.memory.strategy.SummaryStrategy
All Implemented Interfaces:
MemoryStrategy

public class SummaryStrategy extends Object implements MemoryStrategy
Memory strategy that summarizes old messages to save tokens.

Instead of dropping old messages entirely, this strategy summarizes them into a condensed form, preserving important context while reducing token usage.

How It Works

 Before: [M1, M2, M3, M4, M5, M6, M7, M8] (8 messages, 4000 tokens)
 After:  [Summary(M1-M5), M6, M7, M8] (4 items, 2000 tokens)
 

Summary Modes

  • LLM: Uses an LLM to generate intelligent summaries
  • Extractive: Picks key sentences (faster, no API calls)
  • Custom: User-provided summarization function

Usage Example


 // With LLM summarization
 MemoryStrategy strategy = SummaryStrategy.builder()
     .summarizer(llmClient)
     .summaryPrefix("[Previous conversation summary]")
     .keepRecentMessages(4)
     .build();

 // With custom summarizer
 MemoryStrategy strategy = SummaryStrategy.builder()
     .summarizer(messages -> "Summary: " + messages.size() + " messages")
     .keepRecentMessages(4)
     .build();