From the practical standpoint, multi-agent systems cannot be efficiently built without the ability to reuse abstract descriptions of system components, services, knowledge bases and coordination structures. Based on this recognition, the Agent Building Shell provides several layers of reusable services for agent construction, relieving developers from the effort of building agent systems from scratch and giving them a guarantee that trustworthy tools and methods have been provided. Each agent built with the shell can use consistent subsets of this architecture to implement specific multiagent configurations. The layers of the architecture will achieve the following functionality.
- Communication: The shell supports the KQML/KIF solution: a high level agent communication language based on speech-acts and a logical representation of the communication content.
- Coordination: The shell provides a novel coordination language, built on top of the agent communication language. The language supports the definition, execution and validation of complex speech-act based cooperation protocols. The major concept of the language is the structured conversation that two or more agents can carry out. This is declaratively described in an object and rule-based manner. Multiple, parallel conversations are possible and their management can be programmed through specific control mechanisms.
- Legacy software integration. The object and rule based coordination language is also used to integrate legacy software by managing the use of API-s or other interfaces the legacy software provides.
- WWW interfaces. These allow human users to use web browsers to access agents built with our tool. The interaction between users and agents is conversation based, using the same conversational infrastructure that supports interactions among agents. To accomodate human users, the shell provides mechanisms that translate KQML conversational patterns into visual forms that users can fill at will. Thus users are insulated from the formal aspects of communication in KQML, being only required to fill clear graphical forms which are translated by the interface into KQML messages and delivered to the agents.
- Negotiation. Agents negotiate by exchanging constraints about the performance of activities. Basically, an agent may request another to execute or to refrain from executing specific actions. Requests are associated with violation costs that quantify how much the requested agent has to pay if it does not fulfil the request. Violation costs thus reflect the authority of the requester. Requests to execute actions are called obligations while requests to refrain from execution are called interdictions. In the negotiation process, agents send their requests to other agents and receive either confirmations or explanations of why their requests can not be satisfied. In the latter case, requestors can relax the constraints in their requests and continue the exchange until both parties converge on requests which are mutually acceptable.
- Agent behavior. Agents employ a unified behavior description language that specifies behaviors as consisting of sequential, parallel and choice compositions of actions. This language is uniformly used to specify both the requests among actions and the internal behavior of an agent. Specific constraint propagation mechanisms are used to determine which actions will be executed, based on considering the violation costs associated with requests, such that an agent will always try to minimize its paid cost when forced to violate some requests. Then, selected actions are scheduled and finally executed.
- Organization structure. At the organization level, agents acquire autority to make requests and impose violation costs from the roles they play in the organization. Thus we need to represent the structure of organization roles as a basis for the rights and authorities of agents.
- Knowledge management. Finally, there is a representational substrate that provides services for carrying out the various reasoning tasks outlined. Essentially, this consists of a Logical Truth Maintenance System (LTMS) that performs logical constraint propagation over propositional data bases. The LTMS allows propositions (beliefs) to be retracted (non-monotonic reasoning) and supports data base organization into hierarchical contexts with (multiple) inheritance.
An overview of our Agent Building Shell technology can be found in: Barbuceanu, M., and Fox, M.S., (1996), “The Architecture of an Agent Building Shell”, Intelligent Agents Vol. II, Springer-Verlag.