The main goal of this paper is to provide an overview of the rapidly developing area of software agents serving as a reference point to a large body of literature and to present the key concepts of software agent technology, especially agent languages, tools and platforms. Special attention is paid on significant languages designed and developed in order to support implementation of agent-based systems and their applications in different domains. Afterwards, in the paper a number of useful and practically used tools and platforms that are available and support activities or phases of the process of agent-oriented software development are presented.