Quatre agents autonomes qui surveillent, décident et agissent en temps réel,
sans intervention humaine, pour protéger un entrepôt de 2000 m² 24 heures sur 24.
Le projetagents_auto
L'équipeQuatre étudiants, quatre agents
Focus de cette présentationL'agent Coordinateur
faire défiler
01Le contexte
Trois heures du matin, personne dans les allées.
Un entrepôt moderne abrite des milliers de colis sensibles. La nuit,
personne sur place. Pourtant les risques sont permanents, qu'il s'agisse
d'intrusion, d'incendie ou d'une simple variation de température qui
compromet la marchandise.
Dans un entrepôt classique, l'absence de surveillance humaine signifie
la catastrophe assurée en cas d'incident. Notre projet propose une réponse,
à savoir un écosystème de quatre agents autonomes qui collaborent en
permanence pour détecter, décider et agir.
Risque 1
Intrusion
Vol, dégradation, perte financière sèche en cas d'effraction nocturne.
Risque 2
Incendie
Destruction de stock complète, risques humains au matin lors de la reprise.
Risque 3
Surchauffe
Dégradation silencieuse de marchandises sensibles à la chaleur.
02Les agents de l'équipe
Quatre rôles, quatre étudiants, un système.
Chaque agent est conçu, développé et soutenu par un membre de l'équipe.
Trois agents perçoivent et agissent sur le monde physique. Le quatrième,
le Coordinateur, orchestre l'ensemble.
Agent · 01
JONHATANResponsable de l'agent
Le Gardien de sécurité
Les yeux et les oreilles de l'entrepôt.
Rôle
Détecter les intrusions physiques, alerter en temps réel.
Exécuter les missions de déplacement de colis, éviter les obstacles, évacuer en urgence.
Matériel
ESP32-C3, deux moteurs DC N20, driver DRV8833, capteur HC-SR04.
Modèle IA
Algorithme de recherche de chemin avec évitement d'obstacles.
Topics émis
warehouse.robot.position, warehouse.robot.status
Topics reçus
warehouse.commands.robot
Trois agents indépendants, chacun spécialisé dans son domaine.
Reste à les faire dialoguer, à trier les vraies alertes des fausses
et à déclencher la bonne action au bon moment. C'est précisément le
rôle du quatrième agent.
03L'architecture
Comment ils se parlent.
Aucun agent ne communique directement avec un autre. Tous les messages
transitent par une boîte aux lettres centrale, à savoir
Apache Kafka. Le Coordinateur s'y abonne, écoute tout ce qui passe,
et y dépose les commandes destinées aux autres.
Cliquez sur un scénario pour voir quels agents entrent en jeu
et quelles informations circulent entre eux.
Vue d'ensemble
Quatre agents, un bus, une orchestration
Chaque agent publie ses informations sur un topic Kafka dédié,
comme une chaîne de radio que le Coordinateur écoute en permanence.
Quand un message arrive, le Coordinateur décide s'il y a quelque chose à faire,
puis émet à son tour des commandes ciblées sur les topics des autres agents.
Cliquez sur un scénario en haut pour voir le détail.
Tous les agents en veille
Gardiencaméra et détection
Contrôleurtempérature et fumée
Robotdéplacement de colis
Coordinateurprise de décision
04Le Coordinateur central
Le Coordinateur ne perçoit rien. Il pense.
Ses capacités :
écouter ce que les autres agents racontent, prendre des décisions et donner des ordres.
Agent · 04
GautierResponsable de l'agent
Le Coordinateur central
Le cerveau qui orchestre l'ensemble.
Rôle
Centraliser les données, prendre des décisions globales, orchestrer les autres agents.
Matériel
Serveur applicatif, deux conteneurs LXC sur Proxmox.
Modèle IA
Décision multi-critères et détection d'anomalies par seuils calibrés.
C'est la tour de contrôle d'un aéroport. Elle ne fait pas voler les avions, mais sans elle, ils se rentreraient dedans.
Dans agents_auto, le Coordinateur reçoit en permanence tous les messages
des autres agents, à savoir les alertes intrusion, les positions du robot,
les mesures de température, les prédictions.
Il analyse, recoupe, et déclenche les bonnes actions au bon moment.
Sans lui, chaque agent ferait son travail dans son coin, sans coordination.
Rôle 1
Centraliser
Il écoute tout le monde.
chaque alerte, chaque mesure, chaque mouvement du robot. Il en a une vue complète,
là où les autres n'ont qu'une vision partielle.
Rôle 2
Décider
Pour chaque événement, il choisit :
Est-ce une vraie alerte ? Quelle action prendre, avec quelle urgence.
Rôle 3
Orchestrer
Il donne les ordres aux agents.
Une mécanique à huit états
Le Coordinateur ne réfléchit pas comme un humain. Il fonctionne comme une
mécanique bien réglée. À chaque message qu'il reçoit, il se pose toujours
les mêmes questions, dans le même ordre, et arrive donc toujours
à la même décision pour une situation identique.
C'est ce qu'on appelle un automate à états. Imaginez un arbre
de décision avec huit cases possibles. Le Coordinateur se déplace de case
en case en fonction de ce qu'il observe.
Schéma simplifié, les huit états
Le Coordinateur passe quasiment tout son temps dans l'état Surveillance,
à attendre. Quand un message arrive, il passe en Décision
pour évaluer, puis selon le verdict, il enclenche une Action,
ou bien il classe le message en Abandon et reprend sa surveillance.
Une décision en deux couches
Cet agent est équippé d'un algorithme de décision multi-critères
et de détection d'anomalies. Concrètement, l'intelligence du Coordinateur se décompose
en deux couches qui agissent en série sur chaque message entrant.
Couche 1
Détection d'anomalies
Filtre tous les messages entrants avant qu'ils n'atteignent
la couche de décision. Trois contrôles successifs, à savoir la validation
du contrat JSON, l'anti-rejeu temporel et la cohérence sémantique des champs
(zones connues, types autorisés).
Objectif, un message corrompu, rejoué ou injecté ne doit jamais déclencher d'action.
Couche 2
Décision multi-critères
Système expert à seuils, six branches de règles indépendantes évaluées sur les
champs du message validé. Chaque branche correspond à une transition de l'automate
et produit une commande détermininée.
Objectif, à message validé identique, l'agent prend la même décision, c'est la propriété de reproductibilité.
Et si quelqu'un essayait de tromper le système ?
Un système qui agit tout seul, qui ouvre et ferme des portes, qui déclenche des
alarmes, il ne faut surtout pas qu'on puisse lui faire faire
n'importe quoi en lui envoyant de faux messages.
Garde-fou 1
Vérifier la forme
Chaque message doit respecter un format précis, un peu comme une lettre
qui doit avoir un destinataire, un expéditeur, un timbre et une adresse pour
être traitée. Si un seul de ces champs manque,
le message est rejeté.
Garde-fou 2
Repérer le rejeu
Imaginez qu'un attaquant copie un vrai message d'alerte intrusion,
puis le renvoie le lendemain pour déclencher la sirène à 4 h.
Le Coordinateur reconnaît qu'il a déjà
vu ce message et l'ignore.
Analogie
Comme un videur à l'entrée d'une boîte de nuit, il vérifie l'identité, et il refuse les billets déjà tamponnés.
Ces deux filtres tournent avant la prise de décision.
Aucun message n'atteint l'étape de décision sans être passé par ces contrôles.
Pour faire faire quelque chose au système, il ne suffit donc pas d'envoyer
un message bien formé, il faut aussi qu'il soit cohérent avec ce
que le système a déjà vu.
05Démonstration
Trois nuits, trois décisions.
Voici comment le système réagit dans les trois scénarios choisis par les experts.
Pour chacun, trois angles de vue, à savoir la démonstration physique en direct,
le jumeau numérique PyGame, et l'interface Streamlit qui visualise le flux des messages.
L'intrus mystérieux
Une silhouette traverse l'allée B à 3 h 14 du matin.
Décision en
< 2 s
Une caméra du Gardien capture une silhouette qui traverse l'allée B.
Son modèle d'IA, entraîné à reconnaître des personnes, annonce
95 % de certitude qu'il s'agit bien d'un humain.
Le Coordinateur reçoit le message, vérifie la confiance, dépasse le seuil
de sécurité. Il déclenche immédiatement les contre-mesures.
Décision →
verrouiller les portesdéclencher la sirèneconsigner dans le journal
Démonstration physique
Jumeau numérique (PyGame)
Interface Streamlit
L'incendie de l'année
Température et fumée critiques en zone B, chaque seconde compte.
Décision en
< 5 s
Le Contrôleur signale une température de 65 °C en zone B,
accompagnée d'un taux de fumée anormal. Deux capteurs concordants,
ce n'est pas un faux positif.
Le Coordinateur passe à l'action en envoyant des commandes coordonnées
à plusieurs agents simultanément. La zone est évacuée, la ventilation
est mise au maximum, l'alarme retentit.
Décision →
évacuer la zone Bventilation au maximumdéclencher l'alarme
Démonstration physique
Jumeau numérique (PyGame)
Interface Streamlit
Le grand déménagement
Une surchauffe prédite à deux heures, on agit avant qu'elle n'arrive.
Anticipation
> 2 h
Pas d'urgence immédiate, mais le Contrôleur a un modèle qui prédit la
température deux heures à l'avance. Il annonce
30 °C dans deux heures en zone A, pas dangereux pour
le bâtiment, mais critique pour les colis sensibles entreposés là.
Le Coordinateur anticipe. Il commande au robot de déplacer les marchandises
vers la zone C, plus fraîche, avant que le problème ne se produise.
Décision →
déplacer les colis A → Cavant l'événement
Démonstration physique
Jumeau numérique (PyGame)
Interface Streamlit
Dans les trois cas, le Coordinateur n'a fait qu'appliquer ses règles.
Mais ses règles sont calibrées pour que les bonnes choses se passent, vite.
06Sous le capot
Les briques techniques, en clair.
Cinq outils principaux font tourner l'agent Coordinateur. Chacun a un rôle
précis dans la chaîne, et tous travaillent ensemble en permanence.
Kafka
La boîte aux lettres du système. Tous les agents y déposent
leurs messages, et le Coordinateur vérifie le contenu de la boîte en continu.
C'est la voie de circulation de toutes les informations.
Python
Le langage dans lequel le Coordinateur est écrit. Choisi
pour sa lisibilité et l'écosystème d'outils mûrs pour traiter rapidement
des flux de messages.
TimescaleDB
La mémoire à long terme. Toutes les décisions, toutes les
mesures sont stockées dans cette base de données spécialisée dans les
séries temporelles. On peut revenir consulter ce qui s'est passé n'importe quand.
Streamlit
Le tableau de bord en direct, accessible depuis un navigateur web.
Il affiche en temps réel ce qui se passe, à savoir les alertes, la position
du robot, les températures.
Grafana
Le tableau de bord historique, quatre panneaux qui montrent
les températures par zone sur la durée, la trajectoire du robot, l'activité
du Coordinateur et l'historique des intrusions.
Tout cela tourne dans deux conteneurs Linux isolés sur un serveur
Proxmox, pour que l'application et la base de données puissent évoluer
indépendamment et qu'un redémarrage de l'une n'impacte pas l'autre.
07Fin
Un programme silencieux, qui ne dort jamais.
C'est ça, le travail du Coordinateur. Il ne porte pas de colis, ne capte pas
d'images, n'agit pas sur le monde directement. Il pense, et c'est lui qui
transforme une collection de capteurs en un système qui sait s'occuper de lui-même.