𝗠𝗼𝗻 𝗮𝗴𝗲𝗻𝘁 𝗱𝗲 𝗰𝗼𝗱𝗮𝗴𝗲 𝗱𝗲𝗺𝗮𝗻𝗱𝗮𝗶𝘁 𝗹𝗮 𝗽𝗲𝗿𝗺𝗶𝘀𝘀𝗶𝗼𝗻 𝗽𝗼𝘂𝗿 𝗰𝗵𝗮𝗾𝘂𝗲 𝗽𝗲𝘁𝗶𝘁𝗲 𝗲́𝘁𝗮𝗽𝗲
Mon assistant IA avait un problème majeur. Il ne refusait pas de demander la permission. Il demandait la permission trop souvent.
Je lui confiais une tâche simple, comme lire un PDF. L'assistant faisait un mouvement, demandait une approbation, exécutait la commande, puis demandait immédiatement à nouveau pour la petite étape suivante. Une seule tâche devenait un cycle incessant de demandes.
Les demandes d'approbation sont nécessaires. On veut qu'un assistant local s'arrête avant d'exécuter des commandes, d'écrire des fichiers ou d'ouvrir des applications. Mais un travail réel nécessite de nombreuses étapes. Lire un PDF implique de vérifier la présence de Python, de trouver un convertisseur, d'exécuter ce convertisseur et de lire le texte.
Si chaque étape demande une approbation, vous cessez d'évaluer les risques. Vous commencez à cliquer sur les interruptions juste pour les faire disparaître. Cela vous entraîne à ignorer le système de sécurité. C'est plus dangereux que de ne pas avoir de sécurité du tout.
L'ancien flux de travail ressemblait à ceci :
- L'assistant choisit un outil
- La politique exige une confirmation
- L'utilisateur approuve
- L'outil s'exécute
- L'assistant demande à nouveau pour l'outil suivant
L'assistant ne saisissait pas l'intention de l'utilisateur. Vous n'approuviez pas une minuscule tentative. Vous approuviez une tâche complète.
J'ai modifié le fonctionnement de CliGate. Désormais, une fois que vous approuvez la première action dans une discussion, le système définit un indicateur (flag). Cela permet aux étapes suivantes de se poursuivre sans nouveaux cycles d'approbation. L'assistant reçoit toujours les résultats réels afin de pouvoir continuer à travailler.
J'ai également ajouté une issue de secours : /safe. Cette commande réactive le mode de confirmation explicite.
J'ai aussi corrigé un bug de langue. Lorsque le système poursuivait une tâche, il changeait parfois la langue des demandes. Si vous parliez chinois, l'assistant passait à l'anglais pour la demande suivante. Désormais, l'assistant examine votre dernier message réel pour choisir la bonne langue.
La solution n'est pas de désactiver les approbations. La solution est de se souvenir de la raison pour laquelle l'utilisateur a donné son approbation.
Pour les outils locaux, utilisez une confiance limitée à la tâche :
- Demandez avant de franchir une limite majeure
- Retenez l'approbation pour la tâche en cours
- Prévoyez un moyen de revenir au mode strict
- Ne laissez pas les messages système modifier l'intention de l'utilisateur
C'est ainsi que je construis les approbations dans CliGate. C'est mon plan de contrôle local pour Claude Code, Codex CLI et Gemini CLI.
Comment gérez-vous la fatigue liée aux approbations ? Approuvez-vous par appel d'outil, par tâche ou par session ?
Source: https://dev.to/codekingai/my-coding-agent-asked-permission-for-every-tiny-step-4a07