What's an Agent?

A software agent is a program that performs tasks for its user. While this may sound just like any program, agents have somewhat special properties, which the enormous amount of media hype (and subsequent misuse of the term) has clouded in recent years.

For a fairly complete description, you should really see my What's an Agent, Anyway? A Sociological Case Study [written in 1993], which discusses Julia, a MUD robot. It uses Julia to define by example a good software agent, and also talks quite a bit about the sociology behind user acceptance of agents; it's available in HTML (with some active links) or in Postscript or PDF (either one of which will look better).

If you want a superficial sketch of agents, consider that most definitions involve some notion of:

In addition, many agents also learn (This can sometimes lead to problems of trying to learn too much and hence running too slowly; for an example of approaches to ameliorate some of these problems, check out this paper (in Postscript or PDF), or this thesis, with included code.)

Typical applications of agents include information filtering and information discovery, although some are also used for entertainment. The Agents Group of the MIT Media Laboratory has built agents that do collaborative filtering of email or news filtering.

Lenny Foner