# test_jasmine_routing.rb # Objetivo: Testar se a Orquestradora Jasmine roteia corretamente as intenções. assistant = Captain::Assistant.find_by(name: 'Jasmine (Hotel Prime)') unless assistant puts 'Assistente Jasmine não encontrada. Execute o seed primeiro.' exit end def simulate_chat(assistant, message) puts "\n--- CLIENTE: #{message}" # Usamos o AgentRunnerService (V2) que é o que suporta handoffs/sub-agentes runner = Captain::Assistant::AgentRunnerService.new(assistant: assistant) # Simulamos o histórico com apenas a última mensagem do usuário history = [{ role: 'user', content: message }] response = runner.generate_response(message_history: history) puts '--- JASMINE RESPONDE:' puts "DEBUG: #{response.inspect}" puts "Pensamento: #{response['reasoning']}" puts "Agente Atual: #{response['agent_name'] || 'Orquestrador'}" puts "Resposta: #{response['response']}" puts "Sentimento Detectado: #{response['sentiment']}" end # Casos de Teste simulate_chat(assistant, 'Oi, quanto custa a pernoite na suite Alexa?') simulate_chat(assistant, 'Quero reservar para sabado que vem às 20h.') simulate_chat(assistant, 'Tem suite livre agora? To chegando em 10 minutos.') simulate_chat(assistant, 'Pode me mandar fotos da suite com hidro?') simulate_chat(assistant, 'ESTOU MUITO IRRITADO COM A DEMORA!') # Teste de sentimento