Since the AAAI (http://www.aaai.org) Spring Symposium in 1994, intelligent software agents and agentbased systems became one of the most significant and exciting areas of research and development (R&D) that inspired many scientific and commercial projects. In a nutshell, an agent is a computer program that is capable of performing a flexible, autonomous action in typically dynamic and unpredictable domains (Luck, McBurney, Shehory, & Willmott, 2005). Agents emerged as a response of the IT research community to the new data-processing requirements that traditional computing models and paradigms were increasingly incapable to deal with (e.g., the huge and ever-increasing quantities of available data). Agent-oriented R&D has its roots in different disciplines. Undoubtedly, the main contribution to the field of autonomous agents came from artificial intelligence (AI) which is focused on building intelligent artifacts; and if these artifacts sense and act in some environment, then they can be considered agents (Russell & Norvig, 1995). Also, object-oriented programming (Booch, 2004), concurrent object-based systems (Agha, Wegner, & Yonezawa, 1993), and human-computer interaction (Maes, 1994) are fields that have constantly driven forward the agent R&D in the last few decades.
Even though it is intuitively clear what an “agent” or “multi-agent system” is, we may say that there is no universal consensus over some key definitions among researchers in the field. One of the most broadly used definitions states that “an agent is a computer system, situated in some environment, that is capable of flexible autonomous action in order to meet its design objectives” (Jennings, Sycara, & Wooldridge, 1998, p. 8). There are three key concepts in this definition: situatedness, autonomy, and flexibility. Situatedness means that an agent receives sensory input from its environment and that it can perform actions which change the environment in some way. Autonomy is seen as the ability of an agent to act without the direct intervention of humans and that it has control over its own actions and internal state. In addition, the autonomy implies the capability of learning from experience. By flexibility, we mean the agent’s ability to perceive its environment and respond to changes in a timely fashion; it should be able to exhibit opportunistic, goal-directed behavior and take the initiative whenever appropriate. Also, an agent should be able to interact with other agents and humans, thus be social. Some authors emphasize the importance of the concept of rationality, which will be discussed in the next section.
With an agent-oriented view of the world, it soon became clear that a single agent is insufficient. Most real-world problems require or involve multiple agents to represent the decentralized nature of the problem, multiple perspectives, or competing interests. Systems composed of multiple autonomous components (agents) are considered multi-agent systems (MAS) and historically belong to distributed artificial intelligence (Bond & Gasser, 1998). MAS can be defined as a loosely coupled network of problem solvers that work together to solve problems that are beyond the individual capabilities or knowledge of each problem solver (Durfee & Lesser, 1989). The characteristics of MAS are (Jennings et al., 1998):
• Each agent has incomplete information or capabilities for solving the problem, thus each agent has a limited viewpoint;
• There is no global system control;
• Data are decentralized; and
• Computation is asynchronous.
Key Terms in this Chapter
Cooperative Multi-Agent Interactions: Interactions among agents that share common goals in order to achieve improved collective performance.
Self-Interested Multi-Agent Interactions: Interactions among agents that do not share common goals. These interactions often include competition and rely on negotiation.
Multi-Agent System (MAS): A software system composed of several agents that interact in order to find solutions of complex problems.
Middle-Agents: Agents that facilitate cooperation among other agents and typically connect service providers with service requestors.
Intelligent Software Agent: An encapsulated computer system that is situated in some environment and that is capable of flexible, autonomous action in that environment in order to meet its design objectives (Wooldridge & Jennings, 1995).
Agent Communication Language (ACL): Language used by agents in exchange of messages and defining common syntax for cooperation between heterogeneous agents.
Agent Negotiation: A model of communication among agents that may have conflicting interests but tries to find a compromise solution so that agents mutually benefit from reaching agreement.