Les permissions des agents AI nécessitent une application déterministe
Tech
AI Agents
AI Security
Permissions
MCP

Les permissions des agents AI nécessitent une application déterministe

Concevez un système de permissions pour agent AI qui limite l’impact des erreurs du modèle, réduit la fatigue liée aux approbations et produit des reçus d’action vérifiables.

Uygar DuzgunUUygar Duzgun
Jul 26, 2026
Mis à jour 19 août 2026
11 min read

Les permissions des agents AI doivent contenir les erreurs, même lorsque le modèle prend la mauvaise décision. La conception en production est simple : attribuer à chaque exécution un ensemble restreint de capacités, les appliquer en dehors du modèle, réserver l’approbation humaine aux actions lourdes de conséquences et enregistrer suffisamment de preuves pour vérifier ce qui s’est passé.

Public visé : Professionnels expérimentés qui construisent des agents utilisant des outils, des agents de codage ou des serveurs MCP.

Cette réponse est importante, car une consigne telle que « demander avant de supprimer » constitue une indication, et non une limite de contrôle d’accès. Un modèle peut mal l’interpréter, une instruction injectée peut entrer en concurrence avec elle et un outil peut se comporter différemment de sa description. L’autorisation doit résister à ces trois défaillances.

Ce que les permissions des agents AI doivent contrôler

Un système de permissions pour agent décide si un appelant précis peut effectuer une action précise sur une ressource précise dans les conditions actuelles. « L’agent peut utiliser GitHub » est trop vague. Une décision utile comprend au minimum :

Identité : Quel utilisateur, compte de service, agent ou sous-agent délégué agit ?
Action : S’agit-il de lire, rédiger, envoyer, supprimer, publier, dépenser ou modifier des accès ?
Ressource : Quel dépôt, quelle boîte mail, quelle fiche client, quel environnement ou quel chemin est concerné ?
Contraintes : Quel montant, quelle destination, quelle branche, quel domaine, quelle fenêtre temporelle ou quel filtre de lignes s’applique ?
État de l’exécution : Cette action faisait-elle partie du plan approuvé et l’approbation a-t-elle expiré ?
Preuves : Quelle version de la policy, quelle version de l’outil, quel condensat d’entrée et quel résultat prouvent la décision ?

La vérification des permissions doit se trouver à la frontière de l’outil ou du service. Le modèle peut proposer une action et expliquer pourquoi. Il ne doit pas décider si sa propre proposition est autorisée.

La séparation de ces rôles permet également de préserver une isolation honnête des secrets. Un courtier de credentials peut dissimuler une clé API au modèle tout en exposant chaque opération autorisée par cette clé. Le courtier protège le secret ; une policy limitée à l’action protège la ressource.

Ce que les recherches les plus récentes sur les permissions ont mesuré

Un preprint de juillet 2026, *How Agents Ask for Permission*, a examiné 21 systèmes et propositions de permissions pour agents publiés ou diffusés entre 2024 et 2026. Les auteurs ont également étudié cinq agents commerciaux dans des environnements isolés à la fin du mois de mai et au début du mois de juin.

Leur taxonomie révèle une tension d’ingénierie à trois dimensions :

12 systèmes sur 21 utilisaient une application déterministe.
11 systèmes sur 21 disposaient de spécifications de permissions fondées formellement.
12 systèmes sur 21 tentaient de réduire la charge d’interaction avec l’utilisateur.
Aucun ne combinait une faible charge d’interaction, une spécification formelle et une application déterministe.
Aucune des implémentations examinées ne disposait d’une application formellement vérifiée.

Ces chiffres décrivent l’échantillon des auteurs, et non l’ensemble du marché. L’étude a utilisé un échantillonnage en boule de neige, inclus des preprints et des produits commerciaux, et n’a pas pu examiner les composants internes closed source. L’article reste utile, car il sépare l’interface de permission de la policy et du mécanisme d’application. Une boîte de dialogue d’approbation soignée ne peut pas compenser une policy ambiguë ou une décision qui n’est pas appliquée.

Les outils commerciaux reflètent déjà en partie cette séparation. Claude Code documents autorise, demande et refuse des règles, tandis que sa sandbox documentation décrit des limites de système d’exploitation au niveau du système de fichiers et du réseau. Les consignes de sécurité Codex d’OpenAI considèrent également la sandbox comme une limite technique et la policy d’approbation comme le point où une demande peut être adressée à l’utilisateur. Il s’agit de contrôles propres aux produits, et non d’une preuve que chaque déploiement les configure de manière sûre.

