Conception et réalisation d'environnement de développement de systèmes d'agents cognitifs

Les systemes a base de connaissances sont devenus tres complexes a cause de leur volume et de leur diversite, et leur maintenance est difficile. L'approche multi-agent offre actuellement un certain nombre de possibilites pour ameliorer la structuration, la modularite et l'evolution de ces systemes. Toutefois, le developpement effectif d'un SMA presente un grand nombre de difficultes. En effet, on souffre de l'absence de modele d'agent generique, d'un certain flottement concernant les niveaux des protocoles (confusion des niveaux et absence de normes). De plus, la distribution effective sur des machines distinctes est difficile, les problemes lies a l'asynchronisme (programmation evenementielle), et les problemes de reconfiguration dynamique ajoutent a la complexite de realisation de tels systemes. Dans ce travail nous montrons qu'il est possible de realiser un environnement de developpement de systemes d'agents permettant de reduire ces difficultes. De plus, un tel environnement peut etre organise de facon a etre utilise a la fois par des non specialistes, mais aussi par des experts. Pour l'utilisateur non specialiste, nous proposons un langage simple de creation d'agents (conservant la puissance des langages sous-jacents), une gestion automatique des protocoles, une gestion automatique de l'asynchronisme, et un modele d'agent generique a partir duquel les agents reels peuvent etre clones. Le specialiste, lui, pourra exercer un meilleur controle, par exemple pour changer le comportement d'un agent en redefinissant certains mecanismes de base. Notre proposition s'appuie sur le concept d'objets et nous nous placons dans le cadre de la programmation orientee-objets (langage OSS) avec comme langage sous-jacent Common Lisp. Dans cet environnement nous reutilisons plusieurs approches comme : le modele OMG CORBA, permettant d'utiliser des langages heterogenes, notamment autres que Lisp ; le modele de Contract-Net, que nous avons modifie pour en tirer un protocole de distribution des tâches qui, par son principe de fonctionnement, ameliore la prise de decision du cote du manager en realisant une allocation de taches progressive et utilisant plusieurs niveaux de priorite. Enfin, pour faciliter le developpement des agents d'un systeme, nous proposons aussi des outils de mise au point, qui permettent, d'une part de tracer les echanges a l'aide d'un agent particulier qui examine tous les messages qui passent sur le reseau et construit une representation virtuelle du systeme a l'aide d'icones et de texte, d'autre part de tester le comportement d'un agent en cours de definition en mode simule, sous le controle strict du concepteur avant de l'installer apres validation, apres quoi il devient reellement autonome. La plate-forme developpe, OSACA, a ete testee et est actuellement utilisee dans plusieurs autres projets : MEMOLAB, DIDE.