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.