C1. Simple Agents in Jade

Slide: file:///C:/UNI/Magistrale/ISE/C1%20Simple%20Agents%20in%20Jade.pdf

Indice


Obiettivo del Modulo

Definizione

JADE (Java Agent DEvelopment Framework) e un framework Java per sviluppare applicazioni multi-agente conformi alle specifiche FIPA.

Il modulo mostra come passare dalla definizione teorica di agente a una piattaforma concreta in cui gli agenti sono oggetti Java, hanno un ciclo di vita, comunicano con messaggi e sono eseguiti dentro una piattaforma distribuita.

In pratica: JADE e utile per vedere che un agente non e solo una classe Java. La classe fornisce codice, ma la piattaforma fornisce identita, registrazione, comunicazione, lifecycle e servizi di scoperta.


Agenti come Componenti Autonomi

Weak notion of agent

Definizione

La weak notion of agent descrive un agente attraverso quattro proprieta: autonomia, abilita sociale, responsiveness e proactiveness.

Le proprieta principali sono:

  • Autonomia: l’agente svolge la maggior parte dei propri compiti senza intervento diretto di umani o altri agenti.
  • Abilita sociale: l’agente interagisce con altri agenti o persone quando serve per raggiungere i propri obiettivi.
  • Responsiveness: l’agente percepisce l’ambiente e risponde tempestivamente ai cambiamenti.
  • Proactiveness: l’agente non reagisce soltanto, ma prende iniziativa rispetto ai propri goal.

Esempio

Un agente che gestisce prenotazioni non aspetta solo richieste: puo controllare nuove disponibilita, inviare notifiche e negoziare alternative con altri agenti.

Agenti come entita autonome

Definizione

Un agente e un’entita computazionale autonoma: incapsula controllo e possiede un criterio per governarlo.

L’idea importante e che l’autonomia non e un accessorio. Da essa derivano molte altre caratteristiche: interazione, socialita, proattivita, situatezza, possibilita di avere task o goal, mobilita e comportamento intelligente.

Nel contesto dei sistemi distribuiti, incapsulare autonomia nei componenti aiuta a ottenere sistemi piu robusti. Se un componente continua a computare anche quando la connessione con altri componenti manca, il sistema puo mantenere almeno una forma locale di liveness.


JADE e FIPA

Che cosa e JADE

Definizione

JADE e un middleware agent-oriented: fornisce una piattaforma completa per eseguire agenti e un insieme di API per costruire applicazioni multi-agente.

JADE ha due obiettivi:

  • essere una piattaforma FIPA-compliant per MAS, occupandosi di lifecycle, comunicazione e trasparenza distributiva;
  • offrire agli sviluppatori Java un framework semplice ma completo per creare agenti personalizzati.

Note

FIPA (Foundation for Intelligent Physical Agents) e stata l’organizzazione di standardizzazione che ha promosso interoperabilita e specifiche per tecnologie agent-based.

Piattaforme e container

Definizione

Una piattaforma JADE e un sistema logico che puo essere distribuito su piu host, ciascuno dei quali ospita uno o piu container di agenti.

Un container fornisce l’ambiente runtime per eseguire agenti: gestione del ciclo di vita, servizi di messaggistica e interazione con la piattaforma. Il primo container avviato diventa di solito il main container.

In pratica: piu macchine possono partecipare alla stessa piattaforma JADE. Gli agenti non devono conoscere tutti i dettagli di rete: la piattaforma mantiene registri e servizi per ritrovarsi e comunicare.


Servizi della Piattaforma

AMS

Definizione

L’Agent Management System (AMS) e il servizio che mantiene traccia degli agenti registrati nella piattaforma JADE.

Un agente, prima di agire pienamente, deve essere registrato presso l’AMS. L’AMS fornisce quindi un servizio di white pages: permette di identificare e localizzare agenti tramite il loro nome, anche se vivono in container remoti.

Directory Facilitator

Definizione

Il Directory Facilitator (DF) e il servizio che mantiene l’elenco delle capacita e dei servizi pubblicati dagli agenti.

