The University of Queensland Homepage
School of ITEE ITEE Main Website

 Contract Related Agents

Contract Related Agents

Speaker: Keith Clark (Imperial College)

When: 10:00, Friday, 7 July 2006

Venue: 78-420

We describe a multi-threaded declarative agent architecture in which an agent's relationships to other agent's is defined by a set of formal service contracts held inside the agent. Some of these contracts determine services that the agent provides, others are outsourcing contracts for services that other agents provide for it. The contracts are declaratively formalised as event calculus rules. At any time point the state of a contractual relationship is determined by the contract rules /and/ the events that have previously happened pertinent to the contract. An event E pertinent to a contract is notified by an agent Ag to all other parties to the contract via a dedicated contract channel. The channel authenticates the identity of Ag and forwards the tuple (Ag,E,T), T being the time the channel received the notification, to the other agents. In this way all the agents see the event as occurring at the same time T.

The contracts specify which agents are allowed to notify which events - hence the importance of the channel authentication of the notifier. They also specify conditions under which particular events initiate or discharge an obligation one one the agents. Initiated obligations may have deadlines by which they must be discharged. A contract can also specify conditions under which an agent is considered to have violated an obligation.

We describe a multi-threaded BDI agent architecture in which the relationship the agent has to other agents is formalised by a set of contracts. For each active contract the agent has a thread handling the event notifications sent to it by the channel for the contract. Any event that initiates an obligation to perform a task causes a new top-level goal to be generated for the agent. Another thread within the agent handles such goals and finds and launches plans to satisfy them. Such a plan may in turn query the agent's other contracts to determine whether and when a request event from the agent, to achieve some sub-goal of the plan, will result in an obligation on another agent to achieve the sub-goal. If so, such a request can be used by the agent to outsource the sub-goal.

For concreteness we sketch the implementation of the architecture in the multi-threaded OO logic programming language QuP++. We also give the rules for a single agent performance contract for a patrol robot, and the rules for simple multi-task service contract between a pair of agents.

 

Hospitality: Peter Robinson

Contact: Phil Cook (SSE seminar co-ordinator) (philc@itee.uq.edu.au)

SSE seminar web page: http://www.itee.uq.edu.au/~sse/Seminars.html