C2. Programming Intentional Agents in AgentSpeak Jason

Slide: file:///C:/UNI/Magistrale/ISE/C2%20%E2%80%93%20Programming%20Intentional%20Agents%20in%20AgentSpeak(L)%20%20Jason.pdf

Indice


Obiettivo del Modulo

Definizione

AgentSpeak(L) e un linguaggio astratto per descrivere e programmare agenti BDI; Jason e una piattaforma che implementa una variante pratica di AgentSpeak.

Il modulo collega la teoria degli agenti intenzionali alla programmazione concreta. L’idea e rappresentare il comportamento dell’agente non come una sequenza rigida di istruzioni, ma come una combinazione di credenze, eventi, goal, piani e intenzioni.

In pratica: invece di scrivere solo if e chiamate Java, si descrive che cosa l’agente sa, quali eventi deve gestire, quali goal vuole raggiungere e quali piani puo usare nei diversi contesti.


Architetture BDI

Control loop BDI

Definizione

Un’architettura BDI organizza un agente attorno a beliefs, desires e intentions: cio che crede, cio che vorrebbe ottenere e cio su cui si e impegnato ad agire.

Il loop astratto BDI segue una sequenza ricorrente:

  1. inizializzare lo stato;
  2. generare opzioni dagli eventi;
  3. deliberare sulle opzioni;
  4. aggiornare le intenzioni;
  5. eseguire passi di piano;
  6. acquisire nuovi eventi esterni;
  7. eliminare atteggiamenti riusciti o impossibili.

Componenti principali:

  • belief base: stato informativo dell’agente;
  • goal/desires: stati o compiti desiderati;
  • intentions: goal selezionati con piani associati;
  • eventi interni: cambiamenti di credenze o goal;
  • eventi esterni: percept, messaggi e segnali;
  • plan library: repertorio statico di piani disponibili.

PRS

Definizione

Il Procedural Reasoning System (PRS) e una delle prime architetture BDI, pensata per combinare goal-directedness e reattivita.

PRS e importante perche mostra il compromesso centrale degli agenti intenzionali: ragionare su compiti complessi, ma anche reagire a eventi in ambienti dinamici.

Esempio

Un robot operativo puo avere un piano generale per raggiungere una stanza, ma deve reagire in tempo reale se un corridoio e bloccato o se riceve un nuovo comando prioritario.


AgentSpeak(L)

Belief Goal Eventi e Piani

Definizione

Un programma AgentSpeak(L) e composto da una belief base, una plan library, un insieme di eventi e un insieme di intenzioni.

Costrutti principali:

  • Beliefs: informazioni correnti sull’ambiente, su altri agenti o sullo stato interno.
  • Goals: stati che l’agente vuole raggiungere o conoscere.
  • Events: cambiamenti che richiedono una reazione.
  • Plans: ricette procedurali che indicano come gestire eventi in un certo contesto.

I goal hanno due forme:

  • !g: achievement goal, cioe goal da realizzare;
  • ?g: test goal, cioe goal conoscitivo per recuperare informazione.

Gli eventi includono aggiunta/rimozione di credenze e goal:

+belief        // aggiunta di credenza
-belief        // rimozione di credenza
+!goal         // adozione di achievement goal
+?goal         // adozione di test goal

Struttura di un piano

Definizione

Un piano AgentSpeak collega un evento scatenante, un contesto e un corpo di azioni o sotto-goal.

Forma generale:

triggering_event : context <- body.
  • triggering_event: evento che il piano sa gestire;
  • context: condizioni che devono essere vere nella belief base;
  • body: sequenza di azioni, goal, test goal, aggiornamenti di credenze o internal actions.

Esempio concettuale:

+concert(Artist, Date, Venue)
  : likes(Artist)
  <- !book_tickets(Artist, Date, Venue).

In pratica: se arriva l’informazione che c’e un concerto e l’agente crede di apprezzare quell’artista, allora adotta il goal di prenotare i biglietti.

Semantica operazionale

Definizione

