PRACTIONIST: a Framework for Developing BDI Agent Systems Vito Morreale∗ , Susanna Bonura∗, Giuseppe Francaviglia∗, Michele Puccio∗, Fabio Centineo∗, Giuseppe Cammarata∗ , Massimo Cossentino†, and Salvatore Gaglio†‡ ∗ R&D Laboratory - ENGINEERING Ingegneria Informatica S.p.A. † ICAR-Italian National Research Council ‡ DINFO-University of Palermo I. T HE FRAMEWORK In this abstract we give a brief overview of the PRACTION- IST framework, which supports programmers in developing BDI agents and is built on top of JADE [1], a widespread platform that implements the FIPA1 specifications. Therefore, our agents are deployed within JADE containers and their main cycle is implemented by means of a JADE cyclic behaviour (figure 2). Fig. 1. PRACTIONIST over JADE and Prolog. A PRACTIONIST agent is a software component endowed with the following elements (figure 2): • a set of perceptions and the corresponding perceptors that Fig. 2. Components of PRACTIONIST agents. listen to some relevant external stimuli; • a set of beliefs representing the information the agent has got about both its internal state and the external Therefore, a developer who wants to design an agent has to environment; develop (i) the Goals the agent could pursue, (ii) the means • a set of goals the agent wishes or wants to pursue. They (a set of plans, i.e. the Plan Library) to pursue such goals or represent some states of affairs to bring about or activities to react to the stimuli coming from the environment, (iii) the to perform and will be related to either its desires or Perceptors to receive such stimuli, (iv) the Actions the agent intentions (see below); could perform and the corresponding Effectors, and (v) the set • a set of goal relations the agent uses during the deliber- of beliefs and rules (Belief Base) to model the information ation process and means-ends reasoning; about both its internal state and the external world (details on • a set of plans that are the means to achieve its intentions; beliefs are given in [2]). • a set of actions the agent can perform to act over its In the following section we give an overview of how to pro- environment; and gram some of agent components, with reference to the paper • a set of effectors that actually execute the actions. ”Reasoning about Goals in BDI Agents: the PRACTIONIST Framework”, presented at the WOA 2006 [3]. As shown in figure 2, PRACTIONIST agents are structured in two main layers: the framework defines the execution logic II. I MPLEMENTING AGENT COMPONENTS and provides the built-in components according to such a logic, while the top layer includes the specific agent components to The concepts and the examples given in this section refer to be implemented, in order to satisfy system requirements. the tileworld demonstrator, which is a multi agent system with two types of agents, i.e. an agent that manages the environment 1 http://www.fipa.org and player agents. 4 Several simulation parameters can be altered at run time, such as the appear rate and the life cycle of holes, tiles and obstacles. These information was represented by beliefs 2 about the state of the environment represented through the following predicates: • gridSize(width: X, height: Y) represents the size of the grid, in terms of width and height, • holeBirth(rate: X) and holeLifecycle(rate: X) represent the frequency of holes’ birth and their mean life cycle, • tileBirth(rate: X) and tileLifecycle(rate: X) represent the frequency of tiles’ birth and their mean life cycle, • obstacleBirth(rate: X) and obstacleLifecycle(rate: X) rep- resent the frequency of obstacles’ birth and their mean life cycle, • agent(name: X) represents other active player agents. The framework provides the support to let agent make meta-level reasoning. In other words, each player agent, by Fig. 3. The PRACTIONIST Agent Introspection Tool (PAIT). reasoning on above information, will be able to select the optimal strategy to increase its score. For example, the plan FindTileInAmplitudePlan implements a depth search behavior, monitoring and debugging tool, which supports the analysis of while the plan FindTileRandomicallyPlan implements a ran- the agent’s state during its execution. In particular, the PAIT dom search strategy. Thus these plans are used by the player can be suitable to display, test and debug the agents’ relevant to find a tile in several circumstances. entities and execution flow. Each of these components can Analogously, agent beliefs about its state refer to the fol- be observed at run-time through a set of specific tabs (see lowing predicates: figure 3); the content of each tab can be also displayed in an • position(xPos: X, yPos:Y) represents the position of the independent window. player agent, All the information showed at run-time could be saved • score(value: X) represents the current score of the player, in a file, providing the programmer with the opportunity of • hold(obj: tile) states that the player agent holds a tile. performing an off-line analysis. Moreover, the PAIT provides On the base of such beliefs, some goals are defined as well. an area for log messages inserted in the agent source code, As an example, the HoldTile is a state goal that succeeds when according to the Log4j approach. The usage of this console hold(obj: tile) is believed true by the agent for the same tile. and the advantages it provides are described in more details Thus, in the AchieveTilePlan, the player agent has to identify in [4]. a tile within the grid to satisfy the HoldTile goal and then hold ACKNOWLEDGMENTS such a tile by executing the action of picking it up. This work is partially supported by the Italian Ministry The player agent is endowed with the Taker effector, which of Education, University and Research (MIUR) through the triggers and executes the pick up action and updates the project PASAF. environment status and its internal state. The agent is also provided with other effectors (e.g. Mover, Releaser, etc.) to R EFERENCES be able to perform other actions, such as moving itself in the [1] F. Bellifemine, A. Poggi, and G. Rimassa, “JADE - a FIPA- grid and releasing holding tiles. compliant agent framework,” in Proceedings of the Practical Finally, the cognitive system of the agent includes a set Applications of Intelligent Agents, 1999. [Online]. Available: http://jmvidal.cse.sc.edu/library/jade.pdf of perceptors that receive stimuli from the environment. As [2] V. Morreale, S. Bonura, G. Francaviglia, M. Cossentino, and S. Gaglio, an example, the player agent is equipped with the perceptors “PRACTIONIST: a new framework for BDI agents,” in Proceedings of the TileLifeCyclePerceptor, HoleBirthPerceptor, etc. to be able to Third European Workshop on Multi-Agent Systems (EUMAS’05), 2005, p. 236. perceive changes from the environment about tiles’ birth rate, [3] V. Morreale, S. Bonura, G. Francaviglia, F. Centineo, M. Cossentino, the obstacles’ life cycle, and so forth. and S. Gaglio, “Reasoning about goals in BDI agents: the PRACTIONIST framework,” in Proceedings of Joint Workshop “From Objects to Agents”, III. PRACTIONIST AGENT I NTROSPECTION T OOL 2006. (PAIT) [4] V. Morreale, S. Bonura, F. Centineo, A. Rossi, M. Cossentino, and S. Gaglio, “PRACTIONIST: implementing PRACTIcal reasONIng syS- The framework also provides developers with the PRAC- Tems,” in Proceedings of Joint Workshop “From Objects to Agents”, TIONIST Agent Introspection Tool (PAIT), a visual integrated 2005. 2 In PRACTIONIST beliefs can be about either predicates or other be- liefs (expressed by the operator Bel). Moreover, predicates can be ex- pressed by specifying the role of their arguments, i.e. predicate(role1 : element1, role2 : element2, ..., roleN : elementN ). 5