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.