Software agents are computer programs capable of flexible, autonomous action. In their most complex form, agents may persist over time, are capable of timely internal context-dependent reaction to sensed events, plan and initiate unique series of actions to achieve stated goals, and communicate with other agents or people toward those ends. Intelligent software agents have some or all of the following capabilities: cooperation, proactivity, and adoptability. A true agent will be somewhat stubborn about achieving a goal - retrying after failures, attempting different activities, and so on - in a quite different manner than the typical computational object.
Cooperative agents communicate with other agents and act according to the results of that communication. Proactive agents initiate actions without user prompting. Adaptive agents, learning from past experience, change how they behave in given situations. Personal agents are proactive and serve individual users. Collaborative agents are proactive and cooperate with other agents. Adaptive personal agents are an ideal technology for finding a user's personalized information.
Some agents have the capability of learning from experience. For example, learning more about a particular user facilitates fulfilling his requirements. Personal agents can do both production and consumption of information. They can share their domain knowledge with other agents subject to the privacy limitations imposed on them and thereby contribute further to community knowledge. Collaborative filtering agents specialize in promoting interaction among community members. These agents benefit both senders and recipients because users can broadcast information to those who are interested in it without annoying other members. Contact-finding agents can locate members with distinct interests or competencies so that members can find experts in a given sub-domain or other members with interests similar to their own.
There are several personal software agents to help manage the increasing amount of electronic information available. As this sort of agents are capable of initiating tasks without any explicit user prompting, they are very good in undertaking tasks running in the background such as searching for information. The users can access the search results by various means, but coupling them with Web technology allows easy access from wherever the user view the site. Agents also can work on behalf of individual members, shielding them from excess information or protecting expert members from excessive requests, thereby maintaining membership benefits for those who might otherwise become overwhelmed.
The growth of interest in software agent technology throughout the 1990s has gone hand-in-hand with the growth of the Internet. Of the main reasons for agent technology's explosive growth in the late 1990s, the most important is undoubtedly the easy-to-use front end and powerful underlying infrastructure the Internet has provided for building agent applications. In addition to this technology push, the requirements needed for everyday use of the Web, such as the need to develop personalized, cooperative, proactive tools for information gathering and management, have generated a strong interest among researchers.
Today agents have become ubiquitous. Although the Internet remains the dominant application domain for deploying agents, many key ideas of the technology - such as transparent distributed processing, robust and open service provision and selection, and standardized content languages - have found their way into almost every aspect of modern computing and information technology. As the technology becomes even more widespread and better understood, it will become more popular.
Open standards such as CORBA and Jini have brought distributed service provision and selection to non-agent-based systems, whereas the others such as complex and dynamic coordination, higher level communication protocols, and structured, persistent action, are available only to agent-based systems.
The development of agents as a new software paradigm corresponds to the rise of object-oriented (OO) technologies. Today OO technology is being used across the whole spectrum of information technology. As Java programming language supports OO software development, it can be used in a great way for the growth of agent technology in the days to come. It is expected that the world is to be conceptualized as a collection of interacting autonomous agents.
There are several innovative and robust agents available such as Web-based, resource-bounded, information-gathering agent, mobile agents for domain name exchange (DNX) that help facilitate domain name trading, etc.
An increasing number of agent-based systems are being developed for complex dynamic environments, such as disaster rescue missions, monitoring and surveillance tasks, enterprise integration, and education and training environments. These agents, in such forms as planning/execution and user agents, must often operate in cyberspace to interface with relevant information sources, network facilities, and other agents.
As the number of agent-based systems increases, the reuse of specialized agents as building blocks for large-scale systems will become widespread. That is, future software systems will be constructed from ever-larger reusable components. The other important point here is to integrate agent components into cooperative information systems, network embedded systems and other systems.
NetChaser is an agent-based infrastructure for supporting personal mobility in accessing Internet information services. It exploits agents' capability to assist users by following them when they change working terminals.
JATLite is a tool that lets users quickly create new systems of typed-message agents, which can perform a distributed computation using typed messages of an agent communication language. This tool includes a message router that supports message buffering, allowing agents to fail and recover. Message buffering also supports a name and password mechanism that lets agents move freely between hosts.
Electronic auctions are emerging as one of the most successful e-commerce technologies. There are several successful commercial Internet auction sites such as eBay, Yahoo and uBid. But Nomad, a mobile agent system for an Internet-based auction house, is the next-generation Internet auction server, eAuctionHouse. With the Nomad system, mobile agents travel to the eAuctionHouse site and participate in auctions on the user's behalf.