Next: SodaBot's Motivation Up: Software Agents - Previous: Other Points of

Agency Defined

Clearly, there is an enormous variety in what people deem a software agent, and it is somewhat difficult to tell whether this is good or bad for the field. Nonetheless, having many enthusiastic researchers working on their various ``agents'' is probably to everyone's benefit, so we refrain from complaining too loudly.

However, we favor the following as a set of minimum criteria for establishing a program's ``agency:''

  1. Software agents engage in dialogs; we don't issue commands to agents, rather we have conversations with them. The communication patterns among agents can be quite complicated.

  2. Software agents are autonomous and intelligent; they respond to complex stimuli with sophisticated (and appropriate) behaviors.

  3. Software agents must be robust. Because they are autonomous and presumably doing something important, agents must be able to respond to unexpected changes in their computation world.

  4. Software agents are generally not time invariant - they have memory and change what they do over time. Agents can employ formal machine learning techniques, or they can more casually collect data while they operate. Personal assistants can learn patterns in their owners' behavior, and more generally, agents can spontaneously react to particular events in their computational world.

  5. Software agents are typically distributed across a network, so their behavior can have both local and global effects. Abstraction barriers can become confused if an agent is responsible for too many non-local events.


mhcoen@ai.mit.edu
Mon Oct 24 13:40:13 EDT 1994