Il DF e l’equivalente delle yellow pages: non cerco un agente per nome, ma un agente che dichiara di offrire un certo servizio.

Esempio: un agente che vuole prenotare un viaggio puo cercare nel DF chi offre il servizio flight-booking, senza conoscere a priori il nome dell’agente.

Agent Communication Channel

Definizione

L’Agent Communication Channel (ACC) e il sistema di message passing distribuito che gestisce lo scambio di messaggi ACL tra agenti JADE.

L’ACC offre comunicazione asincrona: ogni agente ha una coda di messaggi, simile a una mailbox. Quando arriva un messaggio, JADE lo consegna alla coda dell’agente destinatario, ma spetta all’agente decidere quando processarlo.

Punto chiave

La ricezione fisica di un messaggio non implica che l’agente lo elabori subito. Questo preserva autonomia e controllo interno dell’agente.


Agenti JADE

Lifecycle FIPA

Definizione

Il lifecycle FIPA descrive gli stati attraversati da un agente durante la sua esecuzione nella piattaforma.

Stati principali:

  • Initiated: l’oggetto agente e stato creato ma non e ancora registrato.
  • Active: l’agente e registrato e i suoi behaviour possono essere eseguiti.
  • Waiting: l’agente e bloccato in attesa di un evento, spesso un messaggio.
  • Suspended: l’agente e sospeso e non esegue behaviour.
  • Transit: l’agente e in fase di migrazione.
  • Unknown: l’agente e terminato o deregistrato.

Behaviour

Definizione

Un behaviour JADE e un’attivita eseguita da un agente per svolgere un compito proattivo o reattivo.

Gli agenti JADE sono oggetti Java che estendono jade.core.Agent, ma la logica applicativa non dovrebbe stare tutta in un unico metodo. Viene organizzata in behaviour, cioe attivita interne che JADE schedula.

La scelta progettuale e pragmatica: ogni agente e eseguito da un singolo thread Java, ma puo gestire piu attivita tramite uno scheduler interno non preemptive e round-robin.

Tip

Un behaviour dovrebbe cedere controllo quando non ha lavoro da fare, altrimenti blocca le altre attivita dello stesso agente.


Comunicazione ACL

Definizione

Un messaggio ACL e un messaggio strutturato secondo la Agent Communication Language di FIPA, con campi che specificano mittente, destinatari, performativa, contenuto, linguaggio e ontologia.

Campi tipici:

  • sender: agente mittente, spesso impostato automaticamente.
  • receiver: uno o piu destinatari.
  • performative: atto comunicativo, per esempio richiesta, informazione o proposta.
  • content: informazione trasmessa.
  • language: sintassi usata per codificare il contenuto.
  • ontology: significato condiviso dei termini del contenuto.

JADE offre primitive pronte:

  • send, per inviare un messaggio;
  • receive, per recuperare asincronamente un messaggio;
  • blockingReceive o timed receive, per attendere con timeout;
  • ricezione selettiva tramite template, per filtrare messaggi specifici.

In pratica: due agenti possono comunicare solo se condividono abbastanza semantica. Avere lo stesso formato non basta: devono anche interpretare il contenuto nello stesso modo.


Fast Lab

Il laboratorio chiede di clonare il repository indicato nelle slide e seguire gli esempi JADE:

https://dvcs.apice.unibo.it/pika-lab/courses/ise/ay2526/lab-jade

Obiettivi pratici:

  • creare un agente JADE semplice;
  • osservare registrazione e lifecycle;
  • organizzare la logica in behaviour;
  • inviare e ricevere messaggi ACL;
  • capire il ruolo dei servizi AMS, DF e ACC.

Prossimi Argomenti

Continueremo con:

  • AgentSpeak(L) e Jason - programmazione di agenti intenzionali basati su BDI.
  • Lab Jason - esercizi pratici su MAS Jason, goal, piani e comunicazione.
  • Reasoning Agents - collegamento teorico tra agenti, intenzioni e ragionamento pratico.