Skip to main content

Plugin for SPADE 3 MAS platform to implement BDI Agents.

Project description

Spade-BDI

https://img.shields.io/pypi/v/spade_bdi.svg https://img.shields.io/pypi/pyversions/spade_bdi.svg MIT License Downloads Documentation Status https://img.shields.io/pypi/format/spade_bdi.svg

Create hybrid agents with a BDI layer for the SPADE MAS Platform.

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.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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spade_bdi-0.3.1.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

spade_bdi-0.3.1-py2.py3-none-any.whl (7.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file spade_bdi-0.3.1.tar.gz.

File metadata

  • Download URL: spade_bdi-0.3.1.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.8.2 requests/2.27.1 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.9.7

File hashes

Hashes for spade_bdi-0.3.1.tar.gz
Algorithm Hash digest
SHA256 293c4a12dfd7968a72556a17e9367458b2481fc94022bdc02ec7a5539b34e9c6
MD5 30a78994fea14afb63d2dbc1d74aee7a
BLAKE2b-256 70319d8f493f0f30e4ebff0f4474e8b4c3792e1526bd74b83da063d297d65baf

See more details on using hashes here.

File details

Details for the file spade_bdi-0.3.1-py2.py3-none-any.whl.

File metadata

  • Download URL: spade_bdi-0.3.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.8.2 requests/2.27.1 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.9.7

File hashes

Hashes for spade_bdi-0.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4fe2dee36d452aa5a763fa5daa8f057a2e0d9ac27c335fb2845b3d0f0082caf4
MD5 cc922c6a5b3c760596387be609406bbe
BLAKE2b-256 26e0e1dff687af61ece1bfddc700df889ab0f05ddb81aaf343a52ec06c6eea53

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page