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

Function basicUsageExample

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

basicUsageExample demonstrates basic Logic Memory operations

(ctx context.Context)

Source from the content-addressed store, hash-verified

49
50// basicUsageExample demonstrates basic Logic Memory operations
51func basicUsageExample(ctx context.Context) {
52 fmt.Println("--- Example 1: Basic Usage ---")
53
54 // 1. Create a store (InMemory for this example)
55 store := logic.NewInMemoryStore()
56
57 // 2. Create the manager
58 manager, err := logic.NewManager(&logic.ManagerConfig{
59 Store: store,
60 ConfidenceBoost: 0.1, // Boost confidence by 10% on repeated patterns
61 })
62 if err != nil {
63 log.Fatalf("Failed to create manager: %v", err)
64 }
65 defer func() { _ = manager.Close() }()
66
67 // 3. Record a memory manually
68 mem := &logic.LogicMemory{
69 Namespace: "user:alice",
70 Scope: logic.ScopeUser,
71 Type: "preference",
72 Key: "writing_tone",
73 Value: "casual",
74 Description: "Alice prefers a casual, friendly writing tone",
75 Provenance: &memory.MemoryProvenance{
76 SourceType: memory.SourceUserInput,
77 Confidence: 0.8,
78 Sources: []string{"user_feedback:2024-01-15"},
79 },
80 }
81
82 err = manager.RecordMemory(ctx, mem)
83 if err != nil {
84 log.Fatalf("Failed to record memory: %v", err)
85 }
86 fmt.Printf("Recorded memory: %s = %v (confidence: %.0f%%)\n",
87 mem.Key, mem.Value, mem.Provenance.Confidence*100)
88
89 // 4. Retrieve memories
90 memories, err := manager.RetrieveMemories(ctx, "user:alice",
91 logic.WithTopK(5),
92 logic.WithMinConfidence(0.5),
93 )
94 if err != nil {
95 log.Fatalf("Failed to retrieve memories: %v", err)
96 }
97
98 fmt.Printf("Retrieved %d memories for user:alice\n", len(memories))
99 for _, m := range memories {
100 fmt.Printf(" - %s: %s (%.0f%% confidence)\n",
101 m.Key, m.Description, m.Provenance.Confidence*100)
102 }
103
104 // 5. Record the same memory again to boost confidence
105 mem2 := &logic.LogicMemory{
106 Namespace: "user:alice",
107 Scope: logic.ScopeUser,
108 Type: "preference",

Callers 1

mainFunction · 0.85

Calls 9

CloseMethod · 0.95
RecordMemoryMethod · 0.95
RetrieveMemoriesMethod · 0.95
GetMemoryMethod · 0.95
NewInMemoryStoreFunction · 0.92
NewManagerFunction · 0.92
WithTopKFunction · 0.92
WithMinConfidenceFunction · 0.92
PrintfMethod · 0.80

Tested by

no test coverage detected