[an error occurred while processing this directive]

2 Software Agents: History and the Context of this Paper

Software agents have evolved from multi-agent systems (MAS), which in turn form one of three broad areas which fall under DAI, the other two being Distributed Problem Solving (DPS) and Parallel AI (PAI). Hence, as with multi-agent systems, they inherit many of DAIís motivations, goals and potential benefits. For example, thanks to distributed computing, software agents inherit DAIís potential benefits including modularity, speed (due to parallelism) and reliability (due to redundancy). It also inherits those due to AI such as operation at the knowledge level, easier maintenance, reusability and platform independence (Huhns & Singh, 1994).

The concept of an agent, in the context of this paper, can be traced back to the early days of research into DAI in the 1970s - indeed, to Carl Hewittís concurrent Actor model (Hewitt, 1977). In this model, Hewitt proposed the concept of a self-contained, interactive and concurrently-executing object which he termed ëactorí. This object had some encapsulated internal state and could respond to messages from other similar objects: an actor

"is a computational agent which has a mail address and a behaviour. Actors communicate by message-passing and carry out their actions concurrently" (Hewitt, 1977, p. 131).

Broadly, for the purposes of this paper, we split the research on agents into two main strands: the first spanning the period 1977 to the current day, and the second from 1990 to the current day too. Strand 1 work on smart agents, which begun in the late 1970s and all through the 1980s to the current day, concentrated mainly on deliberative-type agents with symbolic internal models; later in this paper, we type these as collaborative agents. A deliberative agent is

"one that possesses an explicitly represented, symbolic model of the world, and in which decisions (for example about what actions to perform) are made via symbolic reasoning" (Wooldridge, 1995, p. 42).

Initially, strand 1 work concentrated on macro issues such as the interaction and communication between agents, the decomposition and distribution of tasks, coordination and cooperation, conflict resolution via negotiation, etc. Their goal was to specify, analyse, design and integrate systems comprising of multiple collaborative agents. These resulted in classic systems and work such as the actor model (Hewitt, 1977), MACE (Gasser et al., 1987), DVMT (Lesser & Corkill, 1981), MICE (Durfee & Montgomery, 1989), MCS (Doran et al., 1990), the contract network coordination approach (Smith, 1980; Davis & Smith, 1983), MAS/DAI planning and game theories (Rosenschein, 1985; Zlotkin & Rosenschein, 1989; Rosenschein & Zlotkin, 1994). These ëmacroí aspects of agents as Gasser (1991) terms them, emphasises the society of agents over individual agents, while micro issues relate specifically to the latter. In any case, such issues are well summarised in Chaib-draa et al. (1992), Bond & Gasser (1988) and Gasser & Huhns (1989). More recent work under this strand include TÆMS (Decker & Lesser, 1993; Decker, 1995) DRESUN (Carver et al., 1991; Carver & Lesser, 1995), VDT (Levitt et al., 1994), ARCHON (Wittig, 1992; Jennings et al., 1995); Note that game theoretic work should arguably not be classed as a macro approach; it may, indeed, lie more towards the micro end of the spectrum.

In addition to the macro issues, strand 1 work has also been characterised by research and development into theoretical, architectural and language issues. In fact, such works evolve naturally, though not exclusively, from the investigation of the macro issues. This is well summarised in Wooldridge & Jennings (1995a), and in the edited collections of papers: Wooldridge & Jennings (1995b) and Wooldridge et al. (1996).

However, since 1990 or thereabouts, there has evidently been another distinct strand to the research and development work on software agents - the range of agent types being investigated is now much broader. Thus, this paper is complementary to Wooldridge & Jenningsí (1995a) by placing emphasis on this strand although, naturally, there is some overlap, i.e. it overviews the broadening typology of agents being investigated by agent researchers. Some cynics may argue that this strand arises because everybody is now calling everything an agent, thereby resulting, inevitably, in such broadness. We sympathise with this viewpoint; indeed, it is a key motivation for this paper - to overview the extensive work that goes under the ëagentí banner. Essentially, our point is that in addition to investigating macro issues and others such as theories, architectures, languages, there has also been an unmistakable trend towards the investigation of a broader range of agent types or classes. The context of this paper is summarised in Table 1 below.
Strand Emphasis Some Major references
Strand 1Macro issues



Theories, architectures & languages

Bond & Gasser (1988)

Gasser & Huhns (1989)

Chaib-draa et al. (1992)

Gasser et al. (1995)

Wooldridge & Jennings (1995a, 1995b)

Wooldridge et al. (1996)

Strand 2Diversification in the types of agents being investigated This paper covers this!

Table 1 - Brief History of Software Agents and the Context of this Paper
[an error occurred while processing this directive]