Class: RCrewAI::Memory::BaseMemory
- Inherits:
-
Object
- Object
- RCrewAI::Memory::BaseMemory
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
|
#count ⇒ Object
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, metadata = {})
add(text, metadata)
end
|