Chapter 1. Introduction

Jadex is a Belief-Desire-Intention (BDI) reasoning engine for intelligent agents. The term reasoning engine means that it can be used together with different kinds of (agent) middleware providing basic agent services such as a communication infrastructure and management facilities. Currently, two mature adapters are available. The first adapter is available for the well-known open-source JADE multi-agent platform [Bellifemine et al. 2007] and the second one is the Jadex Standalone adapter which is a small but fast environment with a minimal memory footprint. In this tutorial the Jadex Standalone adapter is used, but in principle the used adapter is not of great importance as it does not change the way Jadex agents are programmed or way the Jadex tools are used.

The concepts of the BDI-model initially proposed by Bratman [Bratman 1987] were adapted by Rao and Georgeff [Rao and Georgeff 1995] to a more fomal model that is better suitable for multi-agent systems in the software architectural sense. Systems that are built on these foundations are called Procedural Reasoning Systems (PRS) with respect to their first representative. Jadex builds on experiences gained from leading existing BDI systems such as JACK [Winikoff 2005] and consequently improves previously not-addressed BDI weaknesses like the concurrent handling of inconsistent goals with built-in goal deliberation [Pokahr et al. 2005a].

This tutorial is a good starting point for agent developers, that want to learn programming Jadex BDI agents in small hands-on exercises. Each lesson of this tutorial covers one important concept and tries to illustrate why and especially how the concept can be used in Jadex. In the following Chapter 2, Starting an Agent it is described how to setup the Jadex environment properly and how to start a simple agent. It is explained step by step how to handle plans (Chapter 3, Using Plans), beliefs (Chapter 4, Using Beliefs) and goals (Chapter 6, Using Goals) and how these elements can be composed (Chapter 5, Using Capabilities) into reusable agent modules. Another lesson covers some aspects about information exchange on the intra and inter-agent level and builds up a multi-agent scenario Chapter 7, Using Events. Thereafter, in Chapter 8, External Processes the integration of Jadex agents with external processes is exemplarily explained. Finally a conclusion and an outlook is given in Chapter 9, Conclusion and Outlook. After having worked through this tutorial the reader should be familiar with all basic agent concepts provided by Jadex. Whenever the reader encounters facts that are not explained in detail here but may need some elaboration for a thorough understanding further reading in the Jadex user guide [Jadex User Guide] is recommended. If you are interested in less technical documentation you may also consider reading about Jadex in one of these book chapters [Pokahr et al. 2005c][Braubach et al. 2005a].

1.1. Application Context

In this tutorial a simple translation agent for single words will be implemented. This agent has the basic task to handle translation requests and produce for a given term in some language the translated term in the desired target language. This base functionality will be extended in the different exercises, but it is not our goal to build up a translation agent, that combines all the extensions, because this would lead to difficulties concerning the complexity of the agent. Instead this tutorial will concentrate on setting up simple agents that explain the Jadex concepts step by step.

1.2. How to Use This Tutorial

  • Work through the exercises in order, because later exercises require knowledge from the earlier ones.

  • Don't destroy your solutions of an exercise by modifying the old files. The different exercises often use the plans and agent description files (ADF) of a preceeding exercise. Copy all files and apply a simple naming scheme which contains the name of the exercise in the plan and ADF file names, e.g. the ADF in the exercise A1 is called TranslationA1.agent.xml and in exercise B1 TranslationB1.agent.xml.

  • Help us to make this tutorial better with your feedback. When you find errors or have problems that are directly concerned with the exercise descriptions feel free to let us know.

  • Whenever you encounter problems with Jadex we would be happy to help you. Please use therefore primarily the sourceforge help forum available on the Jadex sourceforge.net page. There is also a Jadex mailing list that can be used for asking questions about Jadex.