Module: Legion::Extensions::Agentic::Memory::Offloading::Runners::CognitiveOffloading
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb
Instance Method Summary collapse
- #items_by_type(item_type:, engine: nil) ⇒ Object
- #items_in_store(store_id:, engine: nil) ⇒ Object
- #most_important_offloaded(limit: 10, engine: nil) ⇒ Object
- #offload_item(content:, item_type:, importance:, store_id:, engine: nil) ⇒ Object
- #offloading_status(engine: nil) ⇒ Object
- #register_store(name:, store_type:, engine: nil) ⇒ Object
- #report_retrieval_failure(item_id:, engine: nil) ⇒ Object
- #retrieve_item(item_id:, engine: nil) ⇒ Object
Instance Method Details
#items_by_type(item_type:, engine: nil) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 69 def items_by_type(item_type:, engine: nil, **) eng = engine || offloading_engine items = eng.items_by_type(item_type: item_type) log.debug("[cognitive_offloading] items_by_type type=#{item_type} count=#{items.size}") { success: true, items: items.map(&:to_h), count: items.size } end |
#items_in_store(store_id:, engine: nil) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 62 def items_in_store(store_id:, engine: nil, **) eng = engine || offloading_engine items = eng.items_in_store(store_id: store_id) log.debug("[cognitive_offloading] items_in_store store=#{store_id} count=#{items.size}") { success: true, items: items.map(&:to_h), count: items.size } end |
#most_important_offloaded(limit: 10, engine: nil) ⇒ Object
76 77 78 79 80 81 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 76 def most_important_offloaded(limit: 10, engine: nil, **) eng = engine || offloading_engine items = eng.most_important_offloaded(limit: limit) log.debug("[cognitive_offloading] most_important limit=#{limit} count=#{items.size}") { success: true, items: items.map(&:to_h), count: items.size } end |
#offload_item(content:, item_type:, importance:, store_id:, engine: nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 25 def offload_item(content:, item_type:, importance:, store_id:, engine: nil, **) eng = engine || offloading_engine item = eng.offload(content: content, item_type: item_type, importance: importance, store_id: store_id) if item log.info("[cognitive_offloading] offloaded item=#{item.id} type=#{item_type} importance=#{importance.round(2)} store=#{store_id}") { success: true, item: item.to_h } else log.warn("[cognitive_offloading] offload failed: limit reached or store not found store_id=#{store_id}") { success: false, reason: :offload_failed } end end |
#offloading_status(engine: nil) ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 83 def offloading_status(engine: nil, **) eng = engine || offloading_engine report = eng.offloading_report ratio = report[:offloading_ratio] log.debug("[cognitive_offloading] status items=#{report[:total_items]} stores=#{report[:total_stores]} ratio=#{ratio}") { success: true, report: report } end |
#register_store(name:, store_type:, engine: nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 13 def register_store(name:, store_type:, engine: nil, **) eng = engine || offloading_engine store = eng.register_store(name: name, store_type: store_type) if store log.info("[cognitive_offloading] registered store name=#{name} type=#{store_type} id=#{store.id}") { success: true, store: store.to_h } else log.warn('[cognitive_offloading] register_store failed: limit reached or invalid store_type') { success: false, reason: :limit_reached } end end |
#report_retrieval_failure(item_id:, engine: nil) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 49 def report_retrieval_failure(item_id:, engine: nil, **) eng = engine || offloading_engine item = eng.retrieve_failed(item_id: item_id) if item store = eng.stores[item.store_id] trust = store&.trust&.round(2) log.warn("[cognitive_offloading] retrieval failure item=#{item_id} store_trust=#{trust}") { success: true, item_id: item_id, store_trust: trust } else { success: false, reason: :not_found } end end |
#retrieve_item(item_id:, engine: nil) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb', line 37 def retrieve_item(item_id:, engine: nil, **) eng = engine || offloading_engine item = eng.retrieve(item_id: item_id) if item log.debug("[cognitive_offloading] retrieved item=#{item_id} count=#{item.retrieved_count}") { success: true, item: item.to_h } else log.warn("[cognitive_offloading] retrieve failed: item not found item_id=#{item_id}") { success: false, reason: :not_found } end end |