Python Agent DEvelopment framework

Multi-agent Systems for Python Language!

PADE is a framework for development, execution and management of multi-agent systems environments of distributed computation.

PADE is 100% written in Python language and uses the Twisted libraries for implementing the communication between the network nodes.

PADE is open-source under MIT licence terms and is developed by Smart Grids Group (GREI) in Department of Electrical Engineering by Federal University of Ceará, Brazil.

Any one who want to contribute with PADE project is welcome to do so. You can download, execute, test and send us feedback about PADE functionalities.

PADE is simple!

# agent_example_1.py
# A simple hello agent in PADE!

from pade.misc.utility import display_message, start_loop
from pade.core.agent import Agent
from pade.acl.aid import AID
from sys import argv

class AgenteHelloWorld(Agent):
    def __init__(self, aid):
        super(AgenteHelloWorld, self).__init__(aid=aid)
        display_message(self.aid.localname, 'Hello World!')


if __name__ == '__main__':
    agents_per_process = 3
    c = 0
    agents = list()
    for i in range(agents_per_process):
        port = int(argv[1]) + c
        agent_name = 'agent_hello_{}@localhost:{}'.format(port, port)
        agente_hello = AgenteHelloWorld(AID(name=agent_name))
        agents.append(agente_hello)
        c += 1000

    start_loop(agents)

In this example file (wich is in PADE github repository in the example folder) is possible to visualize three well defined sessions.

The first session has the necessary PADE classes imports

In the second session is a class who uses the super PADE class Agent, where the main agent attributions are defined.

In the third session the procedures to launch agents in PADE run time are defined.

If you want to know more about PADE framework, you can follow the steps described hear: Hello World.

It’s easy to install

For install PADE just execute the following command in a unix-based terminal window:

$ pip install pade
$ pade start-runtime --port 20000 agent_example_1.py

You can see more about installing PADE hear: Installation Process.

Functionalities

The PADE framework was developed with automation systems in mind. So, PADE has the following functionalities in its library fo multi-agent systems development:

Object Orientation
Abstraction for build agents and its behaviours using object orientation concepts.
Run time execution
It’s a module to initialize the agents execution enviroment written 100% in Python language.
FIPA-ACL messages
It’s a module to build and handle messages in FIPA-ACL standard.
Filtering Messages
Filter functionalities to multiagent messages.
FIPA protocols
It’s a module for implement FIPA standard protocols, like ContractNet, Request and Subscribe.
Cyclic and Timed Behaviours
Module for cyclic and timed behaviours.
Data Base
Module for Data Base interaction.
Serialized objects exchange
It’s possible to send serialized objects in the FIPA-ACL messages content.

In addition to these features, PADE is easy to install and configure, multiplatform, and can be installed and used on embedded hardware that runs Linux operating system such as Raspberry Pi and BeagleBone Black as well as Windows operating system