Module: Legion::Gaia::Advisory

Extended by:
Logging::Helper
Defined in:
lib/legion/gaia/advisory.rb

Class Method Summary collapse

Class Method Details

.advise(caller:, conversation_id: nil, messages: nil) ⇒ Object

Fast in-memory advisory. NEVER makes LLM calls. Returns Hash with optional keys: system_prompt, routing_hint, context_window, tool_hint, suppress, valence



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/legion/gaia/advisory.rb', line 15

def advise(caller:, conversation_id: nil, messages: nil)
  log.unknown "advise(caller: #{caller}, conversation_id: #{conversation_id}, messages: #{messages}) "
  return nil unless Gaia.started?

  advisory = {}
  advisory[:valence] = Gaia.last_valences if Gaia.last_valences
  merge_tick_data!(advisory, Gaia.registry&.tick_host&.last_tick_result)
  merge_observer_data!(advisory, caller)
  result = advisory.compact
  if result.any?
    log.info("GAIA advisory generated conversation_id=#{conversation_id} keys=#{result.keys.join(',')}")
  end
  result
rescue StandardError => e
  handle_exception(e, level: :warn, operation: 'gaia.advisory.advise', conversation_id: conversation_id)
  nil
end