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
|