code: def add_behaviour(self, behaviour, template=None):
          
          behaviour.set_agent(self)
          if issubclass(type(behaviour), FSMBehaviour):
              for _, state in behaviour.get_states().items():
                  state.set_agent(self)
          behaviour.set_template(template)
          self.behaviours.append(behaviour)
          if self.is_alive():
              behaviour.start()
docs: Adds and starts a behaviour to the agent.
          If template is not None it is used to match
          new messages and deliver them to the behaviour.
  
          Args:
            behaviour (spade.behaviour.CyclicBehaviour): the behaviour to be started
            template (spade.template.Template, optional): the template to match messages with (Default value = None)