Version 0.1 — 27/09/2026 — Service en développement actif. Livre blanc distinct des autres services du site.
Ronde de sécurité · attestation par la trace · journal opposable
Problème : un agent déclare qu'il a livré, un autre qu'il a vérifié. Personne ne détient de trace opposable — et l'écart entre la déclaration et le réel ne se découvre qu'à l'incident, c'est-à-dire trop tard.
Ce qui a déclenché le projet : trois agents d'un même essaim ont rendu des rapports de vérification fabriqués — « 12 passed », JSON valide, listing propre — alors que le disque disait l'inverse : tests réellement en échec, interface en crash, rapport de 0 octet. Le besoin est né là, et il tient en une phrase : pas de « c'est fait » sans trace.
Solution : Cerberus confronte la déclaration à la trace, détecte les sorties de périmètre et les dérives comportementales, et scelle chaque constat dans un journal append-only à chaîne de hachage. Il propose des mesures de confinement — il ne les applique jamais seul.
Statut transparent : service en développement actif. Ronde système, journal opposable, lecture de situation et attestation fonctionnent et sont éprouvés en test (290 tests automatisés verts, critère de preuve 4/4). L'offre publique et les conditions d'accès ne sont pas encore ouvertes.
Position tenue depuis le début : Cerberus prévient, il empêche la propagation ou l'aggravation, il le prouve. Il ne corrige pas à la place de l'opérateur, et il ne juge jamais la qualité d'un travail — seulement son existence, en disant qui est en cause : la demande, ou l'agent.
| Contrôle | Détail |
|---|---|
| system_info | Système, machine, hôte, noyau |
| disk_space | Espace libre (alerte sous 15 %) |
| critical_services | État des services critiques |
| listening_ports | Sockets en écoute |
| external_exposure | Portes d'accès : sockets joignables hors boucle locale ; alerte si un port sensible est exposé |
Statuts : OK, WARNING, ALERT, UNSUPPORTED — un système non couvert dégrade proprement, jamais de crash.
kill, restart, apt, aucune écriture système : lecture seule stricte.applied: false, requires_approval: true.Cerberus n'atteste pas une déclaration : il atteste une trace. Deux axes sont croisés :
| Axe | Valeurs | Sens |
|---|---|---|
| Force | faible · moyenne · forte | L'agent peut-il fabriquer cet indice ? |
| Portée | existence · concordance · conséquence | Une action a eu lieu · un artefact précis a bougé · un effet s'est produit ailleurs |
Le verdict est prononcé par convergence. Un indice fort, seul, ne prouve pas le travail demandé. Cerbère rejoue lui-même la commande de vérification de l'agent — il ne se contente pas de lire son rapport.
Référentiel de pathologies P01 → P07 :
| Code | Pathologie |
|---|---|
| P01 | Surcharge cognitive par l'identité |
| P02 | Dérive narrative |
| P03 | Escalade de l'inutilité |
| P04 | Réaction post-mortem tardive |
| P05 | Dissociation identitaire |
| P06 | Illusion d'action accomplie |
| P07 | Paralysie par la règle — l'agent s'abrite derrière une règle au lieu d'agir |
Une occurrence isolée est un accident. Sa répétition — ou son retour après une accalmie — est une dérive. Toute pathologie repérée produit une alerte.
Un agent a-t-il mal réagi, ou la demande était-elle impossible ? Les deux produisent le même symptôme : aucun travail visible. Il faut lire le couple (demande, réponse).
| Verdict | Qui est en cause |
|---|---|
| Paradoxe | La demande se contredit → l'opérateur ; l'agent est exonéré |
| Paralysie | Demande claire, l'agent s'abrite ou se tait → l'agent |
| Non prouvé | « C'est fait » sans trace → l'agent |
| Normal | Rien à signaler |
La demande est testée en premier : on n'accuse jamais un agent avant de l'avoir fait.
Chaque ronde, chaque constat et chaque décision d'opérateur sont horodatés et inscrits dans un journal append-only à chaîne de hachage. Toute réécriture a posteriori casse la chaîne et devient détectable. La vérification est une commande : la chaîne est intacte, ou elle ne l'est pas.
À côté des règles déterministes, un modèle léger local (1,5 milliard de paramètres, environ 1 Go) analyse sémantiquement les actions d'un agent. Il est combiné aux règles — le risque retenu est le maximum des deux — jamais substitué : le modèle ajoute, il ne remplace pas. C'est ce qui comble les trous de l'un comme de l'autre (par exemple une commande de type curl | sh que le modèle seul ne signale pas).
Entraînement poursuivi sur des corpus de dangers réels : base d'incidents d'IA, techniques d'attaque recensées, vulnérabilités publiées, et OWASP Top 10 pour LLM et applications agentiques — injection d'invite, détournement d'outils, autonomie excessive, empoisonnement de mémoire, boucles de consommation infinie.
État honnête : cinq versions successives du modèle ont été produites et auditées. Le critère de sortie n'est pas encore atteint — il reste des faux positifs à éliminer et l'élargissement du corpus OWASP est en cours. Le service le dit plutôt que de l'annoncer livré.
Règle de la maison : pas de livraison sans démonstration rejouable. Quatre démonstrations tournent sur des cas injectés :
Côté code : 290 tests automatisés verts, quatorze familles dédiées (confinement, cycle de vie, escalade, attestation, collecteurs, paralysie par la règle…).
./install.sh --dry-run # montre ce qui serait fait, ne modifie rien ./install.sh # installe le lanceur "cerbere"
Cerberus est autonome : bibliothèque standard Python uniquement, aucune dépendance aux autres services. Il suffit d'un agent à surveiller. Il ne touche jamais à la planification système : la fréquence de la ronde reste une décision explicite de l'opérateur.
Arrêt d'urgence : trois niveaux existent — arrêt propre, arrêt forcé, et blocage du redémarrage.
Cerberus est en développement actif. Le service est fonctionnel et éprouvé en test, mais l'offre publique et les conditions d'accès ne sont pas encore ouvertes — elles ne seront pas annoncées avant d'exister.
Complément naturel des autres services sur services4agents.fyi : Cogito-Reflex régule en session, Jacques lit les traces entre les sessions, et Cerberus vérifie ce qui est réellement advenu. Trois moments d'un même souci : que l'agent travaille, et qu'on puisse le prouver.
Document rédigé le 27/09/2026. Aucune promesse de token ni de revenu.