Programming Multi-agent Systems with SARL

Sebastian Rodriguez
Universidad Tecnol´ogica Nacional, Argentina

Complex software development calls for appropriate high-level features to better and easily tackle the new requirements in terms of interactions, concurrency and distribution. This demands a paradigm change in software engineering and corresponding programming languages. Agent-oriented programming may provide the appropriate support for this change by focusing on a small corpus of commonly accepted concepts and in line with the current developers’ programming practices.

This tutorial introduces SARL [3, 2], a new general-purpose agent-oriented programming language undertaking this challenge. The main perspective that guided the creation of SARL is the establishment of an open and easily extensible language.

SARL ( aims at providing the fundamental abstractions for dealing with concurrency, distribution, interaction, decentralization, reactivity, autonomy and dynamic reconfiguration. These high-level features are now considered as the major requirements for an easy and practical implementation of modern complex software applications. We are convinced that the agent-oriented paradigm (AOP) holds the keys to effectively meet this challenge.

Indeed, the ultimate goal of agent-oriented software engineering (AOSE) and programming is the establishment of a new standard paradigm able to succeed object-oriented paradigm to ease the development of complex software applications by providing higher-level abstractions. However, it is clear that AOP has not yet a significant influence on the current mainstreams and standards in software programming. One possible explanation may be that most of contributions in AOP remain highly theoretical and rather far from industrial concerns and related developers’ programming practices. We adopt a different perspective capitalizing on previous experiences aspiring to define a small corpus of concepts only focusing on the key principles. Considering the variety of existing approaches and meta-models, but also the lack of established standards in the field of AOSE and more generally multi-agent systems, our approach remains as generic as possible and highly extensible to easily integrate new concepts and features. The idea is not to respond to every issue immediately but rather to provide a first set of concepts, the corresponding programming language as well as a set of tools for supporting its implementation. Our expectations is to provide the community with a common forum in terms of a first working testbed to study and compare various programming alternatives and associated meta models.

In this perspective, SARL is platform-independent and agent’s architecture- agnostic. It provides a set of agent-oriented first-class abstractions directly at the language level, but it was designed to ease the integration and the mapping of concepts provided by other meta models. SARL itself exploits this extension mechanism for defining its own extensions (organizational, event-driven, etc.) and also natively supports the notion of holonic multi-agent systems and recursive agent (also called Holon), but does not force the developer to use it.

SARL comes with its full support in the Eclipse IDE for compilation and debugging purposes. We also provide a first set of tools to support its execution [1]. SARL compiler generates Java code that can then be integrated within any agent platforms supporting Java libraries.


The tutorial will introduce SARL’s main concepts, providing basic knowledge to develop multi-agent systems with SARL. Then, we will present more advanced concepts like agent’s architecture extensions and recursive agents programming (Holonic MAS)

  • Introduction to Agent Oriented Programming
  • Basic SARL concepts
  • Development Environment
  • Execution Environment
  • Extending SARL Agents capabilities
  • Holonic Multiagent programming
  • Demos and Examples


  1. St´ephane Galland, Sebastian Rodriguez, and Nicolas Gaud. Run-time envi- ronment for the sarl agent-programming language: the example of the janus platform. International Journal on Future Generation Computer Systems, 2017.
  2. Sebastian Rodriguez, St´ephane Galland, and Nicolas Gaud. A new perspec- tive on multi-agent environment with {SARL}. Procedia Computer Science, 56:526 – 531, 2015.
  3. Sebastian Rodriguez, Nicolas Gaud, and St´ephane Galland. Sarl: a general- purpose agent-oriented programming language. 2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence and Intelligent Agent Technologies, volume 3, pages 103–110, Warsaw, Poland, 2014. IEEE Computer Society Press.