MATIH Platform is in active MVP development. Documentation reflects current implementation status.
14. Context Graph & Ontology
Memory System
Memory Consolidation

Memory Consolidation

The MemoryConsolidationService manages long-term memory by summarizing old memories using LLM-powered summarization, scoring memory importance for retention priority, and applying forgetting policies to manage storage growth. It follows patterns from the Zep/Graphiti temporal memory architecture.


Overview

As agents accumulate memories over time, the raw memory store grows unbounded. Consolidation compacts this knowledge by grouping related memories, summarizing them into concise facts, and discarding low-importance memories according to configurable forgetting policies.

Source: data-plane/ai-service/src/context_graph/services/memory_consolidation_service.py


Consolidation Strategies

StrategyDescriptionBest For
SEMANTICGroup memories by semantic similarityRelated facts about the same topic
TEMPORALGroup memories by time windowsSession-based consolidation
ENTITYGroup memories by linked entitiesEntity-focused knowledge
TYPEGroup memories by fact typeOrganizing preferences vs. learned facts
HYBRIDCombine multiple strategiesGeneral-purpose consolidation

Forgetting Policies

PolicyDescription
AGE_BASEDForget memories older than a threshold
IMPORTANCE_BASEDForget lowest importance memories first
ACCESS_BASEDForget least recently accessed memories
COMBINEDWeighted combination of age, importance, and access
ADAPTIVEDynamically adjust based on storage pressure

Importance Scoring

Memory importance is computed from multiple factors:

FactorDescriptionWeight
BASE_IMPORTANCEOriginal importance level0.30
ACCESS_FREQUENCYHow often the memory is accessed0.20
RECENCYHow recently the memory was created0.15
ENTITY_LINKSNumber of connected entities0.15
CONFIDENCEFact confidence score0.10
FEEDBACKUser feedback signals0.10

Consolidation Process

  1. Select -- Query memories eligible for consolidation based on age and status
  2. Group -- Cluster memories using the configured strategy
  3. Summarize -- Use an LLM to generate concise summaries for each group
  4. Score -- Compute importance scores for the new consolidated memories
  5. Replace -- Store consolidated memories and mark originals as archived
  6. Forget -- Remove memories below the importance threshold

Configuration

from context_graph.services.memory_consolidation_service import (
    ConsolidationConfig,
    ConsolidationStrategy,
    ForgettingPolicy,
)
 
config = ConsolidationConfig(
    strategy=ConsolidationStrategy.HYBRID,
    forgetting_policy=ForgettingPolicy.COMBINED,
    max_memory_age_days=90,
    importance_threshold=0.3,
    max_memories_per_consolidation=100,
    target_compression_ratio=0.3,
)

Integration

The consolidation service integrates with:

ComponentPurpose
TemporalMemoryStoreSource and destination for memory facts
MemoryRetrievalServiceProvides access frequency data for importance scoring
LLM ProviderGenerates summaries for memory groups
BiTemporalStoreAnalytics queries for growth metrics