The SOA enables the development of flexible large scale-applications in open environments by dynamically combining the web services. There exist many web services which exhibit similar functional characteristics. It is imperative to provide service consumers with facilities for selecting required web services according to their non-functional characteristics or QoS. An important issue arising from Web Service applications is how to conveniently, accurately and efficiently retrieve services from large-scale and expanding service repositories. The QoS based web service discovery play an essential role in SOA because most of the applications want to use services that accurately meet their requirements. This work proposes a web service discovery mechanism in which the functional and non-functional requirements are taken into account during service discovery. In this paper, we propose a novel approach for designing and developing a agent-based architecture and its QoS-based matching, ranking and selection algorithm for evaluating web services. The paper presents an optimal approach for discovering the most suitable web service according to the consumer’s functional and quality requirements.