Next: Learning Agents for Up: Previous Work Previous: Learning and Adaptation

Software Agents

An agent is a system that tries to fulfill its goals in a complex, dynamic environment. It is situated in the environment and interacts through sensors and actuators. Autonomous adaptive agents operate totally autonomously and become better over time at achieving its goals. Agents that are situated in the ``cyberspace'' environment are known as ``software agents'' or ``interface agents'' [27]. Interface Agents are computer programs that automate repetitive tasks to provide assistance to a user dealing with a particular computer application.

The idea of employing agents to delegate computer-based tasks goes back to research by Negroponte [34] and Kay [22]. The research in this field is directed toward the ideal of agents that have high-level human-like communication skills and can accept high-level goals and reliably translate these to low level tasks.

Two approaches have been traditionally used for designing interface agents. The first approach is to make the end-user program the agent. An example is the Oval system [25] which allows users to program rules that dictate the agent's behavior. The advantage of this approach is that it gives the user total control. This makes it easy for the user to trust the rules, since she herself created them. However, the disadvantage is that the burden of the programming task is on the user, which may not be desirable. The other approach is to knowledge-engineer the agent with substantial background knowledge about the application and the user. For example, UCEgo [4] helps the user to use the Unix operating system by making various suggestions to correct user mistakes. The advantage is that the user no longer has to program the agent - the knowledge engineer will do that for her. However, the problem now is that the agent might not be customized to individual preferences. It might also be difficult for the user to trust the agent since she does not have a good idea of how it works and what its limitations are.

A third approach using machine learning techniques to overcome the shortcomings of the other two has been proposed by Maes and Kozierok [28]. The goal of this approach is to build Agents that acquire their competence and adapt to user requirements. In computer environments that involve a lot of repetitive tasks and where the individual differences outweigh the similarities, a machine learning approach has the potential to be very useful. The agent can learn by observing the user and imitating her, by reacting to feedback from the user and by learning from training examples provided by the user. A meeting scheduling agent using the above approach is described in [24][23]. The meeting scheduling agent uses memory-based reasoning and reinforcement learning to automate actions for the user. It can also use rules provided by the user and learn from examples of meeting in hypothetical situations. An electronic mail agent is described in [33][28].

A number of products are commercially sold as agents in the market. Magnet, from No Hands Software, can automate filing, scheduling and similar tasks for the user. ``Open Sesame!'', from Charles River Associates Inc., is a learning agent that monitors the keyboard and mouse watching for repeating patterns. BeyondMail, from Beyond Inc., can be taught to automate responses to incoming electronic mail.



Next: Learning Agents for Up: Previous Work Previous: Learning and Adaptation


MIT Media Lab - Autonomous Agents Group - agentmaster@media.mit.edu