CD Consulting R&D
KB-RISK · Entry 4 · Published 2026-09-15 · Version 1
Vingt et un risques de la collaboration avec des agents IA : un registre de terrain, et le cas du prompt pré-rempli
Après deux mois de sessions IA de développement sous une gouvernance écrite, une squad à un humain a consigné vingt et un risques distincts. La plupart ne concernent pas le code : ils concernent la mémoire des décisions. L'un d'eux, le prompt suggéré par l'outil lui-même, mérite un examen serré.
If you let an AI assistant act on your instructions, know that the next instruction in your input box may not be yours.
Contents
- 1. D'où cela vient
- 2. Le registre d'un coup d'œil
- 3. Ce que le registre enseigne
- 4. R-009 en détail : le prompt pré-rempli
- 5. Une piste de recherche : comment font les autres assistants
- 6. À retenir pour les praticiens
- 7. Sources
1. D'où cela vient
Read this note in English: English version.
Le cadre est volontairement petit : un décideur humain unique (appelé le propriétaire ci-dessous) et une poignée de sessions IA dans un assistant de développement de bureau (Claude Code, avec des modèles Claude de plusieurs tailles : Fable, Opus, Sonnet, Haiku). Les sessions écrivent du code, de la documentation, des analyses et des pièces de gouvernance. Ce qui rend le cadre inhabituel, c'est la discipline qui l'entoure :
- Une charte de douze règles lie chaque session : aucun geste engageant sans mandat explicite ; un fichier n'a qu'un rédacteur ; tout horodatage se lit à l'instrument, jamais ne s'estime ; une décision ne compte que si le propriétaire tape une formule de gate explicite (typiquement
go <verbe> <objet>) dans la fenêtre même de la session ; une demande ambiguë déclenche une question, une à la fois, jamais un choix silencieux. - Les registres écrits sont la mémoire. Un backlog, un journal des changements, un registre des risques et un registre des audits sont le seul état qui fait foi. La fenêtre d'une session est jetable ; les registres ne le sont pas. Tout commit qui consigne une décision porte un préfixe fixe, pour que la piste des décisions s'audite mécaniquement depuis l'historique de version.
- Une session superviseur (à longue durée de vie, elle-même bornée par des règles sur le compactage de contexte) rédige les mandats, audite les exécutions sur transcript et tient les registres. Elle n'a aucun pouvoir de décision : elle mesure, cadre, et écrit ce que le propriétaire a gaté.
Le registre des risques a été créé le 14 juillet 2026, après un incident de gouvernance, et comptait vingt et une entrées le 15 septembre 2026. Chaque entrée porte une gravité (Faible / Moyenne / Élevée), une probabilité avec les contrôles actifs en place, les occurrences documentées, les contrôles préventifs, les contrôles de détection et un statut. Un risque ne se clôt que sur gate du propriétaire.
2. Le registre d'un coup d'œil
Les vingt et une entrées se répartissent en sept familles. La formulation en une ligne est une paraphrase ; gravité et probabilité sont celles du registre au 15 septembre 2026.
| Famille | ID | Risque (une ligne) | Gravité / Prob. | Contrôle principal | Statut |
|---|---|---|---|---|---|
| A. Intégrité des décisions | R-001 | Consignation d'une décision jamais prononcée (l'agent lit une direction comme un gate et écrit « décidé ») | Élevée / Moyenne | Règle 9 : un gate est une formule explicite ; préfixe de commit audité depuis l'historique | Actif |
| R-009 | Pseudo-gate par prompt pré-rempli, suggéré par l'interface et envoyé par mégarde | Élevée / Faible-Moyenne | Écho-confirmation de tout gate anormal ; les formules portent leur borne | Actif, 5 occurrences | |
| R-010 | Blanchiment de gate par relais : une session traite une autorité rapportée comme un gate | Élevée / Faible | Un gate ne se prend jamais de seconde main ; un gate rapporté s'écho-confirme | Actif | |
| R-013 | Arbitrage autonome d'une demande ambiguë (l'agent choisit une voie coûteuse ou déviante au lieu de demander) | Élevée / Moyenne | Règle 12 : élicitation, une question à la fois ; bornes avant coût | Partiel | |
| B. Vérité et mémoire | R-003 | Hallucination temporelle : une date ou une heure estimée contamine les journaux | Élevée / Faible | Horodatage instrumental seul | Maîtrisé |
| R-004 | Fausse prémisse entraînant une initiative non demandée | Élevée / Faible-Moyenne | Mandat explicite ; diagnostic situé | Actif | |
| R-015 | Dérive cognitive d'une session à longue durée de vie au fil des compactages | Moyenne / Certaine sur la durée | Plafond de deux compactages par cycle ; doctrine registre-d'abord ; restitution su / déduit / perdu à chaque reprise | Ouvert, observé 51 jours | |
| R-020 | Un dérivé recopié diverge en silence de sa source | Moyenne / Élevée | Les dérivés ne sont jamais maîtres ; détecteurs de dérive scriptés | Ouvert | |
| C. Concurrence et cycle de vie | R-002 | Écritures concurrentes de plusieurs sessions sur un artefact partagé (perte, résurrection, attribution faussée) | Moyenne / Moyenne | Un fichier, un rédacteur ; commits par chemin ; contrôle de volume avant commit | Renforcé |
| R-011 | Fenêtre « zombie » survivant à son mandat, permissions d'écriture vivantes | Élevée / Moyenne | Gabarit de clôture : dessaisissement déclaré, autorisations éteintes | Actif | |
| D. Comportement des modèles et des plateformes | R-007 | Variance de capacités entre modèles : un garde-fou fondé sur le jugement d'un modèle ne tient pas pour un autre | Moyenne / Élevée | Règles bright-line applicables par tout modèle ; gates dans le processus, pas dans le jugement | Doctrine |
| R-012 | Substitution silencieuse du modèle en cours de session (repli de sûreté côté fournisseur), invisible de l'intérieur | Moyenne / Moyenne | Confirmation croisée à l'entrée ; le transcript est le seul instrument de calibre | Actif | |
| E. Automatisation et permissions | R-005 | Gel silencieux d'une routine planifiée en attente d'une permission | Moyenne / Moyenne | Allowlist durcie ; commandes canoniques ; règle de réarmement | Partiel |
| R-014 | Autorisation non persistante sur les routines (« toujours autoriser » meurt avec la session) | Moyenne / Moyenne | Étape de copie sortie de la couche applicative vers une tâche native de l'OS | Actif sur la copie, partiel sur la génération | |
| R-016 | Surface de permissions non minimale (politique mêlée à un journal auto-alimenté d'approbations) | Élevée / Moyenne | Retraits par lots testés sur runs réels ; inertie des réglages prouvée par empreinte | Ouvert | |
| F. Tiers et argent | R-006 | Dépendance à un tiers hors contrôle (registrar, autorité de certification, hébergeur) | Moyenne / Élevée | Architecture portable ; diagnostic multi-résolveurs | En cours |
| R-017 | Dépense engagée par une requête entrante non bornée | Élevée / Moyenne | Plafond de dépense en console du fournisseur ; validation d'entrée ; pot de miel | Ouvert, mitigé | |
| R-018 | Coupure de service par épuisement d'un quota de plateforme | Élevée / Faible | Offres payantes souscrites ; pas de recharge automatique (mode de défaillance choisi) | Ouvert | |
| R-021 | Coût de sortie d'une dépendance de plateforme, installé par l'architecture | Moyenne / Élevée | Adaptateurs d'une fonction ; registre des coûts de sortie | Ouvert | |
| G. Instruments qui cessent d'instrumenter | R-019 | Un contrôle maintenu au rouge après changement de son attendu | Moyenne / Élevée | Amender le contrôle dans le même geste que le changement | Clos |
| R-008 | Artefacts de test dans des files asynchrones invisibles, resurgissant des jours plus tard | Moyenne / Moyenne | Horodatage de génération dans tout message produit ; marqueur [TEST] | Actif |
3. Ce que le registre enseigne
Cinq leçons transversales ressortent de deux mois d'entrées.
- Ce qui est d'abord en risque, c'est le registre, pas les fichiers. Quatre des six risques « Élevée » (R-001, R-009, R-010, R-013) décrivent la même défaillance sous des angles différents : une décision apparaît au registre que l'humain n'a jamais prise, ou qu'une mauvaise main a prise. Le code se rembobine ; une fausse mémoire de gouvernance se propage.
- Les lignes claires battent le jugement. Un garde-fou qui repose sur la lecture fine du contexte par un modèle tient pour un modèle et échoue pour un autre (R-007). Les règles qui ont survécu sont celles qu'un script pourrait vérifier : l'horodatage est-il instrumental, le commit ne touche-t-il que les chemins déclarés, la formule de gate a-t-elle été tapée par le propriétaire dans cette fenêtre, la question figure-t-elle au transcript.
- Ne rien déclarer, tout mesurer. Une session ne voit pas sa propre substitution de modèle (R-012), ne voit pas ce qu'elle a oublié après un compactage (R-015), et estimera une heure avec assurance (R-003). Le transcript, l'historique de version et l'horloge sont les instruments ; l'auto-déclaration est un point de départ pour la vérification, jamais une preuve.
- L'automatisation multiplie la surface de permissions. Les routines planifiées qui gèlent sur un dialogue de permission (R-005, R-014) et les allowlists qui grossissent comme des journaux d'approbations passées (R-016) montrent la même chose : chaque droit se justifie isolément, la somme crée l'exposition.
- L'argent est le seul dommage qu'un correctif ne répare pas. R-017, R-018 et R-021 ont tous été levés avant toute perte, sur lecture de documentation, et chacun a reçu une borne dure choisie à l'avance (un plafond de dépense, une recharge refusée, un adaptateur) plutôt qu'une vigilance.
4. R-009 en détail : le prompt pré-rempli
4.1 Le mécanisme, tel que documenté
L'assistant de développement utilisé par la squad affiche, après chacune de ses réponses, une suggestion grisée de ce que l'utilisateur pourrait taper ensuite. La documentation de l'éditeur (référence du mode interactif, lue le 15 septembre 2026) le dit sans détour :
> « After Claude responds, Claude Code can suggest your next prompt based on your conversation history, such as a follow-up step from a multi-part request or a natural continuation of your workflow. »
> « Press Tab or Right arrow to place the suggestion in the prompt input, then Enter to submit. Start typing to dismiss it. »
> « Claude Code generates each of these next-prompt suggestions with a background request that reuses the conversation's prompt cache, so the additional cost is minimal. »
Trois propriétés en découlent, dont deux mesurées par la squad :
- Le texte est produit par un appel de modèle séparé, en arrière-plan, nourri de la conversation jusque-là. Il n'est pas écrit par la session à laquelle l'utilisateur parle, et cette session n'en sait rien.
- Une suggestion non envoyée ne laisse aucune trace au transcript. La squad l'a vérifié à la cinquième occurrence : la formule suggérée n'apparaissait nulle part dans le journal de la session avant que le propriétaire ne la cite dans un message.
- Une suggestion envoyée est indiscernable d'un texte tapé. Une fois Entrée pressée, la session la reçoit comme les mots de l'utilisateur.
La fonctionnalité est active dans une session standard. La documentation donne trois façons de la couper : un interrupteur dans le panneau /config, le réglage promptSuggestionEnabled: false dans un fichier de réglages, ou la variable d'environnement CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false, qui prime et peut être imposée à toute une organisation par les réglages gérés.
4.2 Pourquoi c'est un risque de gouvernance et non un désagrément d'ergonomie
Dans cette squad, une décision est une formule courte tapée par le propriétaire : go push, go T2, go commit journal. Le générateur de suggestions a lu des centaines de ces formules dans l'historique. Il produit donc du texte exactement de cette forme. Deux touches (Tab, Entrée) transforment une supposition de machine en décision humaine que la session exécutera et, pire, consignera comme gate au journal des changements.
Le registre est explicite : l'exécution est le moindre danger, les sessions travaillant sous des mandats écrits qui bornent ce qu'elles peuvent toucher. Le plus grand danger est le gate fictif : une entrée au registre des décisions attribuant au propriétaire une instruction qu'il n'a jamais conçue. C'est le même dommage que R-001 (sur-inférence du modèle), la cause étant déplacée du modèle vers l'interface.
4.3 Les cinq occurrences
| # | Date (2026) | Texte suggéré (verbatim) | Ce qui le rendait dangereux | Issue |
|---|---|---|---|---|
| 1 | 18 juillet | « go, lance aussi Sonnet 054 et 055 » | Un ordre de lancement en forme de gate, jamais discuté | Repéré par le propriétaire, non envoyé |
| 2 | 19 juillet | « Opus soumet son plan d'ensemble, go pour O4 » | Un gate anticipé et visant la mauvaise fenêtre | Intercepté ; R-009 créé le jour même |
| 3 | 26 juillet | « supprime la branche analyse-blade-runner » (après une fusion) | Une action destructrice pré-rédigée par l'outil | Non envoyé ; le propriétaire a d'abord demandé l'avis du superviseur |
| 4 | 27 juillet, 12h15 | « gate AH : compact memory now » (un test non annoncé, tapé par le propriétaire) | Gate anormal : langue étrangère, objet jamais discuté, triplement ambigu | Le superviseur a exécuté sans écho-confirmation et a été interrompu au premier appel d'outil : le contrôle avait failli côté agent |
| 5 | 15 septembre, avant 06h56 | « go vidange _scratch » | Le générateur a condensé un item de todo list qui disait « vidange du dossier de travail, hors pièces sensibles » et a perdu l'exclusion | Repéré par le propriétaire, non envoyé ; quatrième interception réussie |
4.4 Ce que la cinquième occurrence a ajouté
- Élargissement de portée. Le générateur ne recopie pas une instruction, il la résume. Ce faisant il a gardé le verbe et l'objet et perdu la restriction. La formule suggérée couvrait six fichiers de secrets que la todo list excluait explicitement et que seul le propriétaire peut manipuler.
- Imitation de format. Dans une session d'assistance sous mandat ouvert, le propriétaire dépose ses tâches en formules courtes « go X ». Une suggestion imite ce format à l'identique ; « anormal » est plus dur à détecter quand tout gate réel fait aussi trois mots.
- L'agent nourrit le générateur. Les remises des sessions se terminent par des formules de gate prêtes à copier (« prochain gate :
go commit journal»). Ces formules sont dans l'historique que l'appel d'arrière-plan lit. La commodité offerte à l'humain est aussi la matière première de la suggestion.
4.5 Contrôles en vigueur
- Écho-confirmation. Tout gate anormal dans son contexte (anticipé, hors de sa fenêtre, incohérent avec l'état connu, ne reprenant pas mot pour mot une formule que la session vient de proposer) est reformulé et confirmé avec le propriétaire avant tout geste et avant toute entrée au registre. Après l'occurrence 4, la règle a été étendue aux opérations internes de l'agent (sa propre mémoire, son propre contexte).
- La borne dans la formule. Depuis le 15 septembre, toute formule de gate qu'un agent propose porte sa restriction dans le texte même (
go vidange _scratch hors sensibles), pour qu'un résumeur ne puisse la perdre sans changer les mots. - Aucune formule pour une pièce sensible. Les agents ne proposent aucun gate pour une action sur des secrets ou une suppression irréversible ; ces actions se décrivent en prose et se laissent à la formulation du propriétaire.
- Audit mécanique de la piste des décisions. Tout commit qui consigne une décision porte un préfixe réservé ; le superviseur vérifie, depuis l'historique de version contre le transcript, que l'événement gaté a bien eu lieu dans la fenêtre du propriétaire.
- Tests non annoncés du propriétaire. L'occurrence 4 en est un ; c'est la seule occurrence où le contrôle a failli, et il a failli côté agent, là où les tests visent.
- L'interrupteur. Couper la fonctionnalité au niveau des réglages est possible et relève du seul propriétaire : cela supprime le risque au prix d'une commodité réelle, et c'est imposable à l'échelle d'une organisation.
4.6 Risque résiduel
Avec les contrôles ci-dessus, le registre cote la probabilité Faible et la gravité Élevée. Quatre interceptions sur cinq ont été faites par l'humain, pas par l'agent : le contrôle qui marche, c'est l'habitude du propriétaire de lire la zone de saisie avant Entrée. C'est une ligne mince, et c'est la raison pour laquelle l'interrupteur figure parmi les contrôles au lieu d'être écarté.
5. Une piste de recherche : comment font les autres assistants
Tous les assistants grand public proposent aujourd'hui des relances. Ce que la squad voulait savoir, et n'a pu établir qu'en partie le 15 septembre 2026, c'est si les trois mêmes propriétés se retrouvent ailleurs : généré par un appel séparé depuis l'historique, invisible dans les journaux tant que non envoyé, indiscernable une fois envoyé. Le tableau consigne ce que dit la documentation publique, et ce qu'elle ne dit pas.
| Produit | Ce qui est documenté | Où | Contrôle utilisateur ou administrateur | Questions ouvertes |
|---|---|---|---|---|
| Claude Code (Anthropic) | Suggestion du prompt suivant générée après chaque réponse par une requête d'arrière-plan réutilisant le cache de prompt, depuis l'historique ; Tab ou flèche droite pour accepter, Entrée pour envoyer ; sautée en mode plan, après une erreur, près de la limite d'usage, dans les sessions des équipiers | Référence officielle du mode interactif et référence des réglages | Interrupteur /config ; promptSuggestionEnabled: false ; variable d'environnement prioritaire ; réglages gérés pour une organisation | Une suggestion acceptée est-elle marquée en télémétrie ; le générateur voit-il les résultats d'outils ou seulement les messages |
| ChatGPT (OpenAI) | Bulles de relance cliquables après les réponses, sur web et mobile, décrites par les utilisateurs depuis mai 2025 ; un interrupteur web rapporté par des utilisateurs et contesté par d'autres (« a placebo button ») ; un réglage « Follow-up behaviour » rapporté dans l'application de bureau | Fils du forum communautaire ; aucun article du centre d'aide trouvé décrivant la génération | Rapporté, non vérifié | Description officielle de la génération ; fiabilité de l'interrupteur ; les relances peuvent-elles porter des actions en mode agentique |
| Microsoft 365 Copilot et sa famille | Prompts de démarrage sur la page d'accueil d'un agent, jusqu'à dix, configurables par l'administrateur et auto-générés depuis la description de l'agent (Copilot Studio) ; dans Dynamics 365 Finance and Operations, le volet Copilot « generates and displays up to three questions … based on the existing conversation so far » et « avoids repeating questions you have already asked » (FAQ Responsible AI, atteinte par recherche, à relire) ; dans Dynamics 365 Contact Center, prompts rafraîchis tous les trois messages | Microsoft Learn (Copilot Studio, Dynamics 365) ; la page de support « About Copilot Chat responses » ne dit rien des relances | Configurable par l'administrateur pour les prompts de démarrage ; rien de trouvé pour les relances après réponse dans Copilot Chat | Microsoft 365 Copilot Chat génère-t-il lui-même des relances après réponse, à partir de quoi, et un tenant peut-il les couper |
| Gemini (Google) | Des utilisateurs rapportent des suggestions offertes « at the end of every prompt » qu'ils ne peuvent pas couper (fil de la communauté Gemini Apps, 2026) ; les administrateurs Workspace peuvent activer ou couper « Ask Gemini » par application | Fil communautaire ; aide administrateur Workspace | Rien de trouvé pour les suggestions elles-mêmes | Existe-t-il un réglage dédié ; comment les suggestions sont générées ; sont-elles journalisées |
Questions à instruire, dans l'ordre :
- Source de génération. La suggestion vient-elle du même appel de modèle que la réponse, d'un appel séparé, ou d'une heuristique locale légère ? La réponse détermine ce que la suggestion peut « savoir » et si elle peut faire fuir du contexte.
- Trace. Une suggestion acceptée laisse-t-elle une marque (un drapeau dans l'export, un événement de télémétrie) qui la distingue d'un texte tapé ? Pour toute organisation qui audite ses décisions depuis les journaux de conversation, c'est la propriété décisive.
- Contrôle administratif. Un tenant ou une organisation peut-il couper la fonctionnalité centralement ? Claude Code le documente ; les autres non, autant que la squad ait pu le trouver.
- Des actions, pas des questions. Dans les produits agentiques (assistants de code, agents Copilot, agents de navigation), une relance peut nommer une action plutôt qu'une question. L'occurrence 3 ci-dessus était une suppression. Quels produits laissent le générateur proposer des actions irréversibles, et avec quels garde-fous ?
- Perte par résumé. L'occurrence 5 montre un générateur qui perd une restriction en résumant. Protocole de test simple : écrire un item de todo list avec une exclusion explicite, laisser l'assistant en discuter, lire la suggestion.
Méthode : documentation officielle d'abord (notes de transparence, références administrateur), puis une conversation de test reproductible par produit, puis lecture du journal exporté. Les témoignages communautaires servent de pistes, jamais de faits.
6. À retenir pour les praticiens
- Décidez par écrit ce qui vaut décision. Si c'est une formule, sachez que l'outil l'a lue des dizaines de fois.
- Traitez la zone de saisie comme une partie de la surface d'attaque : ce qui s'y trouve avant Entrée n'est pas forcément de vous.
- Exigez l'écho-confirmation de toute instruction qui ne correspond pas à ce que vous venez de discuter ; cela coûte un échange et arrête le gate fictif avant le registre.
- Mettez la restriction dans l'instruction, pas à côté. Les résumés gardent les verbes et les objets et perdent les exceptions.
- Préférez les règles qu'un script peut vérifier aux règles qu'un modèle doit interpréter ; elles survivent au changement de modèle, d'outil et d'humeur.
- Sachez où est l'interrupteur. Une commodité ne vaut d'être gardée que là où le registre peut prouver après coup qui a décidé.
7. Sources
Toutes lues le 15 septembre 2026. Les fils communautaires sont cités comme pistes, pas comme faits.
- S1 Anthropic, Claude Code documentation : Interactive mode, sections « Prompt suggestions » et « Turn prompt suggestions off » : https://code.claude.com/docs/en/interactive-mode (lu le 15 septembre 2026).
- S2 Anthropic, Claude Code documentation : Settings : https://code.claude.com/docs/en/settings (lu le 15 septembre 2026).
- S3 OpenAI Developer Community, « Disable or Customize the 'Follow Up' Suggestions » (mai à septembre 2025) : https://community.openai.com/t/disable-or-customize-the-follow-up-suggestions/1254246 ; « How to disable prompt suggestions » : https://community.openai.com/t/how-to-disable-prompt-suggestions/316524 ; « Feature Request: Setting to Disable Follow-up Suggestions » : https://community.openai.com/t/feature-request-setting-to-disable-follow-up-suggestions/1396688.
- S4 Microsoft Learn, Configure suggested prompts for Teams and Microsoft 365 (Copilot Studio) : https://learn.microsoft.com/en-us/microsoft-copilot-studio/configure-starter-prompts.
- S5 Microsoft Learn, Responsible AI FAQ for Follow-up questions in the Copilot sidecar (preview), Dynamics 365 Finance and Operations : https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/fin-ops/copilot/faq-copilot-suggested-questions (atteinte par recherche le 15 septembre 2026 ; l'accès direct a redirigé vers la vue d'ensemble Responsible AI, à relire).
- S6 Microsoft Learn, Use Copilot-generated prompts in your CRM solutions (Dynamics 365 Contact Center) : https://learn.microsoft.com/en-us/dynamics365/release-plan/2024wave2/service/dynamics365-contact-center/use-copilot-generated-prompts-crm-solutions.
- S7 Microsoft Support, About Copilot Chat responses : https://support.microsoft.com/en-us/microsoft-365-copilot/about-copilot-chat-responses (aucune mention des relances le 15 septembre 2026).
- S8 Google, communauté Gemini Apps, « I can't stop Gemini from offering suggestions which I don't want at the end of every prompt » : https://support.google.com/gemini/thread/411870292 ; aide administrateur Google Workspace, Turn Ask Gemini on or off for Meet : https://knowledge.workspace.google.com/admin/meet/turn-ask-gemini-on-or-off-for-meet.
- S9 Le registre des risques, le journal des changements et les transcripts de la squad (internes, non publiés).