#! /usr/bin/ python # -*- encoding: utf-8 -*- from utils import set_ams, config_loop, start_loop, display_message config_loop(gui=True) from agent import Agent from messages import ACLMessage from aid import AID from pickle import dumps, loads from time import sleep class Teste(Agent): def __init__(self, aid): Agent.__init__(self, aid) def on_start on_start(self): Agent.on_start on_start(self) display_message(self.aid.name, "Hello World") if 'Bob' in self.aid.name: message = ACLMessage(ACLMessage.INFORM) message.add_receiver(AID('Alice')) message.set_content('Hello Alice!') self.send(message) def react(self, message): Agent.react(self, message)
#! /usr/bin/python # -*- coding: utf-8 -*- from utils import set_ams, config_loop, start_loop, display_message config_loop(gui=True) from agent import Agent from messages import ACLMessage from protocols import FipaContractNetProtocol from aid import AID from pickle import dumps, loads class InitiatorProtocol(FipaContractNetProtocol): def __init__(self, agent, message): super(InitiatorProtocol, self).__init__(agent, message, is_initiator=True) def handle_propose(self, message): FipaContractNetProtocol.handle_propose(self, message) display_message(self.agent.aid.name, loads(message.content)) def handle_refuse(self, message): FipaContractNetProtocol.handle_refuse(self, message) display_message(self.agent.aid.name, loads(message.content)) def handle_all_proposes(self, proposes): FipaContractNetProtocol.handle_all_proposes(self, proposes) display_message(self.agent.aid.name, 'Analisando Propostas...') better_propose = loads(proposes[0].content)
# -*- encoding: utf-8 -*- from utils import display_message, set_ams, start_loop, config_loop config_loop() from agent import Agent from messages import ACLMessage from aid import AID from protocols import FipaContractNetProtocol from filters import Filter from pickle import loads, dumps from time import sleep #=============================================================================== # What is needed to create an agent with standardized protocols behaviours? # First, the protocol class needs to be defined # Second, this protocol class needs to be associated with the agent's # behaviour #=============================================================================== class BookstoreAgentBehaviour(FipaContractNetProtocol): def __init__(self, agent): super(BookstoreAgentBehaviour, self).__init__(agent, is_initiator=False) def handle_cfp(self, message): FipaContractNetProtocol.handle_cfp(self, message) display_message(self.agent.aid.name, 'Request Received') order = loads(message.content) for book in self.agent.booksList:
# -*- encoding: utf-8 -*- from utils import display_message, set_ams, start_loop, config_loop config_loop() from agent import Agent from messages import ACLMessage from aid import AID from protocols import FipaContractNetProtocol from filters import Filter from pickle import loads, dumps from time import sleep # =============================================================================== # Note, o que é necessário para criar um agente com comportamentos padronizados # em protocolos? # Primeiro, é preciso definir a classe protocolo # Segundo é preciso associar esta classe protocolo como um comportamento do # agente # =============================================================================== class ComportamentoAgenteConsumidor(FipaContractNetProtocol): def __init__(self, agent, message): super(ComportamentoAgenteConsumidor, self).__init__(agent, message, is_initiator=True) self.bestPropose = None self.bestBookStore = None def handle_propose(self, message): FipaContractNetProtocol.handle_propose(self, message) display_message(self.agent.aid.name, "Proposta Recebida")