The origins of the software agent concept are often traced back to the pioneers of artificial intelligence—John Mc Carthy, the creator of LISP programming language, and Carl Hewitt, the father of distributed artificial intelligence (DAI). Kay (1984, p. 84) states that: …the idea of an agent originated with John McCarthy in the mid-1950s, and the term was coined by Oliver G. Selfridge a few years later, when they were both at the Massachusetts Institute of Technology. They had in view a system that, when given a goal, could carry out the details of the appropriate computer operations and could ask for and receive advice, offered in human terms, when it was stuck. An agent would be a ‘soft robot’ living and doing its business within the computer’s world. Nwana (1996, p. 205), on the other hand, claims that: …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 Artificial Intelligence (PAI). (…) The concept of an agent (…) can be traced back to the early days of research into DAI in the 1970s – indeed, to Carl Hewitt’s concurrent Actor model. 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 objects1. The software agent concept meant, in the first place, replacing the idea of an expert, which was at the core of earlier support systems, with the metaphor of an assistant. Until 1990s, decision support systems (DSS) were typically built around databases, models, expert systems, rules, simulators, and so forth. Although they could offer considerable support to the rational manager, whose decision making style would rely on quantitative terms, they had little to offer to managers who were guided by intuition. Software agents promised a new paradigm in which DSS designers would aim to augment the capabilities of individuals and organizations by deploying intelligent tools and autonomous assistants. The concept thus heralded a pivotal change in the way computer support is devised. For one thing, it called for a certain degree of intelligence on the part of the computerized tool; for another, it shifted emphasis from the delivery of expert advice toward providing support for the user’s creativity (King, 1993).
Key Terms in this Chapter
Interface Agent: Interface agent is a software agent that supports the user in accomplishing certain tasks or performs tasks on the user’s behalf.
Multi-Agent System: A multi-agent system is a system incorporating multiple, interacting agents.
Distributed Artificial Intelligence: Distributed artificial intelligence is a sub-field of artificial intelligence concerned with systems that consist of multiple independent entities that interact in a domain.
Distributed Decision Making: Distributed decision making is a decision-making process where several people are involved to reach a single decision, for example, a problem solving activity among a few persons when the problem is too complex for anyone alone to solve it.
Personal Assistant: See “interface agent.”
Software Assistant: See “interface agent.”
Agent: An agent in computing, is an entity such as a software program or a robot that can be viewed as perceiving and acting upon its environment and that is autonomous, that is, its behavior at least partially depends on its own experience.
Software Agent: Software agent is a software program that inhabits some complex dynamic environment, senses and acts autonomously in this environment and by doing so realizes a set of goals or tasks for which it is designed (Maes, 1994).
Agent(-Based) System: An agent(-based) system is a computer system built around a software agent as its central component.