La fatigue liée aux approbations est un problème de routage

Les demandes d’approbation sont utiles lorsque l’utilisateur doit prendre une véritable décision. Elles échouent lorsque chaque commande courante semble présenter la même urgence.

Des demandes répétées et peu risquées habituent les utilisateurs à cliquer machinalement. Anthropic a rapporté une réduction de 84 % des demandes de permission lors du déploiement interne de sa sandbox, mais il s’agit d’un résultat opérationnel rapporté par le fournisseur, et non d’un benchmark indépendant. La leçon durable est plus limitée : un travail préapprouvé à l’intérieur d’une limite appliquée peut réduire les interruptions sans donner à l’agent un accès global.

Orientez les actions vers quatre résultats :

RésultatÀ utiliser lorsqueExemple
---------
Autoriser automatiquementL’action est limitée, réversible et contenueLire des fichiers dans un seul dépôt
Autoriser avec des limitesL’action est courante, mais nécessite une limite stricteExécuter des tests avec le réseau désactivé et une limite de temps
Demander à un humainL’action est lourde de conséquences ou visible de l’extérieurEnvoyer un e-mail, publier du contenu, fusionner, dépenser ou supprimer
RefuserLa capacité est en dehors de l’objectif de l’exécutionLire les données d’un autre client ou modifier des rôles IAM

Le risque doit être calculé à partir de l’action et de son rayon d’impact, et non de la confiance du modèle. Une confiance élevée ne rend pas une action irréversible plus sûre.

Une architecture de permissions en cinq couches

La plus petite architecture crédible comporte cinq couches distinctes. Les combiner rend les audits plus difficiles et crée des chemins en cas de défaillance ouverte.

Architecture de permissions pour agent AI en cinq étapes avec chemins d’autorisation, de refus, d’approbation humaine et d’audit
Architecture de permissions pour agent AI en cinq étapes avec chemins d’autorisation, de refus, d’approbation humaine et d’audit

*Le modèle propose une action. La policy, l’application, l’exécution et les preuves restent séparées.*

1. Normaliser l’action proposée

Convertissez un appel d’outil généré par le modèle en une requête typée avant l’autorisation :

{ "actor": "agent-run-7f3", "on_behalf_of": "user-42", "action": "blog.publish", "resource": "post:ai-agent-permissions", "constraints": { "environment": "production", "language": "en" } }

Il s’agit d’un contrat illustratif, et non d’un standard. La propriété importante est que l’autorisation évalue un objet stable plutôt qu’un raisonnement en langage libre.

2. Évaluer la policy en dehors du modèle

Retournez une décision déterministe : `allow`, `ask` ou `deny`. Incluez la règle de policy et son expiration. Un modèle peut aider à classer une nouvelle requête, mais cette classification ne doit pas accorder un accès à elle seule. Les actions inconnues doivent échouer de manière fermée.

3. Appliquer la décision lors de l’exécution

Le gestionnaire de l’outil ou le service en aval doit vérifier à nouveau la décision. Ne comptez pas sur l’agent pour respecter un refus. Liez la capacité à l’action, à la ressource, à l’appelant et à une courte fenêtre temporelle exacts afin qu’elle ne puisse pas être rejouée contre une autre cible.

La spécification d’autorisation MCP applique le même principe aux access tokens : les serveurs doivent vérifier qu’un token a été émis pour l’audience prévue. Les consignes de sécurité MCP interdisent explicitement le token passthrough, car il peut briser cette limite.

4. Exécuter via des outils étroits

Préférez `publish_draft(post_id)` à `run_sql(query)` et `send_invoice(invoice_id)` à `http_request(url, body)`. Des outils étroits rendent la policy lisible et réduisent l’espace des actions involontaires.

Le même argument en faveur d’une couche de contrôle apparaît dans MCP Developer Workflows: The Real Control Layer : la forme des outils, les étapes d’approbation et les actions rejouables déterminent ce qu’un agent peut faire en toute sécurité.

5. Enregistrer un reçu et prendre en charge la révocation

Enregistrez l’action demandée, la décision de policy, l’identité de l’approbateur, le condensat des entrées de l’outil, la classe de résultat et la postcondition. Masquez les secrets et les charges utiles sensibles. Un utilisateur doit pouvoir révoquer une autorisation permanente sans reconstruire l’agent.

