Module: Legion::Extensions::Agentic::Memory::Transfer::Runners::TransferLearning

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb

Instance Method Summary collapse

Instance Method Details

#attempt_transfer(from_domain:, to_domain:) ⇒ Object



19
20
21
22
23
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 19

def attempt_transfer(from_domain:, to_domain:, **)
  result = transfer_engine.attempt_transfer(from_domain: from_domain, to_domain: to_domain)
  log.info("[transfer_learning] transfer: from=#{from_domain} to=#{to_domain} type=#{result[:type]} effect=#{result[:effect]}")
  result
end

#get_domain(domain:) ⇒ Object



55
56
57
58
59
60
61
62
63
64
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 55

def get_domain(domain:, **)
  entry = transfer_engine.domains[domain]
  if entry
    log.debug("[transfer_learning] get_domain: domain=#{domain} proficiency=#{entry.proficiency}")
    { found: true, domain: entry.to_h }
  else
    log.debug("[transfer_learning] get_domain: domain=#{domain} not found")
    { found: false, domain: domain }
  end
end

#interference_risks(target_domain:) ⇒ Object



43
44
45
46
47
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 43

def interference_risks(target_domain:, **)
  risks = transfer_engine.interference_risks(target_domain: target_domain)
  log.debug("[transfer_learning] interference_risks: target=#{target_domain} risks=#{risks.size}")
  { target_domain: target_domain, risks: risks, count: risks.size }
end

#learn_domain(domain:, amount:) ⇒ Object



13
14
15
16
17
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 13

def learn_domain(domain:, amount:, **)
  result = transfer_engine.learn_domain(domain: domain, amount: amount)
  log.info("[transfer_learning] learn: domain=#{domain} amount=#{amount} proficiency=#{result[:proficiency]}")
  result
end

#most_transferable(target_domain:, limit: 5) ⇒ Object



37
38
39
40
41
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 37

def most_transferable(target_domain:, limit: 5, **)
  candidates = transfer_engine.most_transferable(target_domain: target_domain, limit: limit)
  log.debug("[transfer_learning] most_transferable: target=#{target_domain} found=#{candidates.size}")
  { target_domain: target_domain, candidates: candidates, count: candidates.size }
end

#set_similarity(domain_a:, domain_b:, similarity:) ⇒ Object



25
26
27
28
29
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 25

def set_similarity(domain_a:, domain_b:, similarity:, **)
  sim = transfer_engine.set_similarity(domain_a: domain_a, domain_b: domain_b, similarity: similarity)
  log.debug("[transfer_learning] similarity set: #{domain_a}<->#{domain_b} similarity=#{sim}")
  { domain_a: domain_a, domain_b: domain_b, similarity: sim }
end

#transfer_effectiveness(from_domain:, to_domain:) ⇒ Object



31
32
33
34
35
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 31

def transfer_effectiveness(from_domain:, to_domain:, **)
  result = transfer_engine.transfer_effectiveness(from_domain: from_domain, to_domain: to_domain)
  log.debug("[transfer_learning] effectiveness: from=#{from_domain} to=#{to_domain} type=#{result[:type]}")
  result
end

#transfer_reportObject



49
50
51
52
53
# File 'lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb', line 49

def transfer_report(**)
  report = transfer_engine.transfer_report
  log.debug("[transfer_learning] report: domains=#{report[:domain_count]} transfers=#{report[:total_transfers]}")
  report
end