Document Type


Subject Area(s)

Computer Science and Engineering


Software agents are being deployed in increasing numbers to help users find and manage information, particularly in open environments such as the Internet. For the most part, they operate independently and are typically designed to be aware only of their users and the environment in which they perform their tasks. Thus, they fail to take advantage of each other's abilities or results. For example, a shopping agent might periodically access several online databases to find the best price for a music CD and then purchase it if the price falls below its user's threshold. Other agents might be tracking prices for the same CD, duplicating each other's work. Similarly, if your agent and an agent for the person in the next cubicle are both browsing the same Web site, two identical data streams arrive on your LAN, using twice the bandwidth actually needed. To be more effective, agents must be aware of each other; therefore, they must acquire models of each other. One way to do this is by exchanging messages. A second form of awareness involves the state of the agent's own environment, including characteristics of the computer on which it is executing and its network connection. A third involves self awareness: knowing its name, age, ontology, goals, areas of expertise and ignorance, and reasoning abilities. Finally, the agent should be aware of its physical environment. The article explains how software agents can develop awareness.