Building dynamic agent organizations in cyberspace
IEEE Internet Computing
With the promise of agent-based systems, a variety of research/industrial groups are developing autonomous, heterogeneous agents, that are distributed over a variety of platforms and environments in cyberspace. Rapid integration of such distributed, heterogeneous agents would enable software to be rapidly developed to address large-scale problems of interest. Unfortunately, rapid and robust integration remains a difficult challenge. To address this challenge, we are developing a novel
... ased agent integration framework. In this framework, software developers specify an agent organization called a team-oriented program. To recruit agents for this organization, an agent resources manager (an analogue of a "human resources manager") searches the cyberspace for agents of interest to this organization, and monitors their performance over time. Agents in this organization are wrapped with TEAMCORE wrappers, that make them team ready, and thus ensure robust, flexible teamwork among the members of the newly formed organization. This implemented framework promises to reduce the software development effort in agent integration while providing robustness due to its teamwork-based foundations. A concrete, running example, based on heterogeneous, distributed agents is presented. 1 1 This research was supported by DARPA Award no. F30602-98-2-0108. The effort is being managed by AFRL/Rome research site. We thank Phil Cohen, Katia Sycara and Steve Minton for contributing agents used in the work described here. We also gratefully acknowledge the support of Hank Seebeck of GlobalInfotek. We also thank Mike Huhns for his helpful comments on this work. i An increasing number of agent-based systems are being developed for complex dynamic environments, such as disaster rescue missions, monitoring and surveillance tasks, enterprise integration, and education and training environments. These agents, in the form of information agents, planning/execution agents, middle agents, user agents or embedded agents must often operate in cyberspace (on the internet or intra;nets) to interface with relevant information sources, network facilities and other agents [3, 4, 1, 12] . This growth in agent-based systems is predicted to be followed by another powerful trend: the reuse of specialized agents as standardized building blocks for large-scale systems [4, 6, 2] . This prediction is based on two observations. First, software systems are being constructed with ever-larger reusable components (rather than as monoliths)  . The reuse of agents as components appears to be the next logical stepenabling a richer reuse mechanism than component-ware or application frameworks  . Second, we already see the trend of integration of agent components in cooperative information systems, networked embedded systems, and other systems operating in cyberspace [3, 4, 9] . Unfortunately, integrating agents in a large-scale system remains difficult. First, in the distributed, open cyberspace environment, enabling a software developer to locate/recruit relevant agents for integration is a key challenge. Second, since the recruited agents are not likely built to work together, building an integrated system with appropriate inter-agent coordination is difficult. The problem is not only the potentially large amounts of modifications to agent code (to add coordination plans), but also the difficulty of making such modifications in an open, distributed environment, where the agents may be developed by different developers. This problem is further exacerbated if such modifications must be repeated for each new integration. Third, given a dynamic, open environment, the resulting integrated system must be made robust despite uncertainties, such as dynamic agent failures or unavailability (or dynamic availability). While there are other issues in integration as well, such as a common agent communication language, this short article will focus on the above three key challenges. To address the above agent integration challenges, our TEAMCORE 2 project focuses on enabling software developers to build large-scale agent organizations in cyberspace. There are currently two key aspects to this project. The first focuses on specification and monitoring of the agent organization. The second focuses on enabling the organization to reliably execute tasks, by ensuring robust teamwork among the agents in the organization. The first aspect is the focus of KARMA, the Knowledgeable Agent Resources Manager Assistant, which aids a software developer in three ways. First, Karma aids in team-oriented programming, i.e., specifying a hierarchical agent organization with roles, and high-level goals and plans for this organization. A key benefit of team-oriented programming is that it abstracts away from coordination details and thus alleviates the difficulty of writing large numbers of coordination plans. Second, Karma locates agents in cyberspace that match the specified organization's requirements and assists in allocating organizational roles to such agents. Third, Karma monitors the organization to enable the developer to diagnose failures and records agents' performance for future (re)organizations. Karma's agent resources management functionality differs significantly from middle agents such as matchmakers. Indeed, if the metaphor for middle agents is "middle-men" in physical commerce, the metaphor for agent resource managers is "human resources managers" in a commercial firm, and as such, agents such as Karma are expected to be increasingly critical in large-scale agent systems. Having specified a team-oriented program, the second aspect of the TEAMCORE project focuses on its robust execution. One key hypothesis here is that agent teamwork will enhance robust execution, since as team members, agents can be expected to act responsibly towards each other, cover for each other's execution failures and exchange key information. To enable such teamwork, we make the agents that are assigned roles in the team-oriented program team-ready, i.e., responsible team members. An agent's conversion from 2 TEAMCORE derives its name from its encapsulation of "core team reasoning" as discussed later.