Spade-BDI
July 28, 2026 ยท View on GitHub
========= Spade-BDI
.. image:: https://img.shields.io/pypi/v/spade_bdi.svg :target: https://pypi.python.org/pypi/spade
.. image:: https://img.shields.io/pypi/pyversions/spade_bdi.svg :target: https://pypi.python.org/pypi/spade_bdi
.. image:: https://img.shields.io/pypi/l/spade_bdi :target: https://opensource.org/licenses/MIT :alt: MIT License
.. image:: https://pepy.tech/badge/spade_bdi :target: https://pepy.tech/project/spade_bdi :alt: Downloads
.. image:: https://readthedocs.org/projects/spade_bdi/badge/?version=latest :target: https://spade-bdi.readthedocs.io?badge=latest :alt: Documentation Status
.. image:: https://img.shields.io/pypi/format/spade_bdi.svg :target: https://pypi.python.org/pypi/spade_bdi
.. image:: https://coveralls.io/repos/github/javipalanca/spade_bdi/badge.svg :target: https://coveralls.io/github/javipalanca/spade_bdi
Create hybrid agents with a BDI layer for the SPADE MAS Platform.
- Free software: MIT License
- Documentation: https://spade-bdi.readthedocs.io.
Features
- Create agents that parse and execute an ASL file written in AgentSpeak.
- Supports Agentspeak-like BDI behaviours.
- Add custom actions and functions.
- Send TELL, UNTELL and ACHIEVE KQML performatives.
Examples
basic.py::
import getpass
from spade_bdi.bdi import BDIAgent
server = input("Please enter the XMPP server address: ")
password = getpass.getpass("Please enter the password: ")
a = BDIAgent("BasicAgent@" + server, password, "basic.asl")
a.start()
a.bdi.set_belief("car", "blue", "big")
a.bdi.print_beliefs()
print(a.bdi.get_belief("car"))
a.bdi.print_beliefs()
a.bdi.remove_belief("car", 'blue', "big")
a.bdi.print_beliefs()
print(a.bdi.get_beliefs())
a.bdi.set_belief("car", 'yellow')
basic.asl::
!start.
+!start <-
+car(red);
.a_function(3,W);
.print("w =", W);
literal_function(red,Y);
.print("Y =", Y);
.custom_action(8);
+truck(blue).
+car(Color)
<- .print("The car is ",Color).
Examples
basic.py::
import getpass
from spade_bdi.bdi import BDIAgent
server = input("Please enter the XMPP server address: ")
password = getpass.getpass("Please enter the password: ")
a = BDIAgent("BasicAgent@" + server, password, "basic.asl")
a.start()
a.bdi.set_belief("car", "blue", "big")
a.bdi.print_beliefs()
print(a.bdi.get_belief("car"))
a.bdi.print_beliefs()
a.bdi.remove_belief("car", 'blue', "big")
a.bdi.print_beliefs()
print(a.bdi.get_beliefs())
a.bdi.set_belief("car", 'yellow')
basic.asl::
!start.
+!start <-
+car(red);
.a_function(3,W);
.print("w =", W);
literal_function(red,Y);
.print("Y =", Y);
.custom_action(8);
+truck(blue).
+car(Color)
<- .print("The car is ",Color).
Credits
This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _audreyr/cookiecutter-pypackage: https://github.com/audreyr/cookiecutter-pypackage