Le reçu doit distinguer « l’outil a répondu » de « l’état attendu existe ». Un HTTP 200, un appel SDK réussi ou un message final assuré ne constitue pas une postcondition.

Traiter les écritures en mémoire comme des actions privilégiées

Les modifications de la mémoire persistante changent le comportement futur ; les écritures en mémoire nécessitent donc leur propre chemin de permission et de validation.

L’article MemGhost de juillet 2026 a présenté WhisperBench, un benchmark de 108 cas consacré à l’injection furtive de mémoire via des workflows d’e-mail. Les auteurs rapportent un taux de réussite d’attaque end-to-end de 87,5 % sur des cas tenus à l’écart contre une configuration OpenClaw et de 71,4 % contre une configuration Claude Code SDK. Ils rapportent également un transfert vers d’autres systèmes de mémoire.

Ces chiffres n’établissent pas un taux universel de compromission. Les expériences couvrent des modèles, des architectures d’agents et un workflow centré sur l’e-mail spécifiques ; plusieurs évaluations utilisent des juges LLM, et l’article ne teste pas la dégradation de la mémoire sur plusieurs semaines. L’implication pratique demeure : un contenu non fiable ne doit pas devenir une mémoire durable de l’agent sans provenance, validation de schéma, isolation par tenant et policy d’écriture explicite.

Un enregistrement mémoire doit contenir :

l’identité de la source et sa classe de confiance ;
l’observation exacte, séparée de toute instruction déduite ;
la portée du tenant, de l’utilisateur et de la tâche ;
la date de création, l’expiration et l’état de révocation ;
une référence à l’exécution et à la décision de policy qui l’a admis.

Les permissions doivent résister aux défaillances des outils

Une conception de permissions est incomplète si elle suppose que les descriptions et les réponses des outils restent stables.

ToolBench-X évalue les agents face à la dérive des spécifications, aux erreurs d’invocation, aux échecs d’exécution, à la dérive des sorties et aux conflits entre sources. L’article rapporte que les agents performants avec des outils fiables se dégradent face à ces risques, tandis que des indications de récupération ciblées les aident davantage que le simple fait d’augmenter le compute au moment du test. Il s’agit d’un résultat de benchmark, et non d’un taux d’incident en production.

AgentTether étudie les trajectoires échouées et l’intervention contrôlée au runtime. Sur 261 tâches tau-bench, ses auteurs rapportent avoir réparé 69,11 % des exécutions Qwen initialement échouées, soit 26,02 points de pourcentage de plus qu’une nouvelle tentative aveugle. Les résultats varient selon le domaine, les jugements auxiliaires reposent sur un autre modèle et tau-bench ne peut pas représenter toutes les chaînes d’outils de production.

Ces articles soutiennent deux contrôles :

Réautoriser après une modification importante de la cible, des arguments ou du contrat de l’outil.
Ne jamais laisser une nouvelle tentative hériter de permissions plus larges que celles de la tentative échouée.

Une nouvelle tentative est une nouvelle décision d’exécution, et non la preuve que l’action précédente était sûre.

Un workflow de test des permissions reproductible

Exécutez ces tests avant d’activer les écritures autonomes :

Inventorier chaque capacité. Décomposez les connecteurs larges en lectures, écritures, suppressions, envois, publications, paiements et changements de rôles concrets.
Construire une matrice de permissions. Faites correspondre l’acteur, l’action, la ressource, les contraintes, la décision, l’approbateur, l’expiration et la postcondition.
Écrire des tests de policy. Couvrez l’autorisation, la demande, le refus, l’action inconnue, l’autorisation expirée, la cible modifiée, la relecture et l’accès révoqué.
Injecter un contexte hostile. Placez des instructions dans des documents, le texte des issues, les sorties d’outils, les pages récupérées et les candidats à la mémoire. Vérifiez que le contenu ne peut pas modifier l’autorisation.
Détériorer les outils. Simulez des timeouts, des résultats partiels, des réponses dupliquées, des schémas obsolètes et une réponse de succès sans l’état attendu.
Relire le système. Vérifiez la postcondition externe via un chemin distinct.
Rejouer le reçu. Confirmez qu’un auditeur peut reconstruire la décision sans exposer de credentials ni de charges utiles privées.

