Multi-agent systems are one of the most effective software design paradigms, and they are considered to be the most recent evolutionary step of object-oriented programming. Agents have several advantages when compared with objects. The most important among them is to be made of active code, which is capable of acting autonomously. Agents can be a suitable choice to exploit the Internet reality, since users can operate easily in a less compelling way and also reduce Internet connection time. Mobile agents thus make a PC an intelligent entity able to autonomously accomplish boring human tasks, starting from document search up to actual business negotiations. Mobile agents allow a human owner to decide if and when his intervention is suitable or required. The book describes the mobile agent principles of operation in detail. It starts from giving some definitions, and illustrates their main features such as mobility, communication, coordination, interoperability, fault tolerance and security. Comparisons of these features between most relevant multi-agent developing platforms are then discussed. The book ends with a discussion on a mobile agent application field, data mining and information retrieval namely, thus showing how mobile agents can help us to face these field related problems.