Module: Legion::Extensions::Agentic::Memory::Trace::BatchDecay

Defined in:
lib/legion/extensions/agentic/memory/trace/batch_decay.rb

Constant Summary collapse

DEFAULTS =
{
  rate:           0.999,
  min_confidence: 0.01,
  interval_hours: 1
}.freeze

Class Method Summary collapse

Class Method Details

.apply!(agent_id: nil, rate: DEFAULTS[:rate], min_confidence: DEFAULTS[:min_confidence]) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/legion/extensions/agentic/memory/trace/batch_decay.rb', line 16

def apply!(agent_id: nil, rate: DEFAULTS[:rate], min_confidence: DEFAULTS[:min_confidence])
  return { updated: 0, evicted: 0 } unless db_ready?

  conn = Legion::Data.connection
  ds = conn[PersistentStore::TABLE]
  ds = ds.where(agent_id: agent_id) if agent_id

  updated = ds.where { confidence > min_confidence }
              .update(confidence: Sequel[:confidence] * rate)

  evicted = ds.where { confidence <= min_confidence }.delete

  { updated: updated, evicted: evicted }
end