Class UnifiedContextAssembler

java.lang.Object
com.tnsai.context.assembler.UnifiedContextAssembler

public final class UnifiedContextAssembler extends Object
Assembles LLM context from multiple sources in priority order with token budget enforcement.

UnifiedContextAssembler consolidates context from:

  1. System prompt (highest priority, never trimmed)
  2. Relevant memories from MemoryStore semantic search
  3. RAG context (retrieved document chunks)
  4. Decision precedents from DecisionTraceStore
  5. Conversation history from ManagedConversationMemory
  6. Tool definitions

If total tokens exceed the budget, lower-priority sections are trimmed first. The system prompt is always preserved in full.

Usage Example


 AssembledContext ctx = UnifiedContextAssembler.builder()
     .systemPrompt(systemPrompt)
     .memoryStore(memory)
     .memoryQuery("current user request")
     .contextManager(contextManager)
     .currentDecisionTrace(currentTrace)
     .tools(toolList)
     .tokenBudget(budget)
     .build()
     .assemble();

 // Use assembled context
 List<Map<String, Object>> messages = ctx.messages();
 int totalTokens = ctx.totalTokens();
 
Since:
0.3.0
  • Method Details

    • builder

      public static UnifiedContextAssembler.Builder builder()
    • assemble

      Assembles the full context respecting the token budget.

      Assembly order (priority high to low):

      1. System prompt - always included in full
      2. Memories - relevant memory search results
      3. RAG context - retrieved document chunks
      4. Decision precedents - similar past decisions
      5. Conversation history - trimmed from oldest if needed
      6. Tool definitions - appended to system prompt
      Returns:
      assembled context with messages and token accounting