La semantica operazionale di AgentSpeak descrive come evolvono beliefs, eventi, azioni, intenzioni e funzioni di selezione durante il ciclo di ragionamento.

Una configurazione astratta include:

  • B: beliefs;
  • P: plans;
  • E: events;
  • A: azioni disponibili o in uscita;
  • I: intenzioni, spesso stack di piani parzialmente istanziati;
  • funzioni di selezione per eventi, opzioni e intenzioni.

Note

Le funzioni di selezione sono il punto in cui l’architettura puo essere personalizzata: decidono quale evento processare, quale piano applicabile scegliere e quale intenzione far avanzare.


Jason

Reasoning cycle

Definizione

Jason implementa il ciclo di ragionamento di una variante pratica di AgentSpeak, aggiungendo strumenti per MAS reali, comunicazione, ambienti e integrazione con Java.

Il reasoning cycle tipico comprende:

  • percepire l’ambiente;
  • aggiornare la belief base;
  • controllare i messaggi ricevuti;
  • selezionare messaggi socialmente accettabili;
  • selezionare un evento;
  • recuperare piani rilevanti;
  • filtrare i piani applicabili;
  • selezionare un piano;
  • selezionare un’intenzione;
  • eseguire un passo di intenzione.

In pratica: Jason non esegue un piano intero in blocco. Avanza per passi, alternando percezione, deliberazione, gestione di eventi e azione.

Estensioni del linguaggio

Jason estende AgentSpeak con costrutti utili nella programmazione pratica:

  • operatori booleani e aritmetici;
  • !!g, per lanciare un goal come nuova intenzione;
  • aggiornamento atomico di credenze;
  • annotazioni sulle credenze, per esempio source(self), source(percept) o source(ag1);
  • negazione forte ~, utile quando si vuole distinguere assenza di conoscenza da conoscenza esplicita del falso;
  • regole belief Prolog-like;
  • gestione del fallimento dei piani tramite eventi -!g.

Esempio

raining significa che l’agente crede che stia piovendo; ~raining significa che crede esplicitamente che non stia piovendo; not raining significa soltanto che non riesce a provare raining.

Internal actions e comunicazione

Definizione

Una internal action Jason e un’azione atomica eseguita dentro il ciclo di ragionamento, spesso implementata in Java.

Le internal actions servono per stampare, manipolare liste, gestire credenze, interagire con codice Java o inviare messaggi. Per la comunicazione si usano azioni come:

.send(B, tell, m(X))
.broadcast(tell, m(X))

Il destinatario puo ricevere l’informazione come belief annotata con la sorgente:

+m(X)[source(A)] : true <- dosomething.

Ambienti

Definizione

Un ambiente Jason fornisce percept agli agenti e riceve azioni da eseguire nel mondo simulato o reale.

Ci sono due approcci:

  • specializzare percezioni e azioni per un ambiente specifico, usando Java;
  • creare un ambiente simulato estendendo la classe Environment di Jason.

Warning

Senza un ambiente ben progettato, l’agente rischia di essere solo un interprete di piani. L’intelligenza situata emerge dal collegamento tra reasoning cycle, percept e azioni.


Aspetti BDI Avanzati

Definizione

Il planning gerarchico BDI scompone un goal complesso in sotto-goal e piani piu piccoli, alternando livelli di astrazione.

A differenza del planning classico offline, un agente intenzionale lavora in ambienti dinamici. I piani sono progettati a design time, ma la scelta di quale piano usare e quando dipende dal contesto a runtime.

In pratica: invece di costruire da zero un piano completo ogni volta, l’agente possiede una libreria di piani riutilizzabili. Quando cambia il contesto, puo scegliere un altro piano applicabile o gestire il fallimento del goal.


Prossimi Argomenti

Continueremo con:

  • Lab Jason - esercizi pratici su file .mas2j, piani, goal e comunicazione tra agenti.
  • Prolog Fast Track - basi logiche utili per regole, unificazione e ragionamento simbolico.
  • Logic and Computation - collegamento teorico tra logica, computazione e linguaggi dichiarativi.