Computing as Interaction: Agent and Agreement Technologies Michael Luck Department of Computer Science King’s College London London WC2R 2LS, UK Email: michael.luck@kcl.ac.uk Peter McBurney Department of Computer Science University of Liverpool Liverpool L69 3BX, UK Email: mcburney@liverpool.ac.uk I. I NTRODUCTION With the emergence of new paradigms for computing, such as peer-to-peer technologies, grid computing, autonomic computing and other approaches, it is becoming increasingly natural to view large systems in terms of the services they offer, and consequently in terms of the entities or agents providing or consuming services. For example, web services technologies provide a standard means of interoperating be- tween different software applications, running on a variety of platforms. More generally, web services standards now serve as potential convergence point for diverse technology efforts in support of more general service-oriented architectures. Here, distributed systems are increasingly viewed as collec- tions of service provider and service consumer components interlinked by dynamically defined workflows. Web services must thus be realised by concrete entities or agents that send and receive messages, while the services themselves are the resources characterised by the functionality provided. The important characteristics of these emerging domains and environments are that they are open and dynamic so that new agents may join and existing ones leave. In this view, agents act on behalf of service owners, managing access to services, and ensuring that contracts are fulfilled. They also act on behalf of service consumers, locating services, agreeing contracts, and receiving and presenting results. In these domains, agents are required to engage in interactions, negotiate with one another, make agreements, and make proac- tive run-time decisions, individually and collectively, while responding to changing circumstances. In particular, agents need to collaborate and to form coalitions of agents with different capabilities in support of new virtual organisations. II. AGENT-BASED COMPUTING Agents can be defined as autonomous, problem-solving computational entities capable of effective operation in dy- namic and open environments. Agents are often deployed in environments in which they interact, and sometimes cooperate, with other agents (both people and software) that have possibly conflicting aims. Such environments are multi-agent systems. Agents can be distinguished from objects in that they are autonomous entities capable of exercising choice over their actions and interactions, and may act to achieve individual objectives. Agents cannot, therefore, be directly invoked but can be assigned tasks by their owners. However, they may be constructed using a wide range of technologies. These notions find application in relation to three distinct views. First, agents provide designers and developers with a way of structuring an application around autonomous, communicative components and lead to the construction of software tools and infrastructure to support design. They provide a new and often more appropriate method for the development of complex systems, especially in open and dynamic environments. To support this view of systems development, particular tools and techniques need to be introduced. For example, agent-oriented methodologies to guide analysis and design are required, agent architectures are needed for the design of individual components and tools and abstractions are required to enable developers to deal with the complexity that is typical of systems with such distribution of control. Agent technologies are distinct and cover a range of specific techniques for dealing with interactions in dynamic, open environments. They address issues such as balancing reaction and deliberation in individual agent architectures, learning from and about other agents in the environment, eliciting and acting upon user preferences, finding ways to negotiate, agree and cooperate with other agents, and developing appropriate means of forming and managing coalitions. Finally, multi-agent systems offer strong models for repre- senting real-world environments with an appropriate degree of complexity and dynamism. Simulation of economies, societies and biological environments are typical application areas. The use of agent systems to simulate real-world domains may provide answers to complex physical or social problems that would be otherwise unobtainable, as in the modelling of the impact of climate change on biological populations, or modelling the impact of public policy options on social or economic behaviour. Multi-agent systems have already pro- vided faster and more effective methods of resource allocation in complex environments, such as the management of utility networks, than previous centralised approaches. III. TRENDS AND DRIVERS The development of agent technologies has taken place within a context of wider visions for information technology.