Next: A Stronger Notion
Up: What is an
Previous: What is an
Perhaps the most general way in which the term agent is used is to
denote a hardware or (more usually) software-based computer system
that enjoys the following properties:
- autonomy: agents operate without the direct intervention
of humans or others, and have some kind of control over their
actions and internal state;
- social ability: agents interact with other agents
(and possibly humans) via some kind of agent-communication language [Genesereth and Ketchpel, 1994];
- reactivity: agents perceive their environment,
(which may be the physical world, a user via a graphical user
interface, a collection of other agents, the INTERNET, or
perhaps all of these combined), and respond in a timely
fashion to changes that occur in it;
- pro-activeness:
agents do not simply act in response to their environment,
they are able to exhibit goal-directed behaviour by
taking the initiative.
A simple way of conceptualising an agent is thus as a kind of UNIX-like software process, that exhibits the properties listed
above. This weak notion of agency has found currency with a
surprisingly wide range of researchers. For example, in mainstream
computer science, the notion of an agent as a self-contained,
concurrently executing software process, that encapsulates some state
and is able to communicate with other agents via message passing, is
seen as a natural development of the object-based concurrent
programming paradigm [Agha et al., 1993][Agha, 1986].
This weak notion of agency is also that used in the emerging
discipline of agent-based software
engineering:
`[Agents] communicate with their peers by exchanging messages
in an expressive agent communication language.
While agents can be as simple as subroutines, typically they
are larger entities with some sort of persistent control.'
[Genesereth and Ketchpel, 1994]
A softbot (software robot) is a kind of agent:
`A softbot is an agent that interacts with a software
environment by issuing commands and interpreting the
environment's feedback. A softbot's effectors are commands
(e.g., UNIX shell commands such as mv or
compress) meant to change the external environment's
state. A softbot's sensors are commands (e.g., pwd or
ls in UNIX) meant to provide ...
information.'
[Etzioni et al., 1994]
Next: A Stronger Notion
Up: What is an
Previous: What is an