Metadata-Version: 2.1
Name: spade-bdi
Version: 0.2.2
Summary: Plugin for SPADE 3 MAS platform to implement BDI Agents.
Home-page: https://github.com/javipalanca/spade_bdi
Author: Sergio Frayle Pérez
Author-email: sfp932705@gmail.com
License: MIT License v3
Keywords: spade_bdi
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Internet :: XMPP
Requires-Dist: spade (>=3.1.4)
Requires-Dist: agentspeak (==0.1.0)
Requires-Dist: loguru (==0.2.5)

=========
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/apm/l/atomic-design-ui.svg?
    :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


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


* Free software: GNU General Public License v3
* Documentation: https://spade-bdi.readthedocs.io. (to be completed)


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


=======
History
=======

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.


