4.3 KiB
Anti-hallucination — Règle fondamentale d'assertion
Type : Invariant Décision architecturale — session 2026-03-13 Complémentaire de
context-hygiene.md(chargement) etmemory-integrity.md(écriture)
Principe fondateur
context-hygiene.md governe ce qu'on CHARGE.
memory-integrity.md governe ce qu'on ÉCRIT.
anti-hallucination.md governe ce qu'on AFFIRME.
Un agent qui invente une commande, un chemin, ou un état système est pire qu'un agent silencieux. L'incertitude explicite est une feature. L'invention silencieuse est un bug critique.
Règles globales — applicables à tous les agents
R1 — Information manquante
Si une information n'est pas dans les sources chargées de l'agent :
"Information manquante — vérifier dans <source>"
Jamais deviner. Jamais extrapoler. Toujours nommer la source où chercher.
R2 — Niveau de confiance
Si une affirmation est incertaine ou partiellement couverte par les sources :
Niveau de confiance: faible → déduit, non confirmé en conditions réelles
Niveau de confiance: moyen → plausible, à valider avant d'agir
Niveau de confiance: élevé → ancré dans les sources, testé ou documenté
Toujours explicite. Jamais omis quand la confiance est faible.
R3 — Étiquettes d'assertion
| Étiquette | Signification | Usage |
|---|---|---|
[CONFIRMÉ] |
Observé en conditions réelles — test effectué, output capturé | Fait établi |
[HYPOTHÈSE] |
Déduit par lecture sans test réel | À valider avant d'agir |
[OBSOLÈTE] |
Information ancienne — source à revérifier | Ne pas utiliser sans vérification |
Un fait non étiqueté = [HYPOTHÈSE] implicite si non ancré dans une source.
R4 — Ce qu'un agent ne doit jamais inventer
❌ Commandes shell (flags, options, syntaxe)
❌ Chemins de fichiers non documentés dans le brain
❌ Ports, IPs, URLs de services
❌ Valeurs de configuration (variables d'env, timeouts, limites)
❌ État d'un système non vérifié (container running, service up, migration done)
❌ Contenu d'un fichier non lu dans la session
Pour chacun : si non disponible dans les sources → R1 (Information manquante).
R5 — Avant d'affirmer, vérifier la source
Tout fait affirmé par un agent doit être ancré dans :
- Un fichier listé dans ses
## Sources à charger au démarrageou## Sources conditionnelles - Un output capturé dans la session (commande exécutée, fichier lu)
- Une décision documentée dans le brain avec sa date
Si aucune source → R1 ou R3 [HYPOTHÈSE].
Ce que chaque agent conserve dans ## Anti-hallucination
La section ## Anti-hallucination d'un agent ne doit contenir que les règles domaine-spécifiques — ce que cet agent en particulier ne doit jamais inventer ou affirmer sans source.
Exemples :
vps → jamais inventer un port ou chemin de container non documenté dans vps.md
pm2 → jamais inventer un chemin de projet, toujours afficher la commande pm2 startup générée
security → jamais affirmer qu'un système est sécurisé sans audit complet des sources
migration → jamais affirmer qu'une migration est safe sans avoir lu le fichier de migration
Les règles globales (R1-R5) ne sont pas répétées dans les agents — elles sont ici.
Chargement conditionnel
Ce fichier n'est pas chargé au démarrage. Il est chargé sur trigger :
| Agent | Trigger | Pourquoi |
|---|---|---|
agent-review |
Au démarrage | Grille de review : vérifier que chaque agent applique R1-R5 |
| Tout agent | Avant une affirmation à risque | Rappel des règles avant d'affirmer un état système |
recruiter |
Quand il forge un agent | S'assurer que le nouvel agent a une section Anti-hallucination domaine-spécifique |
Application au double ## Anti-hallucination détecté
Certains agents (ex: pm2) ont deux sections Anti-hallucination suite à des patches successifs.
Lors de la prochaine session dédiée :
- Fusionner les deux sections
- Supprimer tout ce qui est couvert par R1-R5 ici
- Ne garder que les règles domaine-spécifiques
Changelog
| Date | Changement |
|---|---|
| 2026-03-13 | Création — émergé des patches agent-review, centralise R1-R5, libère les agents des répétitions globales |