MCPcopy Create free account
hub / github.com/astercloud/aster / consolidationExample

Function consolidationExample

examples/logic-memory/main.go:319–379  ·  view source on GitHub ↗

consolidationExample demonstrates memory consolidation

(ctx context.Context)

Source from the content-addressed store, hash-verified

317
318// consolidationExample demonstrates memory consolidation
319func consolidationExample(ctx context.Context) {
320 fmt.Println("--- Example 4: Memory Consolidation ---")
321
322 store := logic.NewInMemoryStore()
323
324 // Create some similar memories that should be consolidated
325 memories := []*logic.LogicMemory{
326 {
327 ID: "1",
328 Namespace: "user:diana",
329 Type: "preference",
330 Key: "tone_casual_1",
331 Description: "User prefers casual tone",
332 Provenance: &memory.MemoryProvenance{Confidence: 0.7},
333 },
334 {
335 ID: "2",
336 Namespace: "user:diana",
337 Type: "preference",
338 Key: "tone_casual_2",
339 Description: "User likes informal language",
340 Provenance: &memory.MemoryProvenance{Confidence: 0.8},
341 },
342 {
343 ID: "3",
344 Namespace: "user:diana",
345 Type: "behavior",
346 Key: "format_preference",
347 Description: "User prefers lists",
348 Provenance: &memory.MemoryProvenance{Confidence: 0.9},
349 },
350 }
351
352 // Save memories to store
353 for _, m := range memories {
354 _ = store.Save(ctx, m)
355 }
356
357 fmt.Printf("Created %d memories\n", len(memories))
358
359 // Create consolidation engine
360 engine := logic.NewConsolidationEngine(store, &logic.ConsolidationConfig{
361 SimilarityThreshold: 0.6,
362 MinGroupSize: 2,
363 MergeStrategy: logic.MergeStrategyKeepHighestConfidence,
364 })
365
366 // Run consolidation
367 result, err := engine.Consolidate(ctx, "user:diana")
368 if err != nil {
369 log.Fatalf("Failed to consolidate: %v", err)
370 }
371
372 fmt.Printf("Consolidation result:\n")
373 fmt.Printf(" - Total memories: %d\n", result.TotalMemories)
374 fmt.Printf(" - Groups merged: %d\n", result.MergedGroups)
375 fmt.Printf(" - Memories deleted: %d\n", result.DeletedMemories)
376 fmt.Printf(" - Duration: %v\n", result.EndTime.Sub(result.StartTime))

Callers 1

mainFunction · 0.85

Calls 5

SaveMethod · 0.95
ConsolidateMethod · 0.95
NewInMemoryStoreFunction · 0.92
NewConsolidationEngineFunction · 0.92
PrintfMethod · 0.80

Tested by

no test coverage detected