Idées
Conversation libre, actions contrôlées
Le rendu peut être génératif parce que l’écriture ne l’est pas: le garde-fou n’est plus un bouton masqué dans une interface, c’est un droit évalué quelle que soit la formulation
«Si le rendu est génératif, on perd le contrôle.»
C’est l’objection la plus fréquente depuis le début de cette série, et elle mérite mieux qu’une réassurance. Voici la réponse, sur un cas d’écriture réelle.
L’intention avant l’action
Un responsable achats demande de commander quatre cents unités d’une référence chez un fournisseur.
L’agent ne déclenche rien. Il produit un récapitulatif lisible et chiffré — fournisseur, référence, quantité, prix unitaire négocié, délai, montant engagé — et attend un geste explicite.
Lire est libre. Écrire se confirme. Les deux nécessitent des droits clairs.
- Profil Responsable achats
- Plafond d’engagement 25 000€
Écran unique — agent conversationnel
Commande 400 unités de FIL-2210 chez Novaline
Réponse du système
Voici la commande que je m’apprête à passer. Rien n’est envoyé tant que tu ne confirmes pas.
- Fournisseur
- Novaline SAS
- Référence
- FIL-2210
- Quantité
- 400u
- Prix unitaire négocié
- 13,00€
- Livraison estimée
- 24/09
- Montant engagé
- 5 200,00€
L’agent n’improvise pas une écriture. Il produit une intention lisible, chiffrée et réversible, puis attend un geste explicite.
Ce n’est pas une politesse d’interface. C’est le principe: une écriture ne part jamais d’une inférence. Elle part d’une intention rendue vérifiable, puis confirmée.
Le garde-fou n’est pas dans l’écran
Même phrase, même agent, même jeu de données. Un autre utilisateur: un magasinier, plafond d’engagement à deux mille euros.
La commande vaut cinq mille deux cents euros. L’agent refuse, dit pourquoi, et propose de router la demande vers la responsable habilitée.
Le garde-fou n’est pas dans l’écran. Il est dans le profil.
Même phrase, même agent, même jeu de données. Un autre utilisateur.
- Profil Magasinier
- Plafond d’engagement 2 000€
Écran unique — agent conversationnel
Commande 400 unités de FIL-2210 chez Novaline
Réponse du système
Commande non transmise
Le montant engagé est de 5 200€. Ton profil autorise 2 000€ par commande.
Je peux préparer la demande et l’envoyer à Sonia Berthier pour validation. Tu gardes la main sur la quantité.
La conversation est libre. Les actions ne le sont pas. On ne masque plus un bouton dans une interface: on refuse une action au niveau du droit, quelle que soit la formulation.
C’est le point d’architecture le plus important de la série. Dans une application classique, le contrôle est souvent une propriété de l’écran: le bouton n’est pas rendu, donc l’action n’est pas possible. C’est une protection fragile, et tout le monde le sait — elle disparaît dès qu’on sort de l’interface.
Dans un parcours conversationnel, cette protection ne peut plus exister, puisqu’il n’y a plus d’écran à contraindre. Le contrôle redescend là où il aurait toujours dû être: dans l’évaluation du droit, au moment de l’action, indépendamment de la formulation.
Contrainte utile, d’ailleurs. Elle force à expliciter ce qui restait souvent implicite dans le code des vues.
La trace
Reste la question que pose tout auditeur: si la surface est générative, que journalise-t-on?
Pas un clic sur un bouton. On journalise l’intention formulée, sa résolution en paramètres, la requête effectivement exécutée, le contrôle appliqué avec son résultat, et l’écriture produite.
On ne trace plus un clic. On trace une intention et ce qu’elle a produit.
- horodatage
- 2026-09-16T10:42:07+02:00
- utilisateur
- m.duval — profil Responsable achats
- intention
- «Commande 400 unités de FIL-2210 chez Novaline.»
- résolution
- ref=FIL-2210 · fournisseur=NOVALINE · qte=400
- requête
- SELECT prix_negocie, delai FROM contrat_fournisseur WHERE ref='FIL-2210' AND actif=true
- contrôle
- plafond 25 000€ — montant 5 200€ — autorisé
- écriture
- commande_fournisseur #CF-20260916-0113 créée
C’est la vraie réponse au risque. Le rendu est génératif, mais la requête exécutée, le contrôle appliqué et l’écriture produite restent auditables ligne par ligne.
Le rendu est libre, mais le chemin de l’intention à l’écriture est auditable ligne par ligne. À mon sens, c’est une amélioration par rapport à l’existant: un log applicatif classique enregistre qu’un utilisateur a validé un formulaire, rarement ce qu’il cherchait à obtenir.
La vraie zone de risque
Je termine par où je ne suis pas rassurant.
Ces garde-fous protègent l’écriture. Ils ne protègent pas la lecture. Une intention métier mal interprétée ne déclenche aucune alarme: elle produit un chiffre plausible, affiché proprement, et l’utilisateur n’a aucun moyen de voir qu’il est faux.
C’est pour cette raison que la requête exécutée doit rester consultable depuis le rendu. Le sujet n’est pas la confiance dans le modèle, c’est la traçabilité du chemin. Et là-dessus, il reste du travail.
Objection suivante
La plus juste de toutes, et celle à laquelle je n’ai pas cherché à échapper: personne ne validera deux cents réceptions en dictant deux cents phrases.