• No results found

2.8 Summary

3.1.4 Agent Communication Languages

Agents that need to share knowledge require structured communications and a mech- anism via which they can interact. Agent communication languages (ACLs) provide this and facilitate information flow between agents using what is usually an indepen- dent transport mechanism. The structure of a communication message requires that it has some content and some information about the meaning (or semantics) of that content. Within an agent, the following components are needed in order to integrate communication:

1. APIs are required to compose, send and receive messages. 2. A naming infrastructure is required for message sending.

3. A set of reserved words to describe message types, each of which will describe a performative act is required.

Items (1) and (2) are reusable for any deployment of a given language implemented in a given agent. Item (3) is largely specific to roles and tasks of a given system of agents. It contains specifications which need to be agreed and shared between interacting agents and which have been planned and designed specifically for the tasks required. It should also take consideration of pragmatic requirements for a communication

system and will include basic actions such as send, receive and request. Every agent which communicates in a multiple agent system (MAS) has its own API as mentioned in (1) above.

Conceptually, an ACL is structured in layers, with syntax and content. These can be loosely conceived of as outer and inner layers respectively. The outer layer contains the meaning or semantics of the message. This meaning can apply to the type of message, and how the content is intended to be used (i.e. it is a request, command, reply to a request or command). The outer layer may also encapsulate the message in a format which allows it to be sent and may also contain information like the sender and recipient. The outer layer may be further divided into separate transport information which applies to the message content. The inner layer contains the content of the message. There is no need for the outer layer to be concerned with the content and most ACLs are agnostic about what constitutes the content as long as the language is able to represent and transport it. This separation of concerns lends itself towards using different technologies or implementations for different layers of the communication.

Two common and typical agent communication languages are KQML [67] and FIPA ACL [63, 115]. KQML and FIPA’s ACL are superficially the same and have similar structures, as is Classad when deployed as an agent communication language. Early ACLs originated in the artificial intelligence (AI) and agent communities [86]. KQML and FIPA’s ACL are designed and can be used to represent a piece of knowledge as content with some semantics associated with that content.

A semantic language (and its vocabulary) is a sub-component of an ACL and it is important that this is standardized. Fixed elements of a semantic language are sender, receiver, performative and content. The remaining elements are often agent and application specific.

Conversation Policies and Protocols

A natural extension of sending and receivingone message is the idea of a collection of messages (or conversation) pertaining to one subject or task. A conversation policy

(CP) is a task-oriented shared protocol for a shared sequence of messages carried out in order to accomplish a task.

Originally evolving from the need for a specific response following a particular re- quest, the specification of ‘legal’ sequences during agent interactions were formalised. These became knows as conversation policies and have become a separate research thread. The task could be placing a bid at an auction, requesting information from another agent, etc. [86]. CPs should therefore be specified, agreed and shared among agents. Responses should be expected, mutually exclusive and collectively exhaustive within the range of possible answers. This ensures that no unexpected answer will be sent in reply to a conversation component (which would lead to a ‘hang’ situation).

To carry out tasks involving interactions with other agents, each sub-task (how- ever small in relation to an overall task) requires a set of messages sent back and forth between a pair of interaction agents in order to complete that task. In agent interactions, the alternative to adhering to a predefined interaction for a conversation is relying on a deep understanding of the domain and the task in hand [86]. In the absence of mentalistic agent capabilities, using a scripted conversation may be ade- quate and desirable (a drawback of mentalistic capabilities is the level of complexity and logical reasoning required in the agent).

Having a conversation policy means an agent has the capability to carry out that protocol, catering for individual messages. The list of an agent’s CPs also describe the list of tasks which are ‘doable’ by that agent, i.e. the agent’s abilities. In the execution of a CP, the emphasis moves from the content of the messages to the outcomes of each message in sequence and the behaviour of the interacting agents in response to these outcomes.