A software agent is a software module that runs more or less autonomously and that provides a specific service for human users or for other software.
Agents have many important applications in E-commerce.
For example, a software agent may run continuously searching the web for news stories on a certain topic or comparing prices posted online for a certain brand of automobile. A collection of relatively simple agents, perhaps running on many different machines, can often handle that which was formerly performed by large, monolithic software systems that were difficult to build and very hard to understand and modify. But while agent-based systems can be very powerful and intuitive, they have some problems of their own. For example, if one agent becomes overloaded or ceases to operate, the whole system could fail unless provision is made for backup and recovery. We will survey the communication protocols and infrastructure required by agent-based systems, along with some of the toolkits that make it easier to build robust agent systems.