consolidateMemories method
Runs full memory consolidation:
- Promote working memory items to episodic.
- Generalise strong episodic memories to semantic.
- Apply decay to episodic store.
Implementation
Future<void> consolidateMemories() async {
if (!_enableLongTermLearning) return;
_logger.info('Starting memory consolidation...');
// Step 1: Working → Episodic promotion
final workingItems = working.getAll();
for (final mem in workingItems) {
if (mem.strength >= 0.6) {
final promoted = Memory(
id: _uuid.v4(),
content: mem.content,
type: MemoryType.episodic,
strength: mem.strength * 0.9,
associatedConceptIds: mem.associatedConceptIds,
);
episodic.storeMemory(promoted);
}
}
// Step 2: Episodic → Semantic generalisation
final strongEpisodic = episodic.getStrongestMemories(50);
final newFacts =
semantic.generaliseFromEpisodes(strongEpisodic);
// Step 3: Episodic decay
episodic.applyDecay(halfLifeHours: 48.0);
_logger.info(
'Consolidation complete: '
'promoted ${workingItems.length} working items, '
'generated $newFacts semantic facts, '
'episodic count: ${episodic.count}');
}