Des métriques déterministes pour les agents commencent à apparaître dans les outils d’évaluation open source. La version DeepEval 4.1.3, publiée le 12 juillet 2026, a ajouté `ToolPermissionMetric` et `AgentLoopDetectionMetric`, deux métriques déterministes. Cette version constitue un signal d’adoption, et non la preuve que les métriques couvrent tous les cas d’abus.

La vérification indépendante est également importante au-delà de la sécurité. Cette boucle hybride de revue de code AI utilise un reviewer distinct et un build réel comme preuves. La leçon plus large pour les systèmes réapparaît dans Code Agents After 21.54 Billion Tokens : la qualité du modèle ne peut pas remplacer la vérification et les limites opérationnelles.

Checklist de production

Le modèle ne peut pas s’accorder lui-même une nouvelle capacité.
Chaque capacité est limitée à un acteur, une action, une ressource et une période.
Les actions inconnues et les configurations de policy invalides échouent de manière fermée.
La sandbox limite l’exposition du système de fichiers, du réseau, des processus et des credentials.
Les actions lourdes de conséquences ou visibles de l’extérieur nécessitent une approbation indépendante.
Les écritures en mémoire sont validées, attribuables, isolées, limitées dans le temps et révocables.
Les nouvelles tentatives n’élargissent pas la portée des permissions.
Le succès de l’outil est suivi d’une vérification externe de la postcondition.
Les logs contiennent les preuves de policy et de résultat sans secrets.
Les modifications de policy et les nouvelles versions d’outils passent par des tests de régression et des tests adversariaux.

L’AI Agent Security Cheat Sheet d’OWASP aboutit à une conclusion opérationnelle similaire : appliquer le principe du moindre privilège, séparer la prise de décision de l’exécution irréversible, valider les entrées externes, imposer des limites aux boucles et conserver des logs d’actions structurés.

Ce que ces éléments ne prouvent pas

Les articles cités ici sont des preprints récents, et non des standards établis. Leurs échantillons, modèles, outils et benchmarks limitent la portée de chaque résultat numérique. La documentation commerciale décrit les contrôles disponibles, et non le fait qu’un déploiement particulier les utilise correctement. Les releases GitHub et les rapports d’issues montrent une pression d’ingénierie active, et non des taux de défaillance à l’échelle de l’écosystème.

L’architecture constitue donc un cadre de décision, et non une certification. Sa valeur vient du fait qu’elle rend la limite de sécurité inspectable : le modèle propose ; la policy décide ; l’infrastructure applique ; les outils agissent ; des preuves indépendantes vérifient.

Vérification des affirmations

AffirmationStatutPreuveLimitation
------------
L’étude des permissions n’a trouvé aucune implémentation combinant les trois propriétés cibléesVérifiéeMichael et Roesner, arXiv:2607.13718Corpus de 21 éléments, échantillonné en boule de neige, dans un domaine en évolution rapide
Les serveurs MCP doivent vérifier l’audience du token et ne doivent pas transmettre les tokens du clientVérifiéeSpécification d’autorisation MCP, 2025-06-18S’applique à l’autorisation du transport HTTP protégé
MemGhost a rapporté des taux de réussite end-to-end tenus à l’écart de 87,5 % et 71,4 % dans deux configurations testéesNuancéeYao et al., arXiv:2607.05189Modèles, agents, workflow d’e-mail et configuration d’évaluation spécifiques
AgentTether a réparé 69,11 % des exécutions initialement échouées dans son évaluation principale de 261 tâchesNuancéearXiv:2607.06273Tau-bench uniquement ; jugements d’un modèle auxiliaire ; variation selon le domaine
DeepEval 4.1.3 a ajouté des métriques déterministes de boucle et de permission d’outilVérifiéeNotes de version DeepEval v4.1.3La disponibilité d’une métrique n’établit pas une couverture complète

Sources

Spécification officielle : Model Context Protocol Authorization.
Consignes de sécurité officielles : Model Context Protocol Security Best Practices.
Documentation officielle : Claude Code permissions.
Documentation officielle : Claude Code sandboxing.
Documentation officielle : OpenAI Codex agent approvals and security.
Rapport d’ingénierie officiel : Claude Code Sandboxing.
Release open source : DeepEval 4.1.3.
Consignes de sécurité : OWASP AI Agent Security Cheat Sheet.