Recent trends have made it clear that software complexity will continue to increase dramatically in the coming decades. The dynamic and distributed nature of both data and applications require that software not merely respond to requests for information but intelligently anticipate, adapt, and actively seek ways to support users. Not only must these systems assist in coordinating tasks among humans, they must also help manage cooperation among distributed programs.
In response to these requirements, the efforts of researchers from several different fields have begun to coalesce around a common broad agenda: the development of software agents. On the one hand, researchers from the fields of human-computer interaction, intelligent and adaptive interfaces, knowledge acquisition, end-user programming, and programming-by-demonstration have concerned themselves with the implications of the agent metaphor and its concrete representations, learning and adaptivity, explanation, agent authoring, and other aspects of interaction between humans and software agents. On the other hand, researchers in the fields of distributed artificial intelligence, robotics, artificial life, and distributed object computing have contributed expertise in the areas of negotiation and planning, situated action, agent-to-agent protocols, concurrency, and component-based frameworks.
These complementary lines of research are motivated by two main concerns: the limitations of direct manipulation interfaces, and the complexities of distributed computing. Following introductory pieces authored by well-known proponents (and a critic) of agent approaches, a set of chapters describes how agents have been used to enhance learning and provide intelligent assistance to users in situations where direct manipulation interfaces alone are insufficient. A final set of chapters details various approaches to agent-to-agent communication and agent mobility, as well as the use of agents to provide intelligent interoperability between loosely-coupled components of distributed systems.
The book contains the most comprehensive and accessible collection of papers to date addressing these issues, authored by the leading researchers and developers of agent-based systems. Chapters by researchers from major universities (MIT, Stanford, University of Maryland, USC, University of Toronto), computing companies (Apple, Microsoft, and General Magic), and industrial research centers (AT&T Bell Labs, Boeing, EURISCO, Interval) not only summarize the state-of-the-art, but point the way in which standards and products incorporating agent technology are likely to evolve over the next few years. The wide variety of issues and approaches addressed make it an ideal resource for classroom use, as well as a reference for computing professionals. Because the book describes basic concepts and implementations without resorting to mathematical or overly technical terms, it will also be suitable for many non-computing professionals who are interested in a survey of this rapidly growing field.