1 Goals
The tutorial is intended to provide information on agents and agent technology to educate more of the software development and CHI community on the impact and nature of current Agent technology. By providing a reasonable backdrop for agents, this tutorial hopes to allow the student to pursue additional reading material with a more objective eye for that which is real and that which is hyperbole (hysteria?).
2 Objectives
The tutorial student should leave with a general understanding of the structure and architectures of current agent technology, the terminology and common definitions in the field, and an understanding of some of the user interface issues in software agents.
2 TUTORIAL
1 What's an Agent?
The dictionary definition of agent turns out to be appropriate for this discussion:
agent \'a--j*nt\ n 1: something that produces or is capable of producing an effect : an active or efficient cause 2: one who acts for or in the place of another by authority from him.
In our discussion of software agents, both of the above definitions apply. Software agents, by definition, are active, independent components. Most agents are designed to act as or for the user to help execute some task or operation.
Each developer and researcher in the agents field adopts their own definition of an Agent. Leonard Foner defines an agent as a "program that performs tasks for a user" 1. While this is an accurate definition, it's not very useful. Pattie Maes has a more useful definition:
"A Software Agent is a computational system which has goals, sensors, and effectors, and decides autonomously which actions to take, and when"2
To my mind "Agent" is not a definition but a characteristic that software has to one degree or another. We can only define a software component as an agent by examining it's characteristics and behaviors. The first part of this tutorial is an examination of some of these characteristics and a