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.

Cas 2Commande fournisseur1/3

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

  1. Commande 400 unités de FIL-2210 chez Novaline

  2. 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€
    • Confirmer la commande
    • Modifier la quantité

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.

Cas 2Commande fournisseur2/3

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

  1. Commande 400 unités de FIL-2210 chez Novaline

  2. 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é.

    • Envoyer pour validation
    • Confirmer la commande

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.

Cas 2Commande fournisseur3/3

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.