La
plate-forme OSACA
Jean-Paul
Barthès
Université de Technologie
de Compiègne
BP 20529, F-60205 Compiègne / France
Contact : barthes@asterix.gi.utc
La plate-forme OSACA (Open System of
Asynchronous Cognitive Agents)a été réalisée
avec pour
objectif de permettre à des utilisateurs non
spécialisés de développer de façon simple leur
propre système multi-agents réparti sur différentes
machines. L'utilisateur devait pouvoir définir des agents à
l'aide d'un langage de niveau suffisant (defagent,, defskill, deftask,?),
sans avoir à se préoccuper des problèmes de gestion
des communications entre agents. Par ailleurs le système devait
être ouvert en permettant de rajouter ou de supprimer des agents
dynamiquement. Le résultat obtenu est un prototype assez lourd,
mais doté des outils permettant de développer un agent sur
une machine puis de le faire migrer sur un autre système une fois
mis au point. La plate-forme possède un certain nombre de traits
originaux signalés ci-après. OSACA a été
utilisée par trois laboratoires de recherche : HEUDIASYC (UMR 6599),
le laboratoire informatique de l'académie des Sciences de Pékin,
le Laboratoire Informatique de l'Université Pontificale du Parana
(PUC) au Brésil. Une version simplifiée est en cours de développement
au Brésil. Elle remplacera la version actuelle.
Caractéristiques générales
La plate-forme OSACA a été développée par Edson
Scalabrin et Jean-Paul Barthès à l'UTC entre 1992 et 1996.
Elle a servi à programmer quelques exemples simples, et a été
utilisée par Weiming Shen comme support de son système DIDE
environnement de conception en ingénierie concourante).Le type d'application
visé est celui faisant intervenir un petit nombre d'agents cognitifs
complexes, l'idée étant que chaque agent possède sa
propre machine (dans le cas de DIDE un agent peut être par exemple
un programme de calcul de type éléments finis). OSACA a été
développée sur station UNIX en Lisp et C (et ILU).
Modèles multi-agents disponibles
OSACA
propose un modèle d'agent générique extrêmement
simple. L'agent est essentiellement une structure vide dotée de
tous les mécanismes de communication. L'idée est de décharger
l'utilisateur des problèmes de gestion des communications asynchrones.
L'expertise d'un agent peut être ajoutée de façon procédurale
ou sous forme de règles. Les représentations des tâches,
des autres agents, et de l'environnement sont à la charge du concepteur.
Chaque agent est totalement indépendant, possède ses propres
connaissances, et est à l'écoute du monde extérieur.
Une caractéristique particulière d'OSACA est que les agents
sont groupés sur des clusters locaux et, dans un cluster (sous-réseau),
tous les agents voient passer tous les messages. Un agent particulier reçoit
donc les messages qui lui sont destinés (nominalement ou de façon
anonyme), les messages concernant les tâches qui l'intéressent
mais qui ne lui sont pas destinés, ainsi que les messages qui n'ont
pas de rapport avec ce qu'il fait. Chaque type de message a sa propre boîte
aux lettres et le concepteur peut ainsi spécifier si l'agent utilisera
ou non ces messages (par exemple pour mettre à jour sa perception
du
monde extérieur).
Les communications
entre agents obéissent à des protocoles qui peuvent être
changés dynamiquement (ce qui peut servir à améliorer
les échanges). Le protocole de base est très simple et sert
en quelque sorte de « bootstrap ».
Dans OSACA
il n'y a pas de contrôle, les agents agissent comme bon leur semble
et communiquent de façon asynchrone.
Caractéristiques physiques du
système multi-agents
Les agents sont développés par
clonage de l'agent générique grâce à la primitive
defagent. Il sont ensuite dotés de compétences grâce
à d'autres primitives. Le langage de programmation est en général
Lisp. Il est toutefois possible de développer des agents en C ou
C++, mais le niveau de service fourni est très inférieur
aux couches réalisées en Lisp. Comme indiqué précédemment
les agents sont organisés en clusters peuvent apparaître ou
disparaître dynamiquement. Plusieurs agents peuvent proposer les
mêmes services ; ils seront départagés grâce
à un protocole de type contract-net. Les agents sont statiques et
normalement situés sur leur propre machine. Les communications entre
agents sont implantées à l'aide du protocole UDP (et non
TCP/IP) ce qui simplifie les problèmes de broadcast. Au niveau supérieur
de communication le système utilise plusieurs protocoles (type KQML,
ou type contract-net). Le changement de protocole peut être réalisé
de façon dynamique. Dans certaines applications nous avons
constaté que lorsqu'un agent dont le rôle est important tombe
en panne, le système attend jusqu'à ce qu'il ait été
réparé. Lorsqu'il réapparaît le système
repart automatiquement.
Environnement de développement
Hilton de Azevedo
a développé une méthodologie d'analyse et de conception
des systèmes d'agents qui nous intéressent (cognitifs, complexes),
utilisable pour définir les agents et les services qu'ils fourniront.
Le développement se fait agent par agent. Un agent est développé
localement sur une machine possédant les outils de mise au point
(exécution pas à pas par exemple, modification directe du
contenu des boîtes aux lettres, etc.). L'agent est testé dans
un environnement qui peut contenir d'autres agents actifs. Une fois au
point, il est envoyé sur sa propre machine qui doit contenir un
environnement adéquat.
Environnement d'exécution
Une fois créés les agents s'exécutent automatiquement,
et il n'est pas possible d'intervenir sur le déroulement des opérations
autrement que pour les tuer. L'interaction entre le système d'agent
et l'utilisateur se fait grâce à des agents de type assistants
pour lesquels un modèle est en cours de développement. Le
système possède un agent qui permet d'afficher le trafic
des messages. L'exécution de chaque agent est indépendante.
OSACA est donc un environnement destiné aux concepteurs de systèmes
multi-agents. L'espoir de ses auteurs est qu'il soit suffisamment simple
pour que l'utilisateur (responsable d'une application) puisse s'en servir
pour développer lui-même le SMA et devenir ainsi concepteur.
Publications
[1] Mark R. Schravesande. 1998.
Examination, improvement and demonstration of the use of prototype agent
environment OSACA 1.5. Memo 98/96. Laboratoire Heudiasyc. UTC
[2] Edson Scalabrin. 1996 .
Conception et réalisation d'environnement de développement
de systèmes d'agents cognitifs. Thèse de doctorat. UTC, Spécialité
Contrôle des Systèmes..
[3] Edson Scalabrin and Jean-Paul
Barthès. An environment for building cognitive agents for cooperative
work. In Proc. of the 2nd International Workshop on Computer Supported
Cooperative Work in Design. Bangkok, Thailand. Nov 26-28, 1997.
[4] Weiming Shen and Jean-Paul
Barthès. 1996. An experimental multi-agent environment for engineering
design. International Journal of Cooperative Information Systems, vol 5,
No. 2&3, 131-151.