1 Applications of Intelligent Agents: Queen Mary & Westfield College University of London
1 Applications of Intelligent Agents: Queen Mary & Westfield College University of London
1.1 Introduction
Intelligent agents are a new paradigm for developing software applications. More
than this, agent-based computing has been hailed as ‘the next significant break-
through in software development’ (Sargent, 1992), and ‘the new revolution in
software’ (Ovum, 1994). Currently, agents are the focus of intense interest on the
part of many sub-fields of computer science and artificial intelligence. Agents are
being used in an increasingly wide variety of applications, ranging from com-
paratively small systems such as email filters to large, open, complex, mission
critical systems such as air traffic control. At first sight, it may appear that such
extremely different types of system can have little in common. And yet this is not
the case: in both, the key abstraction used is that of an agent. Our aim in this article
is to help the reader to understand why agent technology is seen as a funda-
mentally important new tool for building such a wide array of systems. More
precisely, our aims are five-fold:
• to introduce the reader to the concept of an agent and agent-based systems,
• to help the reader to recognize the domain characteristics that indicate the
appropriateness of an agent-based solution,
• to introduce the main application areas in which agent technology has been
successfully deployed to date,
• to identify the main obstacles that lie in the way of the agent system developer,
and finally
• to provide a guide to the remainder of this book.
We begin, in this section, by introducing some basic concepts (such as, perhaps
most importantly, the notion of an agent). In Section 1.2, we give some general
guidelines on the types of domain for which agent technology is appropriate. In
Section 1.3, we survey the key application domains for intelligent agents. In
Section 1.4, we discuss some issues in agent system development, and finally, in
Section 1.5, we outline the structure of this book.
Before we can discuss the development of agent-based systems in detail, we
have to describe what we mean by such terms as ‘agent’ and ‘agent-based system’.
Unfortunately, we immediately run into difficulties, as some key concepts in agent-
based computing lack universally accepted definitions. In particular, there is no real
agreement even on the core question of exactly what an agent is (see Franklin and
Graesser (1996) for a discussion). However, we believe that most researchers
4 Jennings and Wooldridge
• social: agents should be able to interact, when they deem appropriate, with
other artificial agents and humans in order to complete their own problem
solving and to help others with their activities.
Hereafter, when we use the term ‘agent’, it should be understood that we are
using it as an abbreviation for ‘intelligent agent’. Other researchers emphasize
different aspects of agency (including, for example, mobility or adaptability).
Naturally, some agents may have additional characteristics, and for certain types of
applications, some attributes will be more important than others. However, we
believe that it is the presence of all four attributes in a single software entity that
provides the power of the agent paradigm and which distinguishes agent systems
from related software paradigms – such as object-oriented systems, distributed sys-
ems, and expert systems (see Wooldridge (1997) for a more detailed discussion).
By an agent-based system, we mean one in which the key abstraction used is
that of an agent. In principle, an agent-based system might be conceptualized in
terms of agents, but implemented without any software structures corresponding to
agents at all. We can again draw a parallel with object-oriented software, where it is
entirely possible to design a system in terms of objects, but to implement it without
the use of an object-oriented software environment. But this would at best be
unusual, and at worst, counterproductive. A similar situation exists with agent
technology; we therefore expect an agent-based system to be both designed and
implemented in terms of agents. A number of software tools exist that allow a user
to implement software systems as agents, and as societies of cooperating agents.
Note that an agent-based system may contain any non-zero number of agents.
The multi-agent case – where a system is designed and implemented as several
interacting agents, is both more general and significantly more complex than the
single-agent case. However, there are a number of situations where the single-agent
case is appropriate. A good example, as we shall see later in this chapter, is the
class of systems known as expert assistants, wherein an agent acts as an expert
assistant to a user attempting to use a computer to carry out some task.
1.2.1.3 Ubiquity
Despite the many innovations in human-computer interface design over the past
two decades, and the wide availability of powerful window-based user interfaces,
computer-naïve users still find most software difficult to use. One reason for this is
that the user of a software product typically has to describe each and every step that
needs to be performed to solve a problem, down to the smallest level of detail. If
the power of current software applications is ever to be fully utilized by such users,
then a fundamental rethink is needed about the nature of the interaction between
computer and user. It must become an equal partnership – the machine should not
just act as a dumb receptor of task descriptions, but should cooperate with the user
to achieve their goal. As Negroponte wrote, ‘the future of computing will be 100%
driven by delegating to, rather than manipulating computers’ (Negroponte, 1995).
To deliver such functionality, software applications must be:
• autonomous: given a vague and imprecise specification, it must determine how
the problem is best solved and then solve it, without constant guidance from the
user,
• proactive: it should not wait to be told what to do next, rather it should make
suggestions to the user,
8 Jennings and Wooldridge
• responsive: it should take account of changing user needs and changes in the
task environment, and
• adaptive: it should come to know user’s preferences and tailor interactions to
reflect these.
In other words, it needs to behave as an intelligent agent. These considerations
give rise to the idea of an agent acting as an ‘expert assistant’ with respect to some
application, knowledgeable about both the application itself and the user, and
capable of acting with the user in order to achieve the user’s goals. We discuss
some prototypical expert assistants in Section 1.3.
In cases like this, agents provide a natural way of modeling the problem: real-
world entities and their interactions can be directly mapped into autonomous
problem solving agents with their own resources and expertise, and which are able
to interact with others in order to get tasks done. Also, in the case of distributed
data sources, (as in sensor networks (Lesser and Corkill, 1983) and seismic
monitoring (Mason, 1995)), the use of agents means that significant amounts of
processing can be carried out at the data source, with only high-level information
exchanged. This alleviates the need to send large amounts of raw data to a distant
central processor, thus making more efficient use of communications bandwidth.
1.3.1.2 Manufacturing
Parunak (1987) describes the YAMS (Yet Another Manufacturing System), which
applies the well-known Contract Net protocol (Smith, 1980) to manufacturing
control. The basic problem can be described as follows. A manufacturing enterprise
is modeled as a hierarchy of workcells. There will, for example, be workcells for
milling, lathing, grinding, painting, and so on. These workcells will be further
grouped into flexible manufacturing systems (FMS), each of which will provide a
functionality such as assembly, paint spraying, buffering of products, and so on. A
collection of such FMSs is grouped into a factory. A single company or
organization may have many different factories, though these factories may
12 Jennings and Wooldridge
Consumer agents in the system are responsible for representing the user’s
interests. They maintain models of users, and use these models to assist them,
by proactively providing information they require, and shielding them from
information that is not of interest. ZDL thus acts both as an information filter
and an information gatherer.
require a service from another agent enter into a negotiation for that service to
obtain a mutually acceptable price, time, and degree of quality. Successful
negotiations result in binding agreements between agents. This agent-based
approach offers a number of advantages over more typical workflow solutions to
this problem. The proactive nature of the agents means services can be scheduled in
a just-in-time fashion (rather than pre-specified from the beginning), and the
responsive nature of the agents means that service exceptions can be detected and
handled in a flexible manner. The current version of the system has been tested on a
British Telecom (BT) business process involving some 200 activities and nine
departments and there are plans to move toward full scale field trials.
1.3.4 Entertainment
The leisure industry is often not taken seriously by the computer science com-
munity. Leisure applications are frequently seen as somehow peripheral to the
‘serious’ applications of computers. And yet leisure applications such as computer
games can be extremely lucrative – consider the number of copies of id Software’s
‘Quake’ sold since its release in 1996. Agents have an obvious role in computer
games, interactive theater, and related virtual reality applications: such systems tend
to be full of semi-autonomous animated characters, which can naturally be
implemented as agents.
1.3.4.1 Games
Wavish et al. (1996) describe several applications of agent technology to com-puter
games. For example, they have developed a version of the popular Tetris computer
game, where a user must try to make a wall out of irregularly shaped falling blocks.
The agent in the game takes the part of the user, who must control where the blocks
fall. Trying to program this agent using traditional symbolic AI techniques would
require going through a knowledge elicitation stage, repre-senting knowledge about
the game and the role of the user in terms of symbolic data structures such as rules,
and so on. This approach would be entirely un-realistic for a game like Tetris,
which has hard real-time constraints. Wavish and colleagues thus use an alternative
reactive agent model called RTA (Real Time Able). In this approach, agents are
Applications of Intelligent Agents 17
1.3.5 Comments
At a certain level of abstraction, many of the above applications share common
features. Individual agents are designed and built to enact particular roles. These
agents are autonomous, goal directed entities, which are responsive to their
environment. They must typically interact with other agents in order to carry out
their role. Such interactions are a natural consequence of the inevitable inter-
dependencies which exist between the agents, their environment, and their design
objectives. As the agents are autonomous, the interactions are usually fairly
sophisticated – involving cooperation, coordination and negotiation. Following on
from this view, two important observations can be made about developing agent-
based applications:
• The detailed problem solving actions of the agent can only be determined at run
time. Individual behavior is regulated by a complex interplay between the
agent’s internal state and its external influences (its environment and the other
agents). Thus the precise ‘trajectory’ that an agent will follow can only be
discovered by running the agent in its environment.
• Because the behavior of individual agents is not uniquely determined at design
time, the behavior of the system as a whole can also only emerge at run time.
These points have some obvious (and perhaps alarming) implications for the
use of an agent-based approach in safety-critical application domains such as air
traffic control, where it is essential that the system satisfies its specification. We
comment on this issue in Section 1.4.
18 Jennings and Wooldridge
The above applications also illustrate that there are several different dimensions
along which we can analyze agent-based systems:
• Sophistication of the Agents. Agents can be seen as performing three broad
types of behavior. At the simplest level, there is the ‘gopher’ agent, which
carries out comparatively simple tasks, based on well-defined, pre-specified
rules and assumptions. The next level of sophistication involves ‘service
performing’ agents, which carry out a high-level, but still well-defined task at
the request of a user (e.g., arrange a meeting or find an appropriate flight).
Finally, there are the predictive/proactive agents, capable of flexible auto-
nomous behavior in the way we discussed above. Simple examples are agents
that volunteer information or services to a user, without being asked, whenever
it is deemed to be appropriate.
• Role of the Agents. Agents play many types of role. For example, in several of
the industrial and commercial applications discussed above, the role of the
agent system is to provide a decision support functionality. The agents act
autonomously and proactively to gather information and to make recommen-
dations, but a human operator makes the ultimate decisions. In contrast, in the
entertainment domain (for example), the agent completely automates a problem
solving role – it is thus delegated a particular activity and is entirely respon-
sible for carrying it out.
• Granularity of View. In some of the applications discussed above, the signi-
ficant unit of analysis and design is the individual agent, whereas in other
applications it is the society of agents that is key. The decision about whether to
adopt a single-agent or multi-agent approach is generally determined by the
domain, and is similar in nature to decisions about whether monolithic,
centralized solutions or distributed, decentralized solutions are appropriate.
Single-agent systems are in a sense much simpler than multi-agent systems,
since they do not require the designer to deal with issues such as cooperation,
negotiation, and so on.
currently being used to develop and implement agent systems and discuss, in detail,
a wide range of agent applications built using this technology.
Georgeff and Rao present results related to the design and implementation of
rational software agents. In this work, they address one of the fundamental
problems of agent research – the gap between theory and practice. This gap is
currently large and both sides of the field plough along in isolation. However, in
their work, the authors use a formal framework to specify and implement their
agents. The particular class of agents they address are Belief-Desire-Intention
(BDI) agents (also see the contribution by Burmeister et al.). Thus, they sketch the
theoretical foundation of their agents and how they are realized in a practical agent
implementation. They then discuss how this implementation was used to build
large-scale, real-world agent applications in the domains of air traffic management,
business process management, and air combat modeling.
Burmeister et al. discuss how agent based techniques can be applied in the
domains of traffic management and manufacturing. They present their core
technology for realizing their agent applications: COSY, a modular agent archi-
tecture based on the concepts of behaviors, resources, and intentions (see also the
contribution by Georgeff and Rao); and DASEDIS, a development environment for
building such agents (cf. the development environment of Haugeneder and Steiner).
The application of this architecture to two traffic applications (traffic management
and freight logistics) and two manufacturing applications (flexible manufacturing
and plant control) is then discussed.
Haugeneder and Steiner present a conceptual design and specification of an
agent architecture and a multi-agent language (called MAIL) for implementing
single agents and cooperative interaction among them. This design is then refined
into a multi-agent environment for constructing cooperative applications based on
this model (cf. the DASEDIS framework of Burmeister et al.). Finally, the
architecture and the environment are demonstrated on two sample applications in
the areas of group scheduling and road traffic management (see also the
contribution of Burmeister et al.).
Weihmayer and Velthuijsen provide an overview of the role of agent systems in
the domain of telecommunications. They identify the types of telecommuni-cations
applications for which agent solutions have been constructed. These include
process support (see also contributions by Huhns and Singh and Janca), network
control, service management (see also Plu’s contribution), network management,
transmission switching, and network design. They then discuss the justification for
the intense interest on the part of telecommunications organizations in agent
technology, present a number of detailed system case studies, and, finally, offer a
balanced analysis of the future of agents in telecommunications.
Huhns and Singh describe how a set of autonomous agents can cooperate to
provide coherent management of transaction workflows. In particular, they
concentrate on the problem of how agents with diverse and heterogeneous
Applications of Intelligent Agents 25
information models can interoperate with one another (cf. the approach advocated
by Kearney). Their approach to such interoperation is predicated on the fact that the
agents maintain models of their information and resources. These models are then
mapped into a common ontology to ensure coherent semantics among the
cooperating group. Their approach is exemplified by considering a multi-agent
system for telecommunication service provisioning.
Plu presents an agent-based view of how organizations can design and build
computer infrastructures that provide sophisticated information and electronic
commerce services to many customers. Using the ISO standard architecture for
open distributed processing, he shows, with the aid of scenarios, the central role
that agent technology can play at many of the model’s distinct levels. He also
discusses issues related to mobile agents – identifying when they are appropriate
and the types of advantages they confer over their static counterparts.
Sycara et al. present the design and implementation of a series of agents for the
tasks of filtering, evaluating, and integrating information on the Internet. Their
agents team up, on demand, depending on the user, the task, and the situation, to
retrieve and filter information. The agents and their organizational structure also
adapt to the prevailing task and user. Their system is demonstrated in the domain of
financial portfolio management (see also Wenger and Probst’s contribution).
Goldberg and Senator detail the FAIS system, which links and evaluates reports
of large cash transactions to identify potential money laundering activities. The
system, which has been operational since 1993, is designed and implemented as a
cooperative endeavor involving humans and software agents (see Haugeneder and
Steiner’s contribution for further thoughts on such human-computer cooperation).
The main focus of the presently implemented system is knowledge discovery and
information analysis in large data spaces. However, as the system’s range of
applicability has increased, so the need for greater agent-to-agent cooperation has
emerged. To this end, the authors describe the next generation of FAIS and discuss
how adopting an agent-based perspective eases the system migration task.
Wenger and Probst analyse the potential role and impact of the agent paradigm
in the general area of providing financial services. They highlight the character-
istics of typical agent-based applications and provide illustrative scenarios for the
domains of mortgage sales, corporate financial management, and portfolio
management (see also the contribution by Sycara et al.). They then discuss the
various ways in which intelligent agents can add value to financial operations,
present a detailed scenario based on an investment sales transaction service, and
assess the future role of agent technology in this market segment.
26 Jennings and Wooldridge
References
AA97 (1997) Proceedings of the First International Conference on Autonomous Agents’97,
Marina del Rey, CA. ACM Press.
Bates, J. (1994) The role of emotion in believable agents. Communications of the ACM,
37(7), 122−125.
Bond, A. H., Gasser, L. (Eds.) (1988) Readings in Distributed Artificial Intelligence.
Morgan Kaufmann.
Chaib-draa, B., (1995) Industrial applications of distributed AI. Communications of the
ACM, 38(11), 47−53.
Chavez, A., Maes, P. (1996) Kasbah: An agent marketplace for buying and selling goods.
Proceedings of First International Conference on the Practical Application of
Intelligent Agents and Multi-Agent Systems, London, UK.
Crabtree, B., Jennings, N. R. (Eds.) (1996) Proceedings of First International Conference
on the Practical Application of Intelligent Agents and Multi-agent Systems, London,
UK.
Franklin, S., Graesser, A. (1996) Is it an agent, or just a program? Proceedings Third
International Workshop on Agent Theories, Architectures and Languages, Budapest,
Hungary, 193−206.
Gasser, L., Braganza, C., Herman, N. (1987) MACE: A flexible testbed for distributed AI
research. In: M. N. Huhns (Ed.) Distributed AI. Morgan Kaufmann.
Genesereth, M. R., Ketchpel, S. P. (1994) Software agents. Communications of the ACM,
37(7), 48−53.
Hayes-Roth, B., Hewett, M., Waashington, R., Hewett, R., Seiver, A. (1995) Distributing
intelligence within an individual. In: L. Gasser, M. N. Huhns (Eds.) Distributed AI,
Volume II, 385−412. Morgan Kaufmann.
Huang, J., Jennings, N. R., Fox, J. (1995) An agent-based approach to health care
management. Int. Journal of Applied Artificial Intelligence, 9(4), 401−420.
Janca, P. C. (1995) Pragmatic application of information agents. BIS Strategic Report.
Jennings, N. R., Varga, L. Z., Aarnts, R. P., Fuchs, J., Skarek, P. (1993) Transforming
stand-alone expert systems into a community of cooperating agents. Int. Journal of
Engineering Applications of Artificial Intelligence, 6(4), 317−331.
Jennings, N. R., Corera, J. M., Laresgoiti, I. (1995) Developing industrial multi-agent
systems. In: Proceedings of the First International Conference on Multi-agent
Systems, (ICMAS-95), 423-430.
Jennings, N. R., Faratin, P., Johnson, M. J., Norman, T. J., O'Brien, P., Wiegand, M. E.
(1996) Agent-based business process management. Int. Journal of Cooperative
Information Systems, 5(2, 3), 105−130.
Lesser, V. R., Corkill, D. D. (1983) The distributed vehicle monitoring testbed: a tool for
investigating distributed problem solving network. AI Magazine, Fall, 15−33.
Maes, P. (1994) Agents that reduce work and information overload. Communications of the
ACM, 37(7), 31−40.
Applications of Intelligent Agents 27
Mason, C. L. (1995) Cooperative interpretation of seismic data for nuclear test ban treaty
verification: a DAI approach. Int. Journal of Applied Artificial Intelligence, 9(4),
371−400.
Negroponte, N. (1995) Being Digital. Hodder and Stoughton.
Ovum Report (1994) Intelligent agents: the new revolution in software.
PAAM’97 (1997) Proceedings of the First International Conference on the Practical
Application of Intelligent Agents and Multi-agent Systems, London.
Parunak, H. V. D. (1987) Manufacturing experience with the contract net. In: M. N. Huhns
(Ed.) Distributed AI. Morgan Kaufmann.
Parunak, H. V. D. (1996) Applications of distributed artificial intelligence in industry. In: G.
M. P. O’Hare, N. R. Jennings (Eds.) Foundations of Distributed Artificial Intellig-
ence, 139−164. Wiley.
Pnueli, A. (1986) Specification and development of reactive systems. In: Information
Processing 86, Elsevier/North-Holland.
Sargent, P. (1992) Back to school for a brand new ABC. In: The Guardian, 12 March, p. 28.
Shoham, Y. (1993) Agent-oriented programming. Artificial Intelligence, 60(1), 51-92.
Smith, R. (1980) The contract net protocol. IEEE Trans. on Computers, C-29(12), 1104−
1113.
Wavish, P., Graham, M. (1996) A situated action approach to implementing characters in
computer games. Int. Journal of Applied Artificial Intelligence, 10(1), 53−74.
Wooldridge, M., Jennings, N. R. (1995) Intelligent agents: theory and practice. The
Knowledge Engineering Review, 10(2), 115−152.
Wooldridge, M. (1997) Agent based software engineering. IEE Proceedings on Software
Engineering, 144(1), 26−37.
Wooldridge, M., Bussmann, S., Klosterberg, M. (1996) Production sequencing as
negotiation. In: Proceedings of the First International Conference on the Practical
Application of Intelligent Agents and Multi-agent Systems, London.
Zuno Ltd (1997) See http://www.dlib.com/.