Module: Legion::Extensions::Agentic::Learning::EpistemicCuriosity::Runners::EpistemicCuriosity
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb
Instance Method Summary collapse
- #create_gap(question:, domain:, gap_type: :factual, urgency: Helpers::Constants::DEFAULT_URGENCY) ⇒ Object
- #curiosity_report ⇒ Object
- #curiosity_status ⇒ Object
- #decay_gaps ⇒ Object
- #explore_gap(gap_id:) ⇒ Object
- #gaps_by_domain(domain:) ⇒ Object
- #gaps_by_type(gap_type:) ⇒ Object
- #most_urgent_gaps(limit: 5) ⇒ Object
- #resolve_gap(gap_id:) ⇒ Object
- #satisfy_gap(gap_id:, amount: 0.3) ⇒ Object
Instance Method Details
#create_gap(question:, domain:, gap_type: :factual, urgency: Helpers::Constants::DEFAULT_URGENCY) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 13 def create_gap(question:, domain:, gap_type: :factual, urgency: Helpers::Constants::DEFAULT_URGENCY, **) result = engine.create_gap(question: question, domain: domain, gap_type: gap_type, urgency: urgency) if result[:created] log.info "[epistemic_curiosity] gap created: id=#{result[:gap][:id]} domain=#{domain} type=#{gap_type}" else log.debug "[epistemic_curiosity] gap not created: reason=#{result[:reason]}" end result end |
#curiosity_report ⇒ Object
79 80 81 82 83 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 79 def curiosity_report(**) report = engine.curiosity_report log.debug "[epistemic_curiosity] report: open=#{report[:open_gaps]} debt=#{report[:information_debt]}" report end |
#curiosity_status ⇒ Object
85 86 87 88 89 90 91 92 93 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 85 def curiosity_status(**) { total_gaps: engine.open_gaps.size + engine.resolved_gaps.size, open_gaps: engine.open_gaps.size, resolved_gaps: engine.resolved_gaps.size, information_debt: engine.information_debt, exploration_efficiency: engine.exploration_efficiency } end |
#decay_gaps ⇒ Object
73 74 75 76 77 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 73 def decay_gaps(**) count = engine.decay_all log.debug "[epistemic_curiosity] decay cycle: gaps_updated=#{count}" { decayed: count } end |
#explore_gap(gap_id:) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 23 def explore_gap(gap_id:, **) result = engine.explore_gap(gap_id: gap_id) if result[:found] gap = result[:gap] log.debug "[epistemic_curiosity] explore: id=#{gap_id} explorations=#{gap[:explorations]} urgency=#{gap[:urgency]}" else log.debug "[epistemic_curiosity] explore: id=#{gap_id} not found" end result end |
#gaps_by_domain(domain:) ⇒ Object
61 62 63 64 65 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 61 def gaps_by_domain(domain:, **) gaps = engine.by_domain(domain) log.debug "[epistemic_curiosity] by_domain: domain=#{domain} count=#{gaps.size}" { gaps: gaps.map(&:to_h), count: gaps.size, domain: domain } end |
#gaps_by_type(gap_type:) ⇒ Object
67 68 69 70 71 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 67 def gaps_by_type(gap_type:, **) gaps = engine.by_type(gap_type) log.debug "[epistemic_curiosity] by_type: gap_type=#{gap_type} count=#{gaps.size}" { gaps: gaps.map(&:to_h), count: gaps.size, gap_type: gap_type } end |
#most_urgent_gaps(limit: 5) ⇒ Object
55 56 57 58 59 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 55 def most_urgent_gaps(limit: 5, **) gaps = engine.most_urgent(limit: limit) log.debug "[epistemic_curiosity] most_urgent: limit=#{limit} returned=#{gaps.size}" { gaps: gaps.map(&:to_h), count: gaps.size } end |
#resolve_gap(gap_id:) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 45 def resolve_gap(gap_id:, **) result = engine.resolve_gap(gap_id: gap_id) if result[:found] log.info "[epistemic_curiosity] resolved: id=#{gap_id}" else log.debug "[epistemic_curiosity] resolve: id=#{gap_id} not found" end result end |
#satisfy_gap(gap_id:, amount: 0.3) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/legion/extensions/agentic/learning/epistemic_curiosity/runners/epistemic_curiosity.rb', line 34 def satisfy_gap(gap_id:, amount: 0.3, **) result = engine.satisfy_gap(gap_id: gap_id, amount: amount) if result[:found] gap = result[:gap] log.debug "[epistemic_curiosity] satisfy: id=#{gap_id} satisfaction=#{gap[:satisfaction]} resolved=#{gap[:resolved]}" else log.debug "[epistemic_curiosity] satisfy: id=#{gap_id} not found" end result end |