DALI Multi Agent Systems Framework
DALI is a meta interpreter built on top of SICStus Prolog ® (at the moment).
DALI is a powerful framework that extends standard logic programming with reactive and proactive capabilities. It allows for the creation of intelligent agents that can:
- React to external events.
- Proactively pursue goals.
- Maintain internal state and memory.
- Communicate using FIPA-compliant patterns.
Repository Markdown guides and notes:
- Unix Basic Guide
- Unix Advanced Guide
- Unix Advanced Types
- Unix Advanced Instances
- Unix Dashboard Guide
DALI requires SICStus Prolog to be installed and activated on your system.
Download the SICStus Prolog interpreter from the version offered by the University by contacting Prof. Giovanni De Gasperis at [email protected].
You must activate SICStus using the site-wide license provided by the University. Follow the installer instructions to enter the license key.
DALI supports native execution on Windows and Unix-like systems, and also provides a Docker-based setup for containerized runs. Choose the method that best fits your environment.
No complex setup is required. The Windows scripts feature dynamic discovery of SICStus Prolog and streamlined execution.
Warning
SICStus Prolog License & Version Availability
The University has purchased licenses for SICStus Prolog 4.6.0. However, the official SICStus website currently only provides downloads for more recent versions (4.8 to 4.10).
To obtain the installer for the correct version (4.6.0), please contact Prof. Giovanni De Gasperis at [email protected].
- Navigate to
examples/win/basic. - Double-click
startmas.bat. - Descriptive windows for the Server, User agent, and Agents will open automatically.
DALI leverages tmux for a powerful, tiled interface in Unix environments.
- Navigate to
examples/unix/advanced. - Run the startup script:
./startmas.sh
- A tmux session will launch with a tiled layout for all MAS components.
For a containerized setup, use the material in examples/docker/.
- See Docker Guide for setup, build, and runtime instructions.
- See Docker Installer Notes for the required SICStus installer placement.
Once the MAS is running, you can test the communication between agents using the User Console (or the Web Dashboard).
- In the User Console window (Prolog prompt), identify the target agent:
agent1.
- Identify yourself:
user.
- Send a message (e.g., the
goevent):send_message(go, user).
Monitor and interact with your MAS through a modern, Zero-Config web interface. The dashboard automatically discovers agents and provides real-time logs and command input.
From a Unix-like environment (including WSL2):
cd examples/unix
./run.sh --folder ./advancedAccess the UI at http://localhost:5000.
For more detailed information on available CLI flags and internal functionality, see DASHBOARD.md.
The repository is organized to support different levels of complexity and deployment environments:
src/: The core DALI engine and meta-interpreter.examples/:win/: Native Windows.batarchitectures.basic/: Simple, flat agent structures (perfect for beginners).advanced/: Complex structures using agent types and instances
unix/: Advancedtmuxandbasharchitectures.basic/: Simple, flat agent structures (perfect for beginners).advanced/: Complex structures using agent types and instances.ui/: Web dashboard utilities and documentation for Unix-based runs.
docker/: Containerized environment for running DALI with Docker.more/: Additional projects, references, and linked examples.
img/: Screenshots and visual documentation assets.docs/: Technical documentation and research papers.
Check the release history page for more information.
To create your own DALI MAS from scratch, use an existing example as a boilerplate:
- Create a project folder (e.g.,
projectFolder). - Copy the core engine — place the
DALI/srcfolder inside yourprojectFolder. - Initialize your application — create a sub-folder for your DALI app (e.g.,
DALIappFolder). - Copy a boilerplate — use
examples/unix/advancedorexamples/unix/basicif on Unix, orexamples/win/advancedorexamples/win/basicon Windows as a starting point. - Define your agents:
- Advanced layout: define agent types in
mas/types/and instances inmas/instances/. - Basic layout: place all agent
.txtfiles directly inmas/.
- Advanced layout: define agent types in
- Run the startup script — the script will automatically discover your SICStus installation and launch the MAS.
-
in Robotics: coordination among store delivery robots:
Video from S. Valentini.
-
F1 Race Simulator: A Formula 1 race simulator where DALI agents control racing cars in a competitive environment.
Video from M. Piccirilli.
- DALI 1.0 original URL(no more active): http://www.di.univaq.it/stefcost/Sito-Web-DALI/WEB-DALI
- COSTANTINI, Stefania. The DALI Agent-Oriented Logic Programming Language: Summary and References 2015.
- COSTANTINI S, TOCCHIO A. A logic programming language for multi-agent systems. Logics in Artificial Intelligence, Springer Berlin Heidelberg, 2002, pp:1-13.
- COSTANTINI S, TOCCHIO A. The DALI logic programming agent-oriented language. In Logics in Artificial Intelligence Springer Berlin Heidelberg, 2004, pp:685-688.
- COSTANTINI S, TOCCHIO A. DALI: An Architecture for Intelligent Logical Agents. In: AAAI Spring Symposium: Emotion, Personality, and Social Behavior. 2008. pp:13-18.
- BEVAR V, COSTANTINI S, TOCCHIO A, DE GASPERIS G. A multi-agent system for industrial fault detection and repair. In: Advances on Practical Applications of Agents and Multi-Agent Systems. Springer Berlin Heidelberg, 2012. pp:47-55.
- DE GASPERIS, G, BEVAR V, COSTANTINI S, TOCCHIO A, PAOLUCCI A. Demonstrator of a multi-agent system for industrial fault detection and repair. In: Advances on Practical Applications of Agents and Multi-Agent Systems. Springer Berlin Heidelberg, 2012. pp:237-240.
- DE GASPERIS Giovanni. DETF 1st Release (Version 14.08a). Zenodo.
, 2014, August 6.
- COSTANTINI, Stefania; DE GASPERIS, Giovanni; NAZZICONE, Giulio. DALI for cognitive robotics: principles and prototype implementation. In: International Symposium on Practical Aspects of Declarative Languages. Springer, Cham, 2017. p. 152-162.
- COSTANTINI, Stefania, DE GASPERIS, Giovanni, PITONI Valentina, SALUTARI Agnese. DALI: A multi agent system framework for the web, cognitive robotic and complex event processing., CILC 2017, 32nd Italian Conference on Computational Logic 26-28 September 2017, Naples, Italy
- RAFANELLI, Andrea; COSTANTINI, Stefania; DE GASPERIS, Giovanni. A Multi-Agent-System framework for flooding events. 2022. WOA 2022: 23rd Workshop From Objects to Agents, September 1–2, Genova, Italy
- COSTANTINI, Stefania. Ensuring trustworthy and ethical behaviour in intelligent logical agents. Journal of Logic and Computation, 2022, 32.2: 443-478.
Giovanni De Gasperis
Email: [email protected]
Distributed under the Apache License 2.0. See LICENSE for more information.
We welcome contributions!
- Fork the repository.
- Create your feature branch (
git checkout -b feature/fooBar). - Commit your changes (
git commit -am 'Add some fooBar'). - Push to the branch (
git push origin feature/fooBar). - Create a new Pull Request to our
devbranch.








