
Louis LAURENT

Le human-in-the-loop consiste à laisser un agent IA avancer seul sur les actions à faible risque, puis à interrompre son exécution avant une décision sensible. L'humain peut approuver, modifier ou rejeter l'action proposée. Le bon système ne demande donc pas une validation à chaque étape. Il place des points de contrôle uniquement là où une erreur serait coûteuse, difficile à annuler ou visible par un tiers.
Cette architecture résout un faux dilemme. Tu n'as pas à choisir entre un chatbot passif qui demande la permission pour tout et un agent autonome qui peut envoyer, supprimer ou payer sans contrôle.
Tu peux construire une autonomie graduée : lecture libre, préparation autonome, écriture réversible, puis validation humaine avant l'irréversible.
Ce que human-in-the-loop veut dire
Un agent exécute une boucle : il observe, raisonne, choisit un outil, lit le résultat et continue. Le human-in-the-loop ajoute une condition avant certains outils.
Quand la condition est déclenchée, l'agent ne lance pas l'action. Il crée une demande structurée qui contient :
l'action prévue
les paramètres exacts
la raison de l'action
le risque ou l'effet attendu
les décisions autorisées
l'état nécessaire pour reprendre
L'humain répond ensuite par une décision. Les trois décisions minimales sont l'approbation, la modification et le rejet.
La documentation Human-in-the-Loop de LangChain décrit exactement ce cycle. Le middleware inspecte les appels d'outils avant leur exécution, interrompt ceux qui correspondent à une politique, sauvegarde l'état du graphe, puis reprend après la décision humaine.
Le point important n'est pas le framework. C'est la mécanique : pause durable, décision structurée et reprise du même travail.
Pourquoi demander une validation partout ne fonctionne pas
Un agent qui interrompt l'utilisateur après chaque lecture, recherche ou calcul ne fait pas gagner du temps. Il transforme l'humain en opérateur de clics.
Trois problèmes apparaissent.
La fatigue d'approbation
Quand dix demandes sans risque sont mélangées à une demande critique, l'utilisateur finit par tout accepter machinalement. La validation existe encore dans l'interface, mais plus dans l'attention.
Le travail se bloque
Une tâche de vingt minutes peut attendre plusieurs heures parce qu'une permission triviale n'a pas été donnée. Les agents asynchrones perdent leur intérêt.
Le risque reste mal classé
Une action sensible peut être présentée avec le même bouton qu'une lecture de fichier. L'interface ne montre ni l'impact ni la possibilité de retour arrière.
Le but n'est donc pas de maximiser le nombre d'approbations. Le but est de maximiser la qualité des décisions humaines.
La matrice de risque à quatre niveaux
Classe chaque outil selon son effet réel.
Niveau 0 : lecture
Exemples : lire un document autorisé, lister des fichiers, consulter une page publique, calculer un total.
Ces actions peuvent généralement s'exécuter sans interruption dans un périmètre défini. Elles doivent quand même respecter les accès et la confidentialité.
Niveau 1 : préparation réversible
Exemples : créer un brouillon, écrire dans un dossier de travail, produire un rapport séparé, modifier une branche isolée.
L'agent peut avancer seul si la sortie est clairement marquée et facile à annuler. La preuve de résultat reste obligatoire.
Niveau 2 : modification partagée
Exemples : mettre à jour un CRM, modifier une base interne, pousser une branche, changer le statut d'un ticket, créer un accès temporaire.
Ces actions demandent souvent une politique conditionnelle. Une mise à jour ordinaire peut être automatique, tandis qu'un changement de propriétaire, de montant ou de permission déclenche une revue.
Niveau 3 : action externe ou irreversible
Exemples : envoyer un email, publier un post, supprimer des données, transférer de l'argent, signer, ouvrir un checkout, déployer en production.
Ces actions doivent rester derrière une validation explicite tant que le système n'a pas une autorisation étroite, documentée et testée.
Cette matrice prolonge le principe explique dans pourquoi un agent ne doit pas être autonome partout. Ici, on le transforme en règle d'exécution.
Les quatre décisions utiles
Approuver
L'action part avec ses paramètres d'origine.
Modifier
L'humain corrige un argument avant exécution : destinataire, montant, date, texte ou ressource visée.
La modification doit rester bornée. Si elle change complètement la mission, il vaut mieux rejeter puis relancer avec un nouveau brief.
Rejeter
L'action ne s'exécute pas. Le motif du rejet retourne dans le contexte pour que l'agent adapte son plan.
Répondre
Dans certains workflows, l'agent a besoin d'une information plutôt que d'une autorisation. L'humain peut fournir la valeur attendue et la boucle reprend.
La documentation frontend de LangChain ajoute cette décision respond aux trois choix classiques. Elle est utile pour une donnée manquante, mais ne doit pas remplacer un formulaire ou une source officielle quand la mission exige une preuve.
Construire une interruption exploitable
Une mauvaise demande dit : "L'agent veut utiliser un outil. Autoriser ?"
Une bonne demande dit :
Envoyer le brouillon "Compte rendu du 7 août" à finance@entreprise.fr depuis operations@entreprise.fr. Cette action contacte un tiers et ne peut pas être retirée de sa boîte mail. Options : approuver, modifier le destinataire ou rejeter avec un commentaire.
La carte d'approbation doit montrer :
un verbe clair
la cible exacte
les paramètres qui changent l'impact
la source du contenu
le niveau de risque
ce qui se passe après l'accord
le moyen d'annuler si disponible
Ne cache pas les arguments dans un menu technique. L'utilisateur doit comprendre l'action sans lire un log.
Le workflow technique minimal
1. L'agent propose l'appel d'outil
Le modèle produit un nom d'action et des arguments structurés.
2. La politique classe l'action
Le moteur compare le nom de l'outil, ses arguments, le contexte et l'utilisateur avec la matrice de risque.
3. Le système sauvegarde l'état
Le fil, les messages, les résultats intermédiaires et l'action proposée sont stockés dans un checkpoint durable.
4. L'interruption est envoyée
L'interface affiche la demande. Une notification peut signaler qu'une décision est attendue, sans exposer de données sensibles.
5. L'humain décide
La réponse contient une décision structurée, pas seulement un texte libre.
6. Le système reprend le même fil
La reprise doit utiliser le même identifiant de thread et le checkpoint correspondant. Sinon, l'agent peut perdre les résultats, répéter une action ou reconstruire un plan différent.
7. L'effet est vérifié
Après l'exécution, l'agent contrôle le résultat observable : message envoyé, ligne mise à jour, fichier présent, statut modifié ou déploiement visible.
LangGraph exige justement un checkpointer et le même thread_id pour reprendre correctement après une interruption. Cette exigence technique révèle une règle générale : une approbation sans état durable n'est pas un vrai workflow.
Cas d'usage 1 : envoyer un email
L'agent peut lire les sources autorisées, préparer le brouillon et vérifier les pièces jointes sans interrompre.
Il s'arrête avant l'envoi et montre :
le destinataire
l'objet
le corps final
les pièces jointes
le compte expéditeur
L'utilisateur peut approuver, corriger le destinataire ou rejeter. Après envoi, l'agent récupère l'identifiant du message et l'ajoute au suivi.
Ne demande pas une approbation pour chaque phrase du brouillon. Demande-la au moment ou le texte quitte l'espace de travail.
Cas d'usage 2 : mettre à jour une base
Une lecture et un calcul peuvent être libres. Une mise à jour doit être classée selon son impact.
Exemple de politique :
ajouter une note interne : automatique
modifier un champ descriptif : automatique avec journal
changer un propriétaire : approbation
modifier un montant : approbation
supprimer une ligne : approbation sans option d'édition
La validation porte sur le diff, pas sur une description vague. Montre l'ancienne valeur, la nouvelle et la clé de l'enregistrement.
Cas d'usage 3 : publier du contenu
L'agent peut rechercher, rédiger, vérifier les sources et préparer les visuels. Il s'arrête avant publication.
La carte doit afficher le compte, le texte exact, le média, la date et le lien éventuel. Une modification humaine doit revenir dans le draft enregistré, sinon le contenu public et l'archive divergent.
Cette règle protège la réputation. Elle permet aussi de conserver une vraie voix humaine, au lieu de publier un texte que personne n'a relu.
Cas d'usage 4 : exécuter du code
Toutes les commandes ne présentent pas le même risque.
Lire les tests ou lancer un linter dans une sandbox est faible risque. Installer une dépendance, modifier le réseau, accéder aux secrets ou déployer demande un contrôle supérieur.
Le self-hosted runner de Claude Code illustre ce besoin. L'exécution peut rester sur ton infrastructure tout en exigeant une validation avant les actions qui touchent la production.
Cas d'usage 5 : transaction financière
Une transaction ne devrait jamais être cachée derrière un bouton générique.
Montre le montant, la devise, le bénéficiaire, la source des coordonnées, le motif, les frais et la date. Interdis l'édition libre du bénéficiaire si elle contourne un contrôle interne. Après approbation, exige une authentification adaptée au niveau de risque.
Le human-in-the-loop ne remplace pas les contrôles bancaires. Il organise le moment où l'agent remet la décision à la personne autorisée.
Les erreurs fréquentes
Interrompre sur le nom de l'outil seulement
Une requête SQL en lecture et un DELETE n'ont pas le même risque. La politique doit inspecter les arguments ou séparer les outils.
Oublier la persistance
Si l'état vit seulement en mémoire, un redémarrage détruit le contexte de la demande. Utilise un stockage durable en production.
Reprendre sans identifiant stable
Une réponse attachée au mauvais thread peut approuver une autre action. Lie la décision à l'interruption et à l'utilisateur autorisé.
Autoriser les doubles clics
Une approbation répétée ne doit pas exécuter deux fois la même action. Ajoute une clé d'idempotence et un statut consomme.
Cacher les effets secondaires
Une action nommée "mettre à jour le dossier" peut envoyer une notification ou déclencher un webhook. Liste les effets réels.
Ne pas prévoir l'expiration
Une demande ouverte pendant trois jours peut devenir invalide. Ajoute une durée, puis force un nouveau calcul des paramètres.
Mesurer seulement les approbations
Un taux d'approbation élevé ne prouve pas la qualité. Mesure aussi les modifications, rejets, erreurs évitées, délais et actions annulées.
La règle d'arrêt
Chaque workflow doit savoir quand ne pas demander une validation simple.
Arrête la mission et escalade si :
la cible ne peut pas être identifiée précisément
les données sources se contredisent
l'approbateur n'a pas l'autorité requise
le montant ou le périmètre dépasse la limite
une donnée sensible apparaît dans la demande
l'action a changé depuis la création de l'interruption
le retour arrière n'existe pas et l'impact est mal compris
Dans ces cas, un bouton "Approuver" donne une fausse sécurité.
Mesurer si ton human-in-the-loop est bien calibré
Suis cinq indicateurs.
Taux d'interruption
Quelle part des actions demande une intervention ? Un taux très élevé signale une autonomie trop faible ou des outils mal découpés.
Délai de décision
Combien de temps le travail attend-il ? Les interruptions doivent arriver au bon canal et contenir assez de contexte.
Taux de modification
Si presque toutes les actions sont modifiées, l'agent prépare mal ses paramètres. Si aucune ne l'est, l'interface ne permet peut-être pas une vraie revue.
Taux de rejet
Les rejets répétés par catégorie révèlent une règle manquante, une source peu fiable ou un outil trop puissant.
Incidents après approbation
Une action approuvée peut quand même être mauvaise. Conserve la preuve, l'utilisateur, les arguments et le résultat pour améliorer la politique.
Tu peux relier ces mesures à une méthode plus large pour évaluer un agent IA.
Plan de mise en place en une semaine
Jour 1 : inventaire des outils
Liste chaque outil, ses arguments et ses effets secondaires.
Jour 2 : classement du risque
Place les outils dans les quatre niveaux. Sépare les lectures et écritures si nécessaire.
Jour 3 : checkpoint durable
Ajoute l'identifiant de thread, l'état et la reprise après interruption.
Jour 4 : carte d'approbation
Affiche les paramètres critiques et les choix autorisés.
Jour 5 : idempotence et expiration
Empêche les doubles exécutions et invalide les demandes trop anciennes.
Jour 6 : tests hostiles
Teste un mauvais destinataire, une somme excessive, une action modifiée et une approbation rejouée.
Jour 7 : réduction des interruptions
Supprime les validations qui n'apportent aucune décision réelle. Garde l'attention humaine pour les actions qui la méritent.
FAQ
Human-in-the-loop signifie-t-il que l'agent n'est pas autonome ?
Non. L'agent peut exécuter toute la préparation et les actions à faible risque. L'humain intervient uniquement aux frontières définies.
Quelles actions doivent toujours demander une validation ?
Par défaut : envoi externe, publication, paiement, suppression définitive, changement de permission, signature et déploiement en production.
Peut-on modifier une action avant de l'approuver ?
Oui, si la politique autorise edit. Pour une modification majeure, rejette et relance plutôt que de déformer silencieusement le plan.
Pourquoi faut-il un checkpoint ?
Parce que l'interruption peut durer. Le système doit reprendre la même mission avec les mêmes résultats, sans répéter les actions précédentes.
Comment éviter la fatigue d'approbation ?
N'interromps que sur les actions qui changent réellement le risque. Regroupe les décisions compatibles et affiche leur effet de façon lisible.
Un humain peut-il quand même se tromper ?
Oui. La validation n'est pas une garantie. Elle doit être soutenue par des paramètres clairs, une preuve, des limites et un retour arrière.
Avant de partir
Si cet article t'a donné envie de construire au lieu de juste lire : j'ai condensé le démarrage en un guide d'une soirée. Ton premier agent qui produit du travail réel, étape par étape, sans code. Gratuit, contre ton email. Tu recevras aussi Kryve Weekly quand elle sortira : le condensé hebdo de ce qui compte en IA, sans le bruit.
Un email pour te l'envoyer. Pas de spam, désinscription en un clic.
Passe de la lecture à la délégation
Pars d’une vraie tâche de ton poste. Le Hub t’aide à la cadrer, la confier à l’IA et contrôler le résultat.


