Module: Legion::Extensions::Agentic::Social::SocialLearning::Runners::SocialLearning
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb
Instance Method Summary collapse
- #best_model_agents(limit: 5) ⇒ Object
- #domain_models(domain:) ⇒ Object
- #observe_agent_behavior(model_id:, action:, domain:, outcome:, context: {}) ⇒ Object
- #register_model_agent(agent_id:, domain:, prestige: nil) ⇒ Object
- #reinforce_reproduction(behavior_id:, outcome:) ⇒ Object
- #reproduce_observed_behavior(behavior_id:) ⇒ Object
- #reproducible_behaviors(domain: nil) ⇒ Object
- #retained_behaviors(domain: nil) ⇒ Object
- #social_learning_stats ⇒ Object
- #update_social_learning ⇒ Object
Instance Method Details
#best_model_agents(limit: 5) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 68 def best_model_agents(limit: 5, **) lim = limit.to_i log.debug "[social_learning] best_model_agents limit=#{lim}" models = engine.best_models(limit: lim) { success: true, models: models.map(&:to_h), count: models.size } end |
#domain_models(domain:) ⇒ Object
75 76 77 78 79 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 75 def domain_models(domain:, **) log.debug "[social_learning] domain_models domain=#{domain}" models = engine.by_domain(domain: domain) { success: true, models: models.map(&:to_h), count: models.size } end |
#observe_agent_behavior(model_id:, action:, domain:, outcome:, context: {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 20 def observe_agent_behavior(model_id:, action:, domain:, outcome:, context: {}, **) log.debug "[social_learning] observe model=#{model_id} action=#{action} domain=#{domain} outcome=#{outcome}" behavior = engine.observe_behavior( model_id: model_id, action: action, domain: domain, outcome: outcome, context: context ) if behavior { success: true, behavior: behavior.to_h } else { success: false, reason: 'model not found or below attention threshold' } end end |
#register_model_agent(agent_id:, domain:, prestige: nil) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 13 def register_model_agent(agent_id:, domain:, prestige: nil, **) init_prestige = prestige || Helpers::Constants::DEFAULT_PRESTIGE log.debug "[social_learning] register_model agent=#{agent_id} domain=#{domain} prestige=#{init_prestige}" model = engine.register_model(agent_id: agent_id, domain: domain, prestige: init_prestige) { success: true, model: model.to_h } end |
#reinforce_reproduction(behavior_id:, outcome:) ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 58 def reinforce_reproduction(behavior_id:, outcome:, **) log.debug "[social_learning] reinforce behavior_id=#{behavior_id} outcome=#{outcome}" result = engine.reinforce_reproduction(behavior_id: behavior_id, outcome: outcome) if result { success: true }.merge(result) else { success: false, reason: 'behavior or model not found' } end end |
#reproduce_observed_behavior(behavior_id:) ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 48 def reproduce_observed_behavior(behavior_id:, **) log.debug "[social_learning] reproduce behavior_id=#{behavior_id}" behavior = engine.reproduce_behavior(behavior_id: behavior_id) if behavior { success: true, behavior: behavior.to_h } else { success: false, reason: 'behavior not found or retention too low' } end end |
#reproducible_behaviors(domain: nil) ⇒ Object
42 43 44 45 46 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 42 def reproducible_behaviors(domain: nil, **) log.debug "[social_learning] reproducible_behaviors domain=#{domain.inspect}" behaviors = engine.reproducible_behaviors(domain: domain) { success: true, behaviors: behaviors.map(&:to_h), count: behaviors.size } end |
#retained_behaviors(domain: nil) ⇒ Object
36 37 38 39 40 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 36 def retained_behaviors(domain: nil, **) log.debug "[social_learning] retained_behaviors domain=#{domain.inspect}" behaviors = engine.retained_behaviors(domain: domain) { success: true, behaviors: behaviors.map(&:to_h), count: behaviors.size } end |
#social_learning_stats ⇒ Object
89 90 91 92 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 89 def (**) log.debug '[social_learning] social_learning_stats' { success: true }.merge(engine.to_h) end |
#update_social_learning ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/legion/extensions/agentic/social/social_learning/runners/social_learning.rb', line 81 def (**) log.debug '[social_learning] update_social_learning decay+prune cycle' engine.decay_all engine.prune_forgotten stats = engine.to_h { success: true }.merge(stats) end |