Agent Oriented Programming

Presented by Mehdi Dastani, Koen Hindriks, and João Leite

With the significant advances in the area of autonomous agents and multi-agent systems in the last few years, promising technologies have emerged as a sensible alternative for the development and engineering of multi-agent systems. The result is a variety of programming languages, execution platforms, and tools that facilitate the development and engineering of multi-agent systems. This course aims at introducing novices, researchers, and developers, who already have a basic understanding of multi-agent systems, an overview of the programming languages, techniques, and tools that are currently available to support the effective implementation of multi-agent systems. In this course participants will also learn and practice some basic skills in developing multi-agent systems. Compared to our previous tutorials at previous editions of EASSS, we have updated content and included several recent enhancements, and new lab exercises.


This tutorial will present and discuss various issues in building multi-agent systems focusing on the aim and characteristics of various agent-oriented programming languages and how multi-agent applications can be implemented using these programming languages.

The programme of this tutorial will include the following topics:

  • a brief presentation of agent-oriented software engineering
  • an overview of the research agenda in programming languages for multi-agent systems
  • description and discussion of some well-known agent languages such as 2APL, 2OPL, Jason, Goal, Jadex, Jade, and Jack
  • multi-agent environments
  • some typical agent-based applications
  • development tools for agents
  • testing agents and MAS

In addition, a hands-on approach will be used to allow participants exercise basic skills to implement a multi-agent system by means of a well-structured exercise. For this purpose, we will present and explain one agent-oriented programming language in sufficient detail to complete a programming exercise.