Class HybridStrategy

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

public class HybridStrategy extends Object implements MemoryStrategy
Hybrid memory strategy combining sliding window and summarization.

This strategy uses a two-tier approach:

  1. Recent messages are kept in full (sliding window)
  2. Older messages are summarized (summary strategy)

How It Works

 Before: [M1, M2, M3, M4, M5, M6, M7, M8, M9, M10] (10 messages)

 After:  [Summary(M1-M4), M5, M6, M7, M8, M9, M10] (7 items)
         └─ Summarized ─┘  └── Recent (kept) ──┘
 

Strategy Phases

 1. Try to fit all messages
 2. If over budget:
    a. Keep recent N messages (recentWindowSize)
    b. Summarize messages before the window
    c. If still over budget, apply sliding window
 

Usage Example


 MemoryStrategy strategy = HybridStrategy.builder()
     .recentWindowSize(6)
     .summaryStrategy(SummaryStrategy.builder()
         .summarizer(llmClient)
         .build())
     .build();

 List<Map<String, Object>> optimized = strategy.apply(history, budget);