The Agent Cover
2.1 The Agent Cover
As already mentioned, an agent consists of three layers according
2.2 The Communication and Protocol Layer
to the I NTERRAP architecture. These layers are enveloped by an agent cover. This cover has three main functions, first to protect
We use KQML (Knowledge query and manipulation language) to the agent against unauthorized access, second to represent the
model the communication among agents (FF94). KQML is an agent to the agent society and third to provide methods that
adoption of speech act theory (Sea69). It divides an utterance into initialize the layers, prepare the communication with other agents
three aspects (locution, illocution and perlocution), whereby and administrate the interaction between the layers. In our
illocution (also called performative) is of special interest. In implementation, the agent cover is represented by an object.
ordinary speech, this aspect is not explicitly stated. KQML allows These features are common to all agents. As a result, comparison
to represent several performatives such as assertion, query, reply and abstraction lead to some functions which can be used for every
etc. It is now possible to separate between domain-specific and type of agent. Differences among the agents concern only the type
domain-independent semantics of messages. Like the agent cover, the layer for social interaction (which we call
Generic agent Generic agent cover cover
Transp. agent Transp. agent cover cover
Transp.Dispatch Transp.Dispatch
Pneu agent cover Pneu agent cover agent cover agent cover
Driver agent cover Driver agent cover
Chassis agent Chassis agent
Container agent Container agent
cover cover
cover cover
iPneu agent cover iPneu agent cover Sh ipping agent Sipping agent
Trailer agent Trailer agent
LDZ agent cover LDZ agent cover
cover cover
cover cover
Figure 2.
The hierarchy among the agent cover objects
Proceedings of the ECAI 2000 Workshop on Agent Technologies and Their Application Scenarios in Logistics
Proceedings of the ECAI 2000 Workshop on Agent Technologies and Their Application Scenarios in Logistics
communication layer ) is modeled hierarchically. The generic communication layer consists of two methods for receiving and sending messages. An agent can act as a sender or a receiver. Furthermore, performatives are represented by methods that compute a message in respect to its content. By now, these methods are mere compositions of if – then statements which trigger further computations. Roughly spoken, two methods for performatives ask and tell are needed. They correspond to the known basic message types or performatives assertions and queries . Both methods are part of the transport communication layer. One major problem is dealing with asynchronous communication,
i.e. sending and receiving messages in an order which is a priori unknown. To avoid this problem, KQML provides a field :in- reply-to which signifies uniquely the message to which a reply is sent. A proper generic implementation has to provide methods that can cope with such messages. We solved the problem by binding all outgoing messages to a dictionary and waiting until each receiver has replied. Additionally, since agents might be unable to reply, we integrated a timeout mechanism. To perform concrete interaction between agents, special protocols are needed. A protocol is a set of formal rules describing how to perform interaction. In our transport scenario, we use a contract net protocol to specify announcing and bidding for transport tasks. Furthermore, since agents can join to build holons, we need a specified protocol for announcing a holon building request. Other kinds of domain-specific interaction require further protocols. These domain-specific protocols have several features in common. Hence, we can take advantage of these common features by abstracting. A transport specific method for contract net protocols takes a task and announces it to list of agents, then it waits until all agents have replied, chooses the best bid (or chooses an agent which fits best into a holon), and grants or rejects the bids by sending an answer to the contractors. In fact, the situation is more complicated because we use a nested contract net. A task is announced to all known transport holons. These are represented by PnEUs (planning and execution units), which themselves use contract net to acquire agents as new components and to announce a task to their subagents. Hence making one’s bid, when acting as a contractor, requires first starting a new contract net with one ore more subagents. An agent might act as a manager and as a contractor at the same time. We solved this problem by creating a special protocol object which is associated to an agent and his role in a contract net. This object manages the communication in respect to the role. This protocol object is part of the transport communication layer. The methods which contain agent specific methods, e.g. methods for a holon agent, are located in the lowest communication layer, which distinguishes domain specific agents from each other. They complete the hierarchical structure of the communication layer.