ACRE: Agent Conversation Reasoning Engine David Lillis School of Computer Science and Informatics University College Dublin Email: david.lillis@ucd.ie Rem W. Collier School of Computer Science and Informatics University College Dublin Email: rem.collier@ucd.ie Abstract—Within Multi Agent Systems, communication by This paper is laid out as follows: Section II outlines some means of Agent Communication Languages has a key role to related work on agent interaction. Section III then provides play in the co-operation, co-ordination and knowledge-sharing an overview of the aims and scope of the ACRE project. between agents. Despite this, complex reasoning about agent messaging and specifically about conversations between agents, Following this, details of the integration of ACRE into the tends not to have widespread support amongst general-purpose Agent Factory framework are given in Section IV. The re- agent programming languages. lationships between message performatives and agent goals ACRE (Agent Communication Reasoning Engine) aims to are discussed in Section V, followed by an example of a complement the existing logical reasoning capabilities of agent simple one-shot auction implemented via ACRE in Section VI. programming languages with the capability of reasoning about complex interaction protocols in order to facilitate conversations Finally, Section VII outlines some conclusions along with between agents. This paper outlines the aims of the ACRE project ideas for future work. and gives details of the functioning of a prototype implementation within the AFAPL2 agent programming language. II. R ELATED W ORK In the context of Agent Communication Languages, two I. I NTRODUCTION standards have found widespread adoption. The Knowledge Communication is a vital part of a Multi Agent System Query and Manipulation Language (KQML) was the firstly (MAS). Agents make use of communication in order to aid widely-adopted format for agent communication [4]. An alter- mutual cooperation towards the achievement of their individual native agent communication standard was later developed by or shared objectives. The sharing of knowledge, objectives the Foundation for Intelligent Physical Agents (FIPA). FIPA and ideas amongst agents is facilitated by the use of Agent ACL utilises what it considers to be a minimal set of English Communication Languages (ACLs). The importance of ACLs verbs that are necessary for agent communication. These are is reflected by the widespread support for them in agent used to define a set of performatives that can be used in ACL programming languages and toolkits, many of which have messages [5]. These performatives, along with their associated ACL support built-in as core features. semantics, are defined in [6]. In many MASs, communication takes place by way of Recognising that one-off messages are limited in their power individual messages without formal links between them. An to be used in more complex interactions, FIPA also defined a alternative approach is to group related messages into con- set of interaction protocols [7]. These are designed to cover versations: “task-oriented, shared sequences of messages that a set of common interactions such as one agent requesting they observe, in order to accomplish specific tasks, such as a information from another, an agent informing others of some negotiation or an auction” [1]. event and auction protocols. This paper presents the Agent Conversation Reasoning Support for either KQML or FIPA ACL communication is Engine (ACRE). The principal aim of the ACRE project is frequently included as a core feature in many agent tookits to integrate interaction protocols into the core of existing and frameworks, native support for interaction protocols is less agent programming languages. This is done by augmenting common. The JADE toolkit provides specific implementations their existing reasoning capabilities and support for inter- of a number of the FIPA interaction protocols [8]. It also agent communication by adding the ability to track and provides a Finite State Machine (FSM) behaviour to allow reason about conversations. Currently at the stage of an initial interaction protocols to be defined. Jason includes native sup- prototype, ACRE has been integrated with the AFAPL2 Agent port for communicative acts, but does not provide specific tools Programming Language [2], which runs on the Agent Factory for the development of agent conversations using interaction platform [3]. The longer-term goals of ACRE include its use protocols. This is left to the agent programmer [9, p. 130]. A within other mainstream programming languages. similar level of support is present within the Agent Factory The principal aim of this paper is to outline the goals of the framework [10]. ACRE project and to present the integration of the prototype There do exist a number of toolkits, however, that do include system into AFAPL2. support for conversations. For example, the COOrdination 7 Language (COOL) uses FSMs to represent conversations [11]. and outgoing messages being treated independently and Here, a conversation is always in some state, with messages without a strong notion of conversations. causing transitions between conversation states. Jackal [12] • Internal Conversation Reasoning: On receipt of a FIPA and KaOS [13] are other examples of agent systems mak- ACL message, it should be possible to identify the ing use of FSMs to model communications amongst agents. protocol being followed by means of the protocol Alternative representations of Interaction Protocols include parameter defined in the message (for the specification Coloured Petri Nets [14] and Dooley Graphs [15]. of the parameters available in a FIPA ACL message see [16]). Similarly, the initiator of a conversation should III. ACRE OVERVIEW also set the conversation-id parameter, which is a unique identifier for a conversation. By referring to the ACRE is aimed at providing a comprehensive system for the protocol identifier, an agent can make decisions about modelling, managing and reasoning about complex interac- its response by consulting the protocol specification. tions using protocols and conversations. Here, we distinguish Similarly, the conversation identifier may be matched between a protocols’ and conversations. A protocol is defined against the stored history of ongoing conversations. as a set of rules that dictate the format and ordering of ACRE aims to use this information to analyse the status messages that should be passed between agents that are of conversations and generate appropriate goals for the involved in prolonged communication (beyond the passing of a agent to successfully continue the conversation along the single message). A conversation is defined as a single instance appropriate lines for the protocol that is specified. The of multiple agents following a protocol in order to engage use of goals follows [17]. Goals represent the motivations in communication. It is possible for two agents to engage in of the participants in a conversation. Thus the agents’ multiple conversations that follow the same protocol. engagement in a particular conversation is decoupled Such an aim can only be realised effectively if a number of from the individual messages that are being exchanged, features are already available. These include: allowing greater flexibility in reasoning about their reac- • Protocol definitions understandable by agents: Inter- tions and responses. action protocols must be declared in a language that all • Organisation of Incoming Messages: It is possible that agents must be able to understand and share. This also an agent communicating with agents in another system has the advantage that the protocol definition is separated may receive messages that do not specify their protocol from its implementation in the agent, thus providing a and/or conversation identifier. In this case, it is useful for programmer with a greater understanding of the format the agent to have access to definitions of the protocols in the communication is expected to take. ACRE uses an which it is capable of engaging so as to match these with XML representation of a finite state machine for this incoming messages so as to categorise the messages. purpose. • Agent Code Verification: The ultimate aim of ACRE is • Shared ontologies: A shared vocabulary is essential to to facilitate the verification of certain aspects of agent agents understanding each other’s communications. A code. In particular, given integration of conversation shared ontology defines concepts about which agents reasoning into a programming language, it should be need to be capable of reasoning. possible to verify whether or not an agent is capable • Plan repository: With the two above features in place, an of engaging in a conversation following a particular agent may reason about the sequence of messages being protocol. exchanged, as well as the content of those messages. This reasoning will typically result in an agent deciding to perform some action as a consequence of receiving IV. AGENT FACTORY certain communications. In this case, it is useful to have Agent Factory is an extensible, modular and open frame- available a shareable repository of plans that agents may work for the development of multi agent systems [3]. The perform so that new capabilities may be learned from primary agent programming language packaged with Agent others. Factory is AFAPL2 [2], although it also includes support for The presence of these features aid greatly in the realisation other agent programming languages such as ALPHA [18] and of ACRE’s aims. The principal aims are as follows: AgentSpeak [9]. • External Monitoring of Interaction Protocols: At its This principal aim of this paper is to outline the integration simplest level, conversation matching and recognition of ACRE with AFAPL2. AFAPL2 is an agent programming of interaction protocols allows for a relatively simple language that was initially based on the Agent0 language, tool operating externally to any of the agents. This can with notions of belief and commitment at its core [19]. Its intercept and read messages at the middleware level and is capabilities have been augmented since, however, with the suitable for an open MAS in which agents communicate addition of such features as goal reasoning [20] and roles [10]. via FIPA ACL. This is a useful tool for debugging pur- The existing goal-reasoning capabilities of AFAPL2 (out- poses, allowing developers to monitor communication to lined in [20]) required some extension in order to be usable ensure that agents are following protocols correctly. This for the purposes of ACRE. is particularly important where conversation management AFAPL2 contains two types of activities (code that allows has been implemented in an ad-hoc way, with incoming an agent to perform some task): actions and plans. An action is 8 a simple activity that is implemented by way of a single Java A significant drawback with this method of reasoning is class, known as an actuator. Actions are designed to be used that if no activity is available that can directly result in a goal as primitive activities that can be grouped together to carry state being brought about, no further effort is made to achieve out more complex tasks. A plan is such a grouping, making it. However, this does not necessarily mean that the agent is use of plan operators (such as operators to carry out several incapable of achieving its goal. In the event of an activity being actions in sequence or in parallel) to combine actions. Each identified whose postcondition is expected to satisfy the goal activity has three components: but whose precondition is not satisfied by the current state of • A precondition that specifies the circumstances in which the agent, the modified goal reasoning engine examines other the activity may be executed. This is expressed in terms activities to evaluate whether any are available that can satisfy of beliefs that the agent must have when attempting to that precondition. An example of this reasoning process is execute the activity. given in Section VI. • A postcondition that indicates the anticipated mental state on successful completion of the activity. This is expressed V. M APPING P ERFORMATIVES TO G OALS AND B ELIEFS in terms of beliefs the agent will expect to have once the activity has completed. In AFAPL2, the existing method of handing message re- • The body indicates how the activity can be carried out: ceipts is simply to adopt a belief that the message has for actions this is a Java class name whereas for plans been received, leaving it as an exercise to the application this is the expression of how the actions are combined programmer to deal with this event. One reason behind this for a more complex activity. method is that there is currently no support for messages to be linked into conversations. In contrast, ACRE can analyse the In the existing implementation of goal-handling, goals are conversations and protocols about which the agent is aware achieved by comparing them with the postconditions of the and generate more appropriate goals and beliefs whenever activities that the agent is capable of performing. Figure 1 messages are received and sent. shows an example definition of a plan designed to check The goals or beliefs that are generated depend on the context whether a host (identified by an IP address contained in within which a message is sent. For example, a propose the ?ip_addr variable) is responding to ping requests (the message is used to indicate that the sender proposes to perform actual code implementing the plan is omitted). The precon- some action under certain conditions. There are, however, dition BELIEF(true) is always satisfied. The postcondi- more than one reason why an agent may receive such a tion BELIEF(pingStatus(?ip_addr,?status)) in- message. In one situation, the proposal is unsolicited (for dicates that on successful execution of this plan, the agent example to initiate a FIPA Propose Interaction Protocol [21]). will expect to have a belief about the status of the IP address In this case, the message has no prior context and is unrelated that it attempted to check. to any previous experience of the recipient. By its nature, a PLAN checkPingStatus(?ip_addr) { propose message requires a response and so the recipient PRECONDITION BELIEF(true); agent must evaluate the proposal and communicate whether or POSTCONDITION BELIEF(pingStatus(?ip_addr,?status)); ... not it is willing to accept the proposal. As such, this situation } will result in the adoption of a goal indicating that this type of evaluation should take place. Fig. 1. AFAPL2 Plan Definition (plan body omitted) In contrast, a proposal may have been solicited by the recip- ient. The message may be matched to an existing conversation, GOAL(pingStatus(192.168.1.1,?status)) in- either by means of an explicit conversation ID or by matching dicates that the agent aims to have a belief about the status of its content against that expected by the relevant protocol. By the host with the IP address 192.168.1.1. This interpreta- analysing this conversation, the agent can identify whether or tion of the goal would be contained in the relevant ontology. not a call for proposals was previously sent out. In sending Here, ?status is a variable (indicated by the ? sigil) that such a call, the agent will have been pursuing some other goal can match against anything. Thus it is not a goal to bring about and so the adoption of an additional goal to handle the proposal a particular status; rather just to find out what that status is. is not desirable. Instead, a belief is adopted to indicate that the An agent having this goal would identify the proposal has been received. checkPingStatus plan to be a candidate plan for This approach also allows the agent to engage in separate its achievement.. This is the case for two reasons. Firstly, its but related conversations with different agents concurrently, as postcondition matches the goal, meaning that the agent will is shown in the example in Section VI. anticipate its goal being achieved by a successful execution of Another example of the run-time conversation reasoning is this plan and secondly because its precondition is satisfied by on the receipt of an accept-proposal message. In this the current belief set of the agent (since an agent will always case, the treatment is different because of the future messages believe true to be true). In deciding on the appropriate that the relevant protocol may or may not require to be sent course of action, the goal reasoning engine will identify all in response. Under some protocols, an accept-proposal such candidate activities and execute one. In the event that message is the final message in the conversation (e.g. the no candidate activities can be found, the goal is dropped as FIPA Propose Interaction Protocol [21] or the Vickrey Auction unachievable. shown in Section VI). Here, a goal should be adopted merely 9 to perform the task that has been proposed and accepted. No further communication is required. In other cases, such as within a FIPA Contract Net Interac- tion Protocol [22], the recipient of the accept-proposal message is required to communicate the result of performing the stated action back to the sender. In this case, the goal to be satisfied is twofold: firstly to perform the action and then communicate the result of this action to the sender. In reality, only one goal is necessary, as it is impossible to communicate the result of an action that has not been committed. This should be reflected in the preconditions of any activity that communicates the result of an action. In the case of the sender of a message, it is not necessary to generate these goals. Here, the message is sent by the agent as a result of it having a goal that must be satisfied. VI. E XAMPLE : V ICKREY AUCTION Fig. 2. AUML Diagram for a Vickrey-style auction In order to demonstrate how the ACRE system works, we use a Vickrey Auction Interaction Protocol. Figure 2 illustrates GOAL(performedTask(collected(item(20,25)))) the protocol using Agent UML [23]. A Vickrey auction is a non-iterated auction, in that each Fig. 4. Initial goal to trigger a Vickery Auction bidder submits only a single bid, which is either accepted or rejected. It is also a sealed-bid auction, in that bids are communicated only to the auctioneer. In a Vickrey Auction, to it to satisfy this goal. One option may be to execute a plan the winner of the auction is the bidder who submits the highest such as that defined in Figure 5. This is a plan that allows bid, though the ultimate price paid is equal to the second- the agent to carry out the task (i.e. collect the referenced highest bid. item) itself, without the need for engaging in conversation In this example, one agent is assumed to desire that a task with other agents. However, it may alternatively be the case be performed by another agent and requests other agents to that the agent is not capable of performing the collection itself submit proposals for the performance of this task. This agent is (if, for example, it is a coordinator of other agents). In such a referred to as the “Auctioneer”. The auction is initiated by the scenario, it may be necessary to engage with other agents in Auctioneer sending a cfp message to a number of potential order to find another that will be capable of (and willing to) “Bidder” agents. Each bidder considers the call for proposals carry out the task instead. The holding of an auction is one and decides whether or not to participate in the auction. Having common way of solving such a problem. done so, it indicates its decision to the Auctioneer either by submitting a bid (via a propose message) or by explicitly PLAN collectItem(?x,?y) { declining to do so (using a refuse message). PRECONDITION BELIEF(true); POSTCONDITION After receiving all of these responses, the Auctioneer must BELIEF(performedTask(collected(item(?x,?y)))); decide which is the winner of the auction and communicate ... } its decision to each of the Bidders. This is done by sending a accept-proposal message to the successful bidder and a reject-proposal message to those that are unsuccessful. Fig. 5. Plan Definition to allow an agent collect items (plan body omitted) Sample code to implement an Auctioneer agent is presented A. ACRE Implementation Example in Figure 3. This include two plans used in the implementation As noted in the above section, a Vickrey auction is typically of a Vickrey Auction. In addition to the two plans, the initiated by an agent that wishes to have some task performed agent also includes an AuctionModule, which contains the by another agent. This will generally be indicated by the agent code to reason about the bids that have been received and adopting a goal to have the task performed. decide upon a winner. Two actuators are also present: one In this example, we consider a MAS consisting of agents (addBid) to add a received bid to the AuctionModule and that are situated in a virtual grid world that contains items that the other (endAuction) to trigger the ending of the auction the agents are required to collect. We begin the case study in a and cause a winner to be decided upon. Finally, a perceptor situation where one agent (which will become the Auctioneer is also present (auctionPerceptor) that monitors the state of agent) has discovered the location of an item and wishes to the AuctionModule and adopts beliefs based thereon. These have it collected. This is reflected by the adoption of a goal, include beliefs about who the winners and losers of the auction which is shown in Figure 4. are, following the end of the auction. The addition of this goal to the agent’s mental state will As outlined in Section IV, the goal reasoning engine firstly cause the goal reasoning engine to evaluate the options open seeks an activity (either an action or a plan) whose postcon- 10 IMPORT com.agentfactory.afapl2.core.agent.FIPACore; IMPORT agent.ACREAgent; PLAN cfpTaskSolver(?task) { PRECONDITION BELIEF(haveProposal(bidfor(?task,?bid),?agentID,?cid)); POSTCONDITION BELIEF(performedTask(?task)); BODY SEQ ( FOREACH ( haveProposal(bidfor(?task,?amount),?agentID,?cid), addBid(?task,?agentID,?amount,?cid), ), endAuction, FOREACH ( BELIEF(status(?task,?agentID,winner)), accept-proposal(?agentID,?task) ), FOREACH ( BELIEF(status(?task,?agentID,loser)), reject-proposal(?agentID,?task) ), ADOPT(performedTask(?task)) ); } PLAN solicitProposals(?task) { PRECONDITION BELIEF(neighbour(agentID(?aname,?aaddr))); POSTCONDITION BELIEF(haveProposal(bidfor(?task,?bid),agentID(?aname,?aaddr),?cid)); BODY FOREACH ( BELIEF(neighbour(?agentID)), SEQ ( cfp(?agentID,bidfor(?task)), OR ( AWAIT(BELIEF(haveProposal(?bid,agentID(?aname,?aaddr),?cid))), AWAIT(BELIEF(haveRefusal(?task,agentID(?aname,?aaddr),?cid))), SEQ( DELAY(20), ADOPT(BELIEF(timeout(?agentID)))) ) ) ); } LOAD_MODULE AuctionModule module.AuctionModule; PERCEPTOR auctionPerceptor { CLASS perceptor.AuctionPerceptor; } ACTION endAuction { CLASS actuator.EndAuctionActuator; } ACTION addBid( ?task, ?agentID, ?amount, ?cid ) { actuator.AddBidActuator; } Fig. 3. AFAPL2 Auctioneer Agent dition satisfies the goal. In this example, the postcondition to succeed, the agent must already believe that it has received of the cfpTaskSolver plan will match the goal. This at least one other proposal from another agent to perform the postcondition contains the variable ?task, which is matched task. As this is not the case, the goal reasoner must identify against the goal. This has the effect that the plan will be another activity that will bring about that precondition. invoked with collected(item(20,25)) set as the value for the ?task variable. The solicitProposals plan has a postcondition that satisfies the precondition of cfpTaskSolver and is ex- However, this plan by itself will not be capable of bringing ecutable if the agent is aware of at least one neighbour- about successful achievement of the goal. This is because it ing agent that it can invite to the auction. Thus the strat- also has a precondition that indicates that in order for the plan egy the Auctioneer will employ will be to firstly execute 11 IMPORT agent.ACREAgent; PLAN cfpProposal(?task, ?initiator, ?cid) { PRECONDITION BELIEF(canBid(?task, ?amount, ?cid)); POSTCONDITION BELIEF(respondedToCfp(bidfor(?task), ?initiator, ?cid)); BODY propose(?initiator,bid(?task,?amount)); } PLAN cfpRefusal(?task,?initiator,?cid) { PRECONDITION BELIEF(noBid(?task,?cid)); POSTCONDITION BELIEF(respondedToCfp(bidfor(?task),?initiator,?cid)); BODY refuse(?initiator,bid(?task)); } ACTION generateBid( ?task, ?cid ) { PRECONDITION BELIEF(conversation(?cid,acre-vickrey)); POSTCONDITION BELIEF(canBid(?task,?amount,?cid)); CLASS is.lill.acre.actuator.GenerateBidActuator; } Fig. 6. AFAPL2 Bidder Agent solicitProposals and then cfpTaskSolver in the ACRE is aware that the proposal or refusal are in response to expectation that the goal will be satisfied afterwards (by a call for proposals that was issued by the Auctioneer and so another agent performing the task). generates a belief rather than a goal. The body of solicitProposals firstly considers If at least one bid is received then the precondition of all of the agents it has knowledge of (the FOREACH cfpTaskSolver is satisfied and that plan may be executed. plan operator will execute the following code in paral- In this plan, the Auctioneer evaluates each of the proposals lel for every belief in the agent’s belief set that matches it has received and adds it to the AuctionModule that takes BELIEF(neighbour(?agentID)), where ?agentID care of the decision-making with regard to the winner of the can is bound in turn to the contents of each belief). For each auction. Once all of the bids have been added, the auction of these agents it firstly sends a message to initiate the auction can be ended. The auction perceptor will cause a set of (the cfp action is part of the standard FIPACore agent that beliefs about the auction to be adopted. These are used is imported at the top of the file). It then either waits until to send accept-proposal messages to the winner and one of the following events has occurred: a) it believes it has reject-proposal messages to each of the losers of the received a proposal from the bidder, b) it believes that it has auction. received a rejection from the bidder or c) some timeout period In the context of the auctioneer, one advantage of this elapses, following which it adopts a belief to that effect. Once approach is that these plans are not limited to use within a one of these things has occurred, the plan has completed. Vickrey Auction. For example, a Contract Net Protocol [22] It is important to note at this stage that the postcondition of is also initiated by sending a cfp message and awaiting a solicitProposals may not be satisfied by its execution. response by means of either a propose or refuse message. The postcondition is designed to indicate the intended result of Figure 6 contains the AFAPL2 code for the Bidder agents. the plan, rather than enumerating all of its possible outcomes. These agents must respond to the cfp message sent by the In this case, the purpose of the plan is to solicit bids from Auctioneer to initiate the auction. This is done by means of other agents as part of an auction. Although it is possible that ACRE posting an appropriate goal for the agent’s goal reasoner all agents could refuse to participate or fail to respond, it is not to solve. In this example, the goal is satisfied by the identi- logical for an agent to issue a call for proposals in the hope cal postconditions of the cfpProposal and cfpRefusal that this will occur. From a goal-reasoning point of view, if no plans. However, there is no activity available with a postcon- bids are received then the precondition of cfpTaskSolver dition that matches the precondition of cfpRefusal. On the is not satisfied and the goal is considered to be unsolvable. other hand, cfpProposal’s precondition can be satisfied This is a logical outcome since the agent has no capability of by executing the generateBid action (providing that its performing the task itself and has failed to find another agent precondition that the conversation, represented by the variable that is willing to do so on its behalf. ?cid is of the type “acre-vickrey”). This is executed, followed The beliefs about the receipt of a proposal or refusal are by cfpProposal, assuming a belief that the agent is in a generated by ACRE reasoning about the conversations. This position to bid has been created. is an example of the situation presented in Section V where The generateBid action may, however, cause the agent 12 to decline to make a bid (indicated by adopting a belief of the [4] T. Finin, R. Fritzson, D. McKay, and R. McEntire, “KQML as an Agent type noBid). This would mean that the precondition for the Communication Language,” in Proceedings of the Third International Conference on Information and Knowledge Management, Gaithersburg, cfpProposal plan has not been satisfied and so it cannot MD, 1994, pp. 456–463. be executed to satisfy the goal. At this point, the goal reasoner [5] S. Poslad, P. Buckle, and R. Hadingham, “The FIPA-OS Agent Plat- will re-evaluate the goal against the current belief set of the form: Open Source for Open Standards,” in Proceedings of the 5th International Conference and Exhibition on the Practical Application agent and, on finding the belief that the agent will not make a of Intelligent Agents and Multi-Agents (PAAM2000), Manchester, 2000, bid, now sees that the precondition of cfpRefusal is already p. 368. satisfied by the current mental state of the agent. Thus this plan [6] Foundation for Intelligent Physical Agents, “FIPA Commu- nicative Act Library Specification,” 2002. [Online]. Available: is called instead, causing a refuse message to be sent to the http://www.fipa.org/specs/fipa00037/ Auctioneer. [7] ——, FIPA Interaction Protocol Library Specification, Std., 2000. This example demonstrates one drawback of the use of [Online]. Available: http://www.fipa.org/specs/fipa00025/ postconditions in AFAPL2 to indicate the desired outcomes of [8] F. Bellifemine, G. Caire, T. Trucco, and G. Rimass, “Jade Programmer’s Guide,” 2007. [Online]. Available: activities. In this case, planning would be better facilitated by http://jade.tilab.com/doc/programmersguide.pdf the express inclusion of noBid as a belief that will be adopted [9] R. H. Bordini, J. F. Hübner, and M. J. Wooldridge, as an alternative outcome of the generateBid plan. As no Programming multi-agent systems in AgentSpeak using Jason. Wiley-Interscience, 2007. [Online]. Available: express support is available for the enumeration of byproducts http://books.google.com/books?hl=en&lr=&id=AJHD4GkIQs0C&pgis=1 of activites (or the beliefs associated with a plan failing in its [10] R. Collier, R. Ross, and G. M. P. O’Hare, “A Role-Based Approach purpose). to Reuse in Agent-Oriented Programming,” in AAAI Fall Symposium No particular code is required to handle the response on Roles, an Interdisciplinary Perspective (Roles 2005), Arlington, VA, USA, 2005. from the Auctioneer. In the event of the receipt of a [11] M. Barbuceanu and M. S. Fox, “COOL: A language for describing accept-proposal message, this indicates that the Bidder coordination in multi agent systems,” in Proceedings of the First is required to carry out some task that it has proposed International Conference on Multi-Agent Systems (ICMAS-95), 1995, pp. 17–24. to do, and so ACRE will adopt a goal to that effect. A [12] S. Cost, T. Finin, Y. Labrou, X. Luan, Y. Peng, I. Soboroff, J. Mayfield, reject-proposal, on the other hand, does not require any and A. Boughannam, “Jackal: a Java-based Tool for Agent Develop- further action from the Bidder, so ACRE will merely adopt a ment,” in Working Papers of the AAAI-98 Workshop on Software Tools for Developing Agents. AAAI Press, 1998. belief to that effect that can be reasoned about by the agent. [13] J. M. Bradshaw, S. Dutfield, P. Benoit, and J. D. Woolley, “KAoS: Toward an industrial-strength open agent architecture,” Software Agents, VII. C ONCLUSIONS AND F UTURE W ORK pp. 375–418, 1997. This paper presents a prototype of the ACRE conversation [14] R. S. Cost, Y. Chen, T. Finin, Y. Labrou, and Y. Peng, “Modeling agent conversations with colored petri nets,” in reasoning system and specifically its integration into the In: Workshop on Specifying and Implementing Conversation AFAPL2 agent programming language. Although currently Policies, Third International Conference on Autonomous Agents limited to AFAPL2, it is intended that ACRE will be used in (Agents ’99), Seattle, 1999, pp. 59–66. [Online]. Available: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.113.6521 conjunction with several other agent programming languages. [15] H. Parunak, “Visualizing Agent Conversations: Using Enhanced Dooley Although full integration with several languages is desirable, Graphs for Agent Design and Analysis,” in Proceedings of the Second it may be necessary to adapt ACRE’s workings to the specific International Conference on Multi-Agent Systems (ICMAS), 1996. needs and capabilities of particular languages. For example, [16] Foundation for Intelligent Physical Agents, “FIPA ACL Message Structure Specification,” 2002. [Online]. Available: not all languages support the use of preconditions and postcon- http://www.fipa.org/specs/fipa00061/ ditions of activities to facilitate reasoning about them. On the [17] L. Braubach and A. Pokahr, “Goal-Oriented Interaction Protocols,” in other hand, support for ACL standards is widespread and so MATES ’07: Proceedings of the 5th German Conference on Multiagent System Technologies, vol. 4687. Leipzig, Germany: Springer, 2007, pp. the grouping of messages into conversations is part of ACRE 85–97. that is likely to be more widely applicable in its current form. [18] R. Collier, R. Ross, and G. M. P. O’Hare, “Realising Reusable Agent Be- The availability of cross-platform communication tools such haviours with ALPHA,” in Proceedings of the 3rd German Conference as ACRE, together with shared ontologies and protocol def- on Multi-Agent System Technologies (MATES 05), Koblenz, Germany, 2005, pp. 210–215. initions can only aid interoperability between distinct agent [19] Y. Shoham, “Agent0: An agent-oriented programming language and its platforms, toolkits and programming languages. interpreter,” Journal of Object-Oriented Programming, vol. 8, no. 4, pp. 19–24, 1991. R EFERENCES [20] M. Dragone, D. Lillis, R. W. Collier, and G. M. P. O’Hare, “Practical Development of Hybrid Intelligent Agent Systems with SoSAA,” in [1] Y. Labrou, “Standardizing agent communication,” Multi- Proceedings of the 20th Irish Conference on Artificial Intelligence and Agents Systems and Applications (Advanced Course on Cognitive Science, Dublin, Ireland, August 2009. Artificial Intelligence), pp. 74–97, 2001. [Online]. Available: [21] Foundation for Intelligent Physical Agents, “FIPA Propose http://portal.acm.org/citation.cfm?id=567252 Interaction Protocol Specification,” 2002. [Online]. Available: [2] C. Muldoon, G. OHare, R. W. Collier, and M. OGrady, http://www.fipa.org/specs/fipa00036 Towards Pervasive Intelligence: Reflections on the Evolution [22] Foundation For Intelligent Physical Agents, “FIPA Contract of the Agent Factory Framework. Boston, MA: Springer Net Interaction Protocol Specification,” 2002. [Online]. Available: US, 2009, ch. 6, pp. 187–212. [Online]. Available: http://www.fipa.org/specs/fipa00029 http://www.springerlink.com/content/g813865gq77731p1 [3] R. Collier, G. O’Hare, T. Lowen, and C. Rooney, “Beyond Prototyping [23] B. Bauer, J. Müller, and J. Odell, “Agent UML: A Formalism for in the Factory of Agents,” in Multi-Agent Systems and Application III: Specifying Multiagent Software Systems,” Int. Journal of Software 3rd International Central and Eastern European Conference on Multi- Engineering and Knowledge Engineering, vol. 11, no. 3, pp. 207–230, Agent Systems (CEEMAS 2003), Prague, Czech Republic, 2003. 2001. 13