Class: RCrewAI::Memory::BaseMemory

Inherits:
Object
  • Object
show all
Defined in:
lib/rcrewai/memory/base_memory.rb

Overview

Shared behavior for the memory types: embed-on-write (when an embedder is present) and semantic recall with a lexical fallback when it isn't. Records are namespaced per (agent) scope + a type suffix so different memory types don't collide in a shared store.

Instance Method Summary collapse

Constructor Details

#initialize(scope:, embedder: nil, store: nil, limit: nil) ⇒ BaseMemory

Returns a new instance of BaseMemory.



14
15
16
17
18
19
20
# File 'lib/rcrewai/memory/base_memory.rb', line 14

def initialize(scope:, embedder: nil, store: nil, limit: nil)
  @scope = "#{scope}:#{type_suffix}"
  @embedder = embedder
  @store = store || InMemoryStore.new
  @limit = limit
  @seq = 0
end

Instance Method Details

#clear!Object



35
36
37
# File 'lib/rcrewai/memory/base_memory.rb', line 35

def clear!
  @store.delete(scope: @scope)
end

#countObject



31
32
33
# File 'lib/rcrewai/memory/base_memory.rb', line 31

def count
  @store.all(scope: @scope).length
end

#recall(query, limit: 3) ⇒ Object



26
27
28
29
# File 'lib/rcrewai/memory/base_memory.rb', line 26

def recall(query, limit: 3)
  records = search_records(query, limit)
  records.map { |r| format(r) }
end

#record(text, metadata = {}) ⇒ Object



22
23
24
# File 'lib/rcrewai/memory/base_memory.rb', line 22

def record(text,  = {})
  add(text, )
end