Module: Legion::Extensions::Agentic::Social::MirrorSystem::Runners::Mirror
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb
Instance Method Summary collapse
- #imitate_behavior(action:, domain:, source_agent: nil) ⇒ Object
- #mirror_stats ⇒ Object
- #observations_for(agent_id:) ⇒ Object
- #observations_in(domain:) ⇒ Object
- #observe_behavior(agent_id:, action:, domain:, context: nil, outcome: nil) ⇒ Object
- #repertoire_status ⇒ Object
- #report_imitation_outcome(action:, domain:, success_flag:) ⇒ Object
- #strongest_mirrors(count: 5) ⇒ Object
- #update_mirror ⇒ Object
Instance Method Details
#imitate_behavior(action:, domain:, source_agent: nil) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 20 def imitate_behavior(action:, domain:, source_agent: nil, **) result = mirror_system.imitate(action: action, domain: domain, source_agent: source_agent) if result log.debug "[mirror] imitate: action=#{action} domain=#{domain} " \ "fidelity=#{result[:fidelity].round(3)}" { success: true, imitated: true, action: action, domain: domain, fidelity: result[:fidelity].round(4), source: result[:observation].agent_id, resonance: result[:observation].resonance.round(4) } else log.debug "[mirror] imitate: action=#{action} domain=#{domain} no_observation" { success: true, imitated: false, action: action, domain: domain } end end |
#mirror_stats ⇒ Object
84 85 86 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 84 def mirror_stats(**) { success: true, stats: mirror_system.to_h } end |
#observations_for(agent_id:) ⇒ Object
54 55 56 57 58 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 54 def observations_for(agent_id:, **) observations = mirror_system.observations_for_agent(agent_id) log.debug "[mirror] observations_for: agent=#{agent_id} count=#{observations.size}" { success: true, agent_id: agent_id, observations: observations.map(&:to_h), count: observations.size } end |
#observations_in(domain:) ⇒ Object
60 61 62 63 64 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 60 def observations_in(domain:, **) observations = mirror_system.observations_in_domain(domain) log.debug "[mirror] observations_in: domain=#{domain} count=#{observations.size}" { success: true, domain: domain, observations: observations.map(&:to_h), count: observations.size } end |
#observe_behavior(agent_id:, action:, domain:, context: nil, outcome: nil) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 13 def observe_behavior(agent_id:, action:, domain:, context: nil, outcome: nil, **) obs = mirror_system.observe(agent_id: agent_id, action: action, domain: domain, context: context, outcome: outcome) log.debug "[mirror] observe: agent=#{agent_id} action=#{action} domain=#{domain} " \ "resonance=#{obs.resonance.round(3)} count=#{obs.observation_count}" { success: true, observation: obs.to_h } end |
#repertoire_status ⇒ Object
66 67 68 69 70 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 66 def repertoire_status(**) rep = mirror_system.repertoire log.debug "[mirror] repertoire: size=#{rep.size}" { success: true, repertoire: rep.values, size: rep.size } end |
#report_imitation_outcome(action:, domain:, success_flag:) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 40 def report_imitation_outcome(action:, domain:, success_flag:, **) mirror_system.update_fidelity(action: action, domain: domain, success: success_flag) fidelity = mirror_system.fidelity_for(action, domain) log.debug "[mirror] outcome: action=#{action} domain=#{domain} " \ "success=#{success_flag} fidelity=#{fidelity.round(3)}" { success: true, action: action, domain: domain, fidelity: fidelity.round(4) } end |
#strongest_mirrors(count: 5) ⇒ Object
48 49 50 51 52 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 48 def strongest_mirrors(count: 5, **) mirrors = mirror_system.strongest_mirrors(count) log.debug "[mirror] strongest: count=#{mirrors.size}" { success: true, mirrors: mirrors.map(&:to_h), count: mirrors.size } end |
#update_mirror ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/legion/extensions/agentic/social/mirror_system/runners/mirror.rb', line 72 def update_mirror(**) mirror_system.decay_all log.debug "[mirror] tick: observations=#{mirror_system.observation_count} " \ "repertoire=#{mirror_system.repertoire_size} agents=#{mirror_system.mirrored_agents.size}" { success: true, observations: mirror_system.observation_count, repertoire: mirror_system.repertoire_size, agents: mirror_system.mirrored_agents.size } end |