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
| Strategy | Description | Best For |
|---|---|---|
SEMANTIC | Group memories by semantic similarity | Related facts about the same topic |
TEMPORAL | Group memories by time windows | Session-based consolidation |
ENTITY | Group memories by linked entities | Entity-focused knowledge |
TYPE | Group memories by fact type | Organizing preferences vs. learned facts |
HYBRID | Combine multiple strategies | General-purpose consolidation |
Forgetting Policies
| Policy | Description |
|---|---|
AGE_BASED | Forget memories older than a threshold |
IMPORTANCE_BASED | Forget lowest importance memories first |
ACCESS_BASED | Forget least recently accessed memories |
COMBINED | Weighted combination of age, importance, and access |
ADAPTIVE | Dynamically adjust based on storage pressure |
Importance Scoring
Memory importance is computed from multiple factors:
| Factor | Description | Weight |
|---|---|---|
BASE_IMPORTANCE | Original importance level | 0.30 |
ACCESS_FREQUENCY | How often the memory is accessed | 0.20 |
RECENCY | How recently the memory was created | 0.15 |
ENTITY_LINKS | Number of connected entities | 0.15 |
CONFIDENCE | Fact confidence score | 0.10 |
FEEDBACK | User feedback signals | 0.10 |
Consolidation Process
- Select -- Query memories eligible for consolidation based on age and status
- Group -- Cluster memories using the configured strategy
- Summarize -- Use an LLM to generate concise summaries for each group
- Score -- Compute importance scores for the new consolidated memories
- Replace -- Store consolidated memories and mark originals as archived
- 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:
| Component | Purpose |
|---|---|
TemporalMemoryStore | Source and destination for memory facts |
MemoryRetrievalService | Provides access frequency data for importance scoring |
| LLM Provider | Generates summaries for memory groups |
BiTemporalStore | Analytics queries for growth metrics |