Module: Legion::Extensions::Agentic::Learning::Procedural::Runners::ProceduralLearning
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb
Instance Method Summary collapse
- #add_skill_production(skill_id:, condition:, action:, domain:) ⇒ Object
- #autonomous_skills ⇒ Object
- #compiled_skills ⇒ Object
- #create_skill(name:, domain:) ⇒ Object
- #execute_production(production_id:, success:) ⇒ Object
- #most_practiced_skills(limit: 5) ⇒ Object
- #practice_skill(skill_id:, success:) ⇒ Object
- #procedural_learning_stats ⇒ Object
- #skill_assessment(skill_id:) ⇒ Object
- #update_procedural_learning ⇒ Object
Instance Method Details
#add_skill_production(skill_id:, condition:, action:, domain:) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 21 def add_skill_production(skill_id:, condition:, action:, domain:, **) result = engine.add_production( skill_id: skill_id, condition: condition, action: action, domain: domain ) return result unless result.is_a?(Helpers::Production) log.debug '[procedural_learning] production added ' \ "skill=#{skill_id[0..7]} condition=#{condition}" { success: true, production_id: result.id, skill_id: skill_id } end |
#autonomous_skills ⇒ Object
60 61 62 63 64 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 60 def autonomous_skills(**) skills = engine.autonomous_skills log.debug "[procedural_learning] autonomous count=#{skills.size}" { success: true, skills: skills.map(&:to_h), count: skills.size } end |
#compiled_skills ⇒ Object
54 55 56 57 58 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 54 def compiled_skills(**) skills = engine.compiled_skills log.debug "[procedural_learning] compiled count=#{skills.size}" { success: true, skills: skills.map(&:to_h), count: skills.size } end |
#create_skill(name:, domain:) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 13 def create_skill(name:, domain:, **) skill = engine.create_skill(name: name, domain: domain) log.debug "[procedural_learning] created skill=#{name} " \ "domain=#{domain} id=#{skill.id[0..7]}" { success: true, skill_id: skill.id, name: name, domain: domain, proficiency: skill.proficiency, stage: skill.stage } end |
#execute_production(production_id:, success:) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 41 def execute_production(production_id:, success:, **) result = engine.execute_production(production_id: production_id, success: success) log.debug "[procedural_learning] execute production=#{production_id[0..7]} " \ "success=#{success}" result end |
#most_practiced_skills(limit: 5) ⇒ Object
66 67 68 69 70 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 66 def most_practiced_skills(limit: 5, **) skills = engine.most_practiced(limit: limit) log.debug "[procedural_learning] most_practiced limit=#{limit}" { success: true, skills: skills.map(&:to_h), count: skills.size } end |
#practice_skill(skill_id:, success:) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 34 def practice_skill(skill_id:, success:, **) result = engine.practice_skill(skill_id: skill_id, success: success) log.debug "[procedural_learning] practice skill=#{skill_id[0..7]} " \ "success=#{success} proficiency=#{result[:proficiency]&.round(3)}" result end |
#procedural_learning_stats ⇒ Object
79 80 81 82 83 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 79 def procedural_learning_stats(**) stats = engine.to_h log.debug "[procedural_learning] stats total=#{stats[:total_skills]}" { success: true }.merge(stats) end |
#skill_assessment(skill_id:) ⇒ Object
48 49 50 51 52 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 48 def skill_assessment(skill_id:, **) result = engine.skill_assessment(skill_id: skill_id) log.debug "[procedural_learning] assessment skill=#{skill_id[0..7]}" result end |
#update_procedural_learning ⇒ Object
72 73 74 75 76 77 |
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 72 def update_procedural_learning(**) engine.decay_all pruned = engine.prune_stale log.debug "[procedural_learning] decay+prune pruned=#{pruned}" { success: true, pruned: pruned } end |