Vous êtes sur la page 1sur 23

Ma dKi t p a s p a s

Dmarrage et prise en main du logiciel MadKi

Jacques Ferber
LIRMM  Universit de Montpellier II
ferber@lirmm.fr
v1.2 Avril 2009

MadKit pas pas 1


MA D KIT PAS PAS
Dmarrage et prise en main du logiciel MadKi

v1.1  Mars 2009

I. Prsentation gnrale 3
II. Prise en main 4
Les agents principaux 6
III. Crer son premier projet 9
Crer un nouveau projet 10
Ajouter de nouveaux agents 14
Agent Java 14
Agents Scripts 15
Utiliser Eclipse pour compiler un plugin de MadKit 15
Pour mettre jour votre projet MadKit sous Eclipse 19
IV. AGR: la gestion des organisations sous MadKit 19
Introduction AGR 20
Cration de groupes 21
Entrer dans un groupe 22
Communications sous MadKit 22
V. Ecrire ses agents sous MadKit 22
Communications point point et broadcast 23
Agents passifs et agents actifs 23

MadKit pas pas 2


I. Prsentation gnrale

MadKit est une plateforme de dveloppement de systmes multiagents destine au dvelop


pement et lexcution de systmes multiagents et plus particulirement des systmes mul
tiagents fonds sur des critres organisationnels groupes et rles.

MadKit nimpose aucune architecture particulire aux agents. Il est ainsi possible de dvelop
per aussi bien des applications avec des agents ractifs comme le fait TurtleKit que des agents
cognitifs et communicationnels, et mme de faire interagir aisment tous ces types dagents.
Cela permet ainsi aux dveloppeurs dimplmenter larchitecture de leur choix.

MadKit est crit en Java et fonctionne en mode distribu de manire transparente partir
d'une architecture "peer to peer" sans ncessiter de serveur ddi. Il est ainsi possible de faire
communiquer des agents distance sans avoir se proccuper des problmes de communica
tion qui sont grs par la plateforme.

Une application MadKit peut sexcuter en mode distribu sans quil y ait besoin de modifier
une seule ligne de code. Le mcanisme de distribution est indpendant de MadKit et il est pos
sible den crer de nouveaux si les besoins sen font sentir ou mme dutiliser des plateformes
distribues existantes, telles que JXTA.

MadKit est construit autour du concept de micronoyau et dagentification de services. Le


micronoyau de MadKit est trs petit moins de 100Ko de code, car il ne gre que les organi
sations groupes et rles et les communications lintrieur de la plateforme. Le mcanisme
de distribution, les outils de dveloppement et de surveillance des agents, les outils de visuali
sation et de prsentation sont des outils supplmentaires qui viennent sous la forme dagents
que lon peut ajouter au noyau de base.

De ce fait, MadKit peut tre utilis aussi bien comme outil de dveloppement dapplications
que comme un noyau dexcution de systme multiagent qui peut tre embarqu dans des ap
plications quelconques.

MadKit est un logiciel libre de type Open Source avec une licence mixte GPL/LGPL. LGPL
pour le micronoyau et les outils de communication, et GPL pour les outils de dveloppement.
On peut ainsi facilement dvelopper laide de MadKit et ensuite utiliser les agents ainsi cons
truits dans des applications commerciales.

On reconnait gnralement MadKit les qualits suivantes:

Simplicit de mise en oeuvre et de prise en main,

Intgration trs facile de la distribution au sein dun rseau.

MadKit pas pas 3


Laspect pratique et ecace des concepts organisationnels pour crer dirents types dappli
cations

Htrognit des applications et des types dagents utilisables: on peut faire tourner sur
MadKit aussi bien des applications utilisant des agents ractifs simples de type fourmis plus
de 50000 agents ayant un comportement simple ont tourn en MadKit, que des applications
disposant dagents cognitifs sophistiqus.

II. Installation et prise en main

Installation
Tlcharger MadKit sur www.madkit.net utilisez la version stable de prfrence. Dzippez
larchive et placez MadKit o bon vous semble. MadKit est alors prt lemploi.

ATTENTION: le designer de MadKit a besoin de se relier au compilateur Java. Il faut donc


que vous ayez une installation du jdk de Java. Vrifiez que vous avez bien un

Sous Linux la plupart des distributions, tapez dans le fichier ~/.bashrc les lignes suivantes:

JAVA_HOME=/chemin_ou_se_trouve_le jdk
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH

