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