Plugin for SPADE 3 MAS platform to implement BDI Agents.
Project description
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.
History
0.3.2 (2025-03-01)
Updated to SPADE 4.0.1
Updated dependencies
License changed to MIT
0.3.1 (2024-01-06)
Added new examples
Added documentation
Updated to SPADE 3.3.2
0.3.0 (2023-06-13)
Updated to SPADE 3.3.0.
0.2.2 (2022-06-03)
Added exception when belief is not initialized.
Improved examples.
Improved documentation.
0.2.1 (2020-04-13)
Fixed a bug when updating beliefs.
Upgraded spade version to 3.1.4.
0.2.0 (2020-02-24)
Created add_custom_actions method.
Added example for actions.
Improved documentation.
Added some helpers like pause_bdi, resume_bdi.
Now the asl file in the constructor is mandatory.
0.1.4 (2019-07-10)
Allow to send messages to JIDs stored as beliefs.
0.1.3 (2019-07-08)
Allow .send to a list of receivers.
Allow to receive messages with lists of lists.
Fixed readme.
0.1.1 (2019-06-18)
Moved from pyson to python-agentspeak
Added some helpers like pause_bdi, resume_bdi.
Now the asl file in the constructor is mandatory.
Allow to send tell messages with no args.
Allow sending messages with variables.
Extended the examples.
0.1.0 (2019-03-09)
First release on PyPI.