Sous MacOS: tout est normalement dj install, et la variable JAVA_HOME nest pas utili
se.

Sous Windows: dterminez le dossier dinstallation du jdk pas le JRE qui ne contient pas le
compilateur, mais le JDK. Attention, il est facile davoir plusieurs jdk sous Windows, et cest le
dernier qui est utilis par Windows.

Pour changer la variable JAVA_HOME sous Windows

1. Clic droit sur licne station de travail et cliquer sur 'Proprits'.

2. Cliquer sur longlet 'Avanc'.

3. Cliquer sur le boutn 'Variables denvironnement'.

4. Sous 'Variables Systmes', cliquer 'New'.

5. Entrer le nom de la variable JAVA_HOME.

MadKit pas pas 4


6. Mettre comme valeur de la variable le chemin du JDK et valider.

7. Cliquer sur 'Appliquer les changements'.

La figure suivante montre laectation de la variable JAVA_HOME en anglais

Attention: si lorsque vous tapez javac version une erreur apparat cest que vous devez aussi
ajouter le chemin <chemin du jdk>/bin dans la variable denvironnement PATH...

Et finalement, si cela ne marche pas, vous pouvez copier le fichier tools.jar qui se trouve dans le
JDK et placer la copie dans le dossier <madkit>/lib et le tour est jou. Mais cest moins propre.

Dmarrage
MadKit peut fonctionner de diverses manires, mais la solution la plus simple consiste d
marrer le desktop de MadKit qui permet de visualiser facilement les agents et qui comprend de
nombreux outils de dveloppement et de surveillance dagents.

Allez dans le dossier bin de MadKit.

Sous Windows: double cliquez sur madkit.exe

Sous Mac OS: double cliquez sur madkit.app

MadKit pas pas 5


Sous Linux, Mac OS ou tout logiciel sous Unix: tapez ./desktop.sh dans une fentre de con
sole ou terminal.

Vous verrez apparatre alors la fentre suivante qui correspond ce quon appelle le Desktop:

Le Desktop est lenvironnement de travail standard sous MadKit. On peut en modifier son ap
parence grce des skins dirents, on peut ajouter et supprimer des icnes loisir pour
ladapter ses besoins.

Cest partir du Desktop que lon peut crer, lancer et arrter des agents, ainsi que surveiller
leur fonctionnement.

Les agents principaux


Il existe un certain nombre doutils qui sont disponibles sous MadKit et quil est ncessaire de
connatre pour bien travailler. Ces outils sont les suivants

1. Designer: permet de concevoir de nouveaux projets et facilite la cration dagents grce


des templates prdfinis. Cest le point dentre pour la cration de nouveaux
projets et de nouveaux agents sous MadKit. Cest aussi le point de dpart pour
pouvoir lancer facilement des agents.

MadKit pas pas 6


2. GroupObserver et le Spy: permet dobserver la structure organisationnelle de MadKit,
cestdire lensemble des groupes et des rles. Permet aussi de tracer les messages
qui ont lieu entre les agents et notamment tous les messages lintrieur dune
communaut ou dun groupe.

3. Explorer : correspond un simple explorateur de fichiers. Permet de lancer et dditer des


agents partir de l. Depuis larrive du Designer, on utilise en gnral moins lex
plorateur, mais il peut continuer rpondre des besoins ponctuels.

4. DocBrowser: cest l que se trouve toute la doc de MadKit. Indispensable pour connatre
les primitives de base. Pour programmer de nouveaux agents, il est utile daller soit dans la
doc du dveloppeur Developpers guide et dans les API, notamment madkitkernel>Abs
tractAgent et madkitkernel>Agent qui contiennent la plupart des primitives im
portantes pour le dveloppement dapplications gnriques sous MadKit. Pour d
velopper dans des applications cibles TurtleKit, Warbot, etc.. il est prfrable de
sadresser la documentation lie ces applications.

5. JSynEdit: cest un diteur gnrique avec colorisation syntaxique, qui est tir de Jext et de
lancienne version de JEdit, des diteurs en OpenSource. Ces diteurs ont t adapts
MadKit pour servir doutil ddition rapide.

6. Communicator: cest loutil qui permet de faire communiquer les agents entre eux. Cet ou
til est simple et fiable, trs adapt des applications intranet il ne passe pas les
firewall ni les proxys allant de 2 une petite vingtaine de noyaux interconnects.
Au del, les algorithmes de synchronisation des informations entre noyaux MadKit
ne sont plus adaptes.

7. Editor: pratique pour regarder rapidement un bout de code, ou pour lancer des messages
de type chanes de caractres StringMessage des agents.

8. Les valuateurs de langages de commande: permet de taper des commandes dans un lan
gage de script Python, BeanShell, Scheme, etc.. et de lancer des agents de manire inter
active directe. Trs pratique pour scripter des sessions.

9. La fentre Output qui ache tous les messages de sortie de MadKit. Cette fentre vous
indique en particulier lorsquil y a des problmes lors de la compilation ou de lexcution
dagents.

MadKit pas pas 7


Note: tous ces outils sont en fait des agents MadKit disposant de certaines capacits. De ce
fait, tous ces outils apparaissent dans le GroupObserver dans le groupe System avec leurs rles
respectif.

MadKit pas pas 8


III. Crer son premier projet
Pour crer un projet, il faut cliquer sur licne Designer qui se trouve sur le Desktop ou slec
tionner licne du Designer dans le menu MadKit.

Cela lance un agent qui montre tous les plugins qui peuvent tre modifis et mis jour les plu
gins systme qui font partie du noyau ne sont pas visualiss et il nest donc pas possible de les
modifier partir du Designer.

Il y a quatre parties dans linterface du Designer:

Le Plugin explorer qui comprend une arborescence de lensemble des plugins disponibles
ainsi que les composants de chacun de ces plugins.

MadKit pas pas 9


Le panneau de documentation qui ache les proprits du plugin.

Le panneau de commande, situ en dessous, qui comprend deux boutons: Validate, qui va
lide les modifications apportes dans les paramtres du plugin et Build qui sert rgnrer
un projet compilation, cration de jar, chargement des nouvelles classes, etc...

La barre doutils, situe au dessus de larborescence des plugins, et qui comprend les opra
tions de cration de base: cration dun nouveau plugin et cration dagents.

Pour slectionner un plugin, il sut de double cliquer sur son icne dans larborescence des
plugins. Cela montre la fois ses composants mais aussi cela ache ses proprits dans le pan
neau de documentation.

Crer un nouveau projet


Tous les projets sous MadKit prennent la forme de plugins. De ce fait le terme projet ou
plugin peuvent tre utiliss indiremment.

Pour crer un nouveau plugin, il sut de cliquer sur licne qui se situe dans la barre doutil.

Cela ouvre le dialogue suivant:

Le premier champ correspond au nom du projet ou plugin. Le second champ est une liste d
roulante qui indique les types de plugins qui peuvent tre raliss laide du designer.

Les projets possibles actuellement sont de lordre de trois: default projets standards, Tur
tleKit projets qui fonctionnent sous TurtleKit et Warbot projet permettant de raliser des
agents sous Warbot. Dautres seront disponibles avec le temps.

MadKit pas pas 10


Note: attention, il nest pas possible de dmarrer un projet Warbot directement, partir du
Designer. Adressez vous auprs de la documentation de Warbot pour crer un projet Warbot.

Nous supposerons ici que vous crez un projet de type Default qui correspond des agents
standards sous MadKit.

Par exemple, si lon cre le projet MyProject on voit apparatre larborescence suivante:

Note: vous verrez apparatre dans la fentre Output le message Build successful qui signifie
que dune part le plugin a bien t cr, mais aussi que les agents de dmonstration ont bien
t crs et compils.

Le plugin comprend le contenu suivant:

Les dossiers src et build qui contiennent respectivement les sources .java files and les
.class du plugin.

Le fichier build.xml qui est un fichier 'ant' qui est utilis pour compiler le projet, gnrer
le .jar, etc.. Ant est une sorte de makefile crit en Java pour des programmes Java. Il est trs
utilis dans les outils de dveloppement Java IDE tels quEclipse, pour crer et mettre jour
les projets. Voir le site de ant ant.apache.org pour avoir plus dinformation ce sujet.

MadKit pas pas 11


le fichier MyProject.cfg qui permet de lancer tout un ensemble dagents en mme temps
pour plus dinformation, lire la documentation dans le users guide et le developpers
guide ce sujet.

le fichier MyProject.html qui est une page gnre et qui contient une applet lie au plugin
pour plus dinformation, lire la documentation dans le users guide et le developpers
guide ce sujet.

Si vous cliquez sur licne de lagent MyProjectHello, vous lancerez un agent MadKit de
base, qui permet de dmarrer dans votre projet.

Lors de son fonctionnement, lagent indique quil est entr dans la communaut MyProject la
communaut associe au plugin, mais aussi dans le groupe myGroup avec le rle myRole.

Il est possible de voir son fonctionnement en utilisant le GroupObserver. Double cli


quez licne du GroupObserver:

Cela ouvre lagent qui permet dobserver la participation des agents aux groupes et aux
rles, comme le montre la figure cidessous:

MadKit pas pas 12


On peut constater que lagent MyProjectHello qui se trouve sur lordinateur Baruch.local
celui de lauteur de ces lignes au moment o elles ont t crites se trouve bien dans le groupe
myGroup de la communaut MyProject, sous le rle myRole.

Toutes les actions des agents se trouve dans le source de lagent. Dans le designer allez dans le
dossier src de votre projet et ouvrez les dossier jusqu voir apparatre le fichier
MyProjectHello.java.

Cliquez sur ce fichier avec un click droit de souris et slectionnez edit with JSynEdit. Cela
ouvre lditeur JSynEdit qui comprend un systme de colorisation syntaxique et qui permet
dditer facilement du code dans lun des langages de MadKit et notamment Java.

Vous pouvez alors modifier le code de votre agent, Par exemple, si vous voulez quil ache le
code Bonjour tous en lieu et place du message Hello World, allez dans le code de
lagent et modifiez le code ainsi:

public void live()


{
 println("Bonjour tous"); // code modifi
 broadcastMessage(myCommunity, myGroup, myRole,
     new StringMessage("Hello to all!"));

MadKit pas pas 13


 while(alive){
  Message m = waitNextMessage();
  handleMessage(m);
 }
}

Il sut ensuite de sauvegarder le fichier puis de mettre jour le projet en cliquant sur le bou
ton Build, ce qui compile les fichiers, cre le jar et recharge les nouvelles classes.

En cliquant sur licne de MyProjectHello cest le nouveau comportement qui sera excut.

Note: les anciens agents continueront excuter les classes anciennes, cestdire que seuls les
agents crs aprs le Build bnficieront des modifications de code.

Ajouter de nouveaux agents


Pour crer de nouveaux types dagents en utilisant Designer, il sut de cliquer sur lun des au
tres boutons de sa toolbar.

Agent Java

Cration dun agent Java

Ce bouton permet de crer un nouvel agent Java qui sera compil lors dun Build.

Il existe plusieurs templates dagents Java. Pour linstant deux templates sont disponibles, mais
dautres seront fournis dans le futur. Les templates existant sont:

1. Standard Java agent

2. Standard Java agent with GUI

Le premier correspond la structure de lagent Hello qui est cr linitialisation du projet.


Le second ore une interface graphique lagent. Cette interface graphique comprend trois
boutons et un champ dachage. Les boutons servent respectivement acher Hello dans le
champ dachage, envoyer des messages Hello tous les agents jouant le mme rle dans le
mme groupe et la mme communaut, et le troisime, appel Sepuku tuer lagent qui sen
voie luimme un message pour se suicider.

MadKit pas pas 14


En fait deux classes sont cres: la classe de lagent luimme, ici Test2 dans lexemple, et la
classe de linterface graphique, ici Test2GUI.

Il est bien entendu possible et mme souhaitable de modifier cet agent et son interface pour
ladapter vos besoins.

Agents Scripts

Cration dun agent script

Ces boutons servent crer dagents scripts cestdire des agents dont le code est interprt
par lun des langages de script disponible sous MadKit, savoir: Scheme, BeanShell, Jess et Py
thon. Ces agents sont crs dans le dossier script du projet et nont pas besoin dtre compils.

Note: Sous Designer, il peut tre ncessaire de faire un Refresh du projet pour voir ces fichiers
apparatre dans le dossier scripts. Il sut de faire un clic droit de la souris sur le noeud du
plugin dans larborescence et de choisir, dans le popup menu qui apparat, litem Refresh.

Utiliser Eclipse pour compiler un plugin de MadKit


Il est trs facile dutiliser Eclipse pour crer un projet sous MadKit. Il sut que le projet Java
associ Eclipse pointe vers le plugin cr sous le PluginDesigner de MadKit et dinclure dans
le classpath du compilateur dEclipse les jars dont on a besoin.

Voici comment, pas pas, il est possible de crer un projet Eclipse qui pointe vers un plugin de
MAdKit. Supposons que nous ayons cr le projet MyProject comme on la vu cidessus. En
crant new Java project depuis Eclipse, on obtient le dialogue suivant:

MadKit pas pas 15


Il faut alors cliquer sur create project from existing source et entrer le chemin daccs au plu
gin. Puis, on clique sur next ce qui ouvre la page de dialogue suivante o lon peut constater
que le projet est bien pris en compte par Eclipse:

MadKit pas pas 16


A partir de l, il sut de cliquer sur Finish pour que Eclipse cre un projet qui pointe bien
vers votre plugin.

Si lon regarde dans le package explorer de Eclipse, on peut constater que le projet comprend
des erreurs, comme le montre la figure suivante:

MadKit pas pas 17


Cela est d au fait que le classpath de Eclipse ne contient pas les bons jars dont il a besoin pour
compiler le projet. Pour ajouter les jars ncessaires, il sut de faire un click droit de souris, de
slectionner properties et douvrir le dialogue des proprits du projet. Cliquez ensuite sur
java build path et libraries. Vous obtenez lcran suivant:

MadKit pas pas 18


Cliquez alors sur add external jar et ajouter les jars ncessaires dans le dossier madkit/lib. Vo
tre projet a au moins besoin de madkitkernel.jar sans cela rien ne fonctionne, mais dune
manire gnrale les projets par dfaut ont besoin de madkitutils.jar et de messages.jar.

Vous pouvez rajouter des jars, mais ceux ci doivent tre aussi prsents dans le build.xml de
votre plugin MadKit, comme cela est indiqu dans la documentation du PluginDesigner dou
ble cliquez sur DocBrowser et slectionnez plugins>designer.

Pour mettre jour votre projet MadKit sous Eclipse


Eclipse se charge de la compilation des fichiers sources. Mais pour mettre jour votre projet
vous devez cliquer sur le bouton Build correspondant votre projet dans le PluginDesigner:

IV. AGR: la gestion des organisations sous MadKit


MadKit considre que les agents sont des entits qui vivent au sein dorganisation. Le modle
AGR, que nous avons prsent, Olivier Gutknecht et moi, en 1998, repose sur un ensemble
minimal de concepts: les concepts dagent, de groupes, et de rles. Dis ans aprs ces concepts
sont toujours aussi vivants, et ils ont montr leur importance dans le domaine du gnie logiciel
orient agents. AGR est ainsi devenu une rfrence incontournable dans le domaine des syst
mes multiagents organisationnels ou OMAS pour Orgaizational MultiAgent Systems. De

MadKit pas pas 19


puis, dautres modles ont t proposs, mais AGR reste encore la base pour la comprhension
des organisations dans des systmes multiagents.

Introduction AGR
La particularit dAGR cest de ne rien supposer quant larchitecture ou au mode de fonc
tionnement dun agent. Voici les principales dfinitions dAGR

Un agent est une entit informatique qui envoie et reoit des messages, qui peut entrer et
sortir de groupes et qui joue des rles dans ces groupes. Cette entit est autonome et com
municante.

Un groupe est constitu de rle et regroupe des agents qui ont soit un aspect en commun
par ex. des agents qui possdent le mme langage de communication, soit un ensemble
dagents qui travaillent ensemble, qui collaborent une mme activit par ex. des agents qui
essayent de rsoudre un problme.

Un rle correspond soit un statut dun agent, soit une fonction particulire quun agent
joue dans un groupe. Les rles sont locaux aux groupes et nont de sens qu lintrieur dun
groupe. Un rle ne peut pas tre cheval sur deux groupes.

Trois concepts importants ont t la base de tous les dveloppements sous MadKit et doivent
tre considrs comme des guides de penses guidelines dans tout dveloppement concernant
AGR.

1. Communications organisationnelles: Un agent A ne peut communiquer un agent B


que si A et B sont membres dun mme groupe G. De ce fait, on peut dire que A communi
que B dans G. Malheureusement, cette contrainte na pas t implmente directement
la base de MadKit, et il est eectivement possible jusquaux versions 4.xx pour un agent A
de communiquer un agent B mme sil nexiste pas de groupe commun. Mais de nouvelles
versions de MadKit  partir de la version 5.0 seront plus contraignantes ce sujet, et il ne
sera pas possible de communiquer un agent si lon ne vit pas dans le mme groupe.

2. Autonomie des agents. Toutes les actions et comportements dun agent viennent de
lagent luimme. Il nest pas possible de modifier ltat dun agent ou de manipuler un
agent depuis lextrieur dun agent. Si lon veut que cet agent fasse quelque chose, il faut lui
demander. Cela est particulirement vrai pour tout laspect organisationnel de MadKit: un
agent doit demander expressment et personnellement dentrer dans un groupe ou de jouer
un rle, cela ne peut pas tre fait la place de lagent ou depuis lextrieur de lagent. Dau
tre part, il est formellement interdit de pouvoir entrer dans un agent, de connatre direc
tement ses tats mentaux depuis lextrieur de lagent sauf videmment pour des raisons
de mise au point ou de visualisation dinformation, mais cest le seul cas autoris.

MadKit pas pas 20


3. Localisation organisationnelle. Tout agent est situ dans lespace organisationnel. Cela
signifie que tout agent joue au moins un rle dans un groupe. Bien que cet aspect nait pas
t renforc dans le noyau de MadKit il est possible de crer des agents sans les associer
des groupes ou des rles, tous les exemples et programmes proposs dans MadKit obser
vent cet impratif.

4. Les aspects multiples dun agent. Un agent peut jouer plusieurs rle et tre membres
de plusieurs groupes. Il peut ainsi jouer plusieurs rles au sein dun mme groupe ou jouer
plusieurs rles dans des groupes dirents. Tout cela est possible et il nexiste aucune con
trainte ce sujet. En suivant les principes dautonomie de lagent, cest lagent de vrifier
que les rles quil jouent sont bien cohrents.

5. Lopacit cognitive des agents. Dans AGR comme nous lavons not plus haut, rien
nest impos quant la manire pour un agent de penser ou de prendre des dcisions. Ce
la signifie quun agent ractif de type fourmi peut trs bien communiquer avec un agent
trs complexe et trs cognitif.

Cration de groupes
Pour crer un groupe, il sut, pour un agent, de le demander en utilisant la primitive create
Group :

int createGroup(
  boolean dist, // indique si le groupe est distribuable
  String communaut, // nom de la communaut
  String groupe, // nom du groupe ainsi cr
  String description, // description du groupe (ventuellement)
  Object vrificateur) // object vrificateur des entres
dist indique si le groupe peut tre rparti ou non sur le rseau. Si le boolean est true, et si
le Communicator est en fonctionnement ou lun des autres outils de distribution sous
MadKit, alors le groupe sera automatiquement disponible sur toutes les plateformes MadKit
connectes.

La chane description nest pas utilise pour linstant.

Lobjet vrificateur permet de restreindre les entres des agents aux seuls agents disposant
dune caractristique, le test de cette caractristique tant place dans le vrificateur. Nous
verrons lutilisation de cette fonctionnalit plus loin dans le texte check.

Cette primitive retourne la valeur 1 si le groupe a pu tre cr et -1 si le groupe existait dj.

MadKit pas pas 21


Note: un groupe ne peut pas tre dtruit par un agent. Un groupe disparat lorsque tous ses
membres lont quitt soit en le quittant explicitement par lutilisation des primitives
leaveGroup et leaveRole, soit en mourant.

Entrer dans un groupe


Comme cela a t dit plus haut, les agents doivent demander de jouer un rle dans un groupe.
On entre toujours dans un groupe pour jouer un rle, ce qui implique quon ne peut pas sim
plement entrer dans un groupe, il faut toujours demander explicitement un rle. Par dfaut
tous les membres dun groupe ont aussi le rle member

public int requestRole(String communityName,


String groupName,
String roleName,
Object memberCard)
retourne les valeurs suivantes:

1 : operation success; -1 : access denied; 2 : the role is already handled by this agent; -3 : the
group does not exist; -4 : the community does not exist.

La memberCar est un objet qui peut tre prsent pour entrer dans un groupe, si le groupe a
t cr avec un objet vrificateur.

Communications sous MadKit

V. Ecrire ses agents sous MadKit


La cration dagents sous MadKit ncessite de bien comprendre ce que lon cherche produire
et bien identifier le type dagents que lon veut raliser. Nous examinerons les points suivants:

6. Communications point point et broadcast

7. Agents actifs vs agents passifs: comment crer des agents qui ont une activit indpendante
de la rception des messages.

8. Requtes et tches: comment demander un agent de faire quelque chose.

MadKit pas pas 22


Communications point point et broadcast

Agents passifs et agents actifs


Les agents passifs sont des agents qui nagissent que lorsquils reoivent un message mais qui
nont aucune activit particulire deuxmmes.

MadKit pas pas 23

Vous aimerez peut-être aussi