Attribuez une identité stable à l’opération et contrôlez sa répétition côté serveur. Après une interruption, l’agent doit retrouver le résultat existant plutôt que créer une nouvelle demande à l’aveugle.
Ingénieur intégration et responsable CRM
La décision à éclairer : Garantir une reprise cohérente des créations malgré les répétitions et interruptions.
Un délai dépassé ne dit pas si la création a échoué
La requête peut avoir atteint le CRM, créé le dossier puis perdu sa réponse sur le retour. Si l’agent recommence avec une nouvelle opération, deux dossiers apparaissent. Réduire le délai ou demander au modèle d’être prudent ne résout pas ce défaut de protocole.
Distinguez l’intention métier et ses tentatives réseau. Une demande de devis est une opération ; les relances pour obtenir son résultat sont plusieurs tentatives de cette même opération. Une nouvelle demande volontaire du client doit, au contraire, rester possible avec une identité différente.
Exemple : la création réussit, mais l’agent ne reçoit pas la confirmation
Dans l’environnement de recette, la demande est créée puis la réponse est interrompue. L’agent relance avec la même identité d’opération. Le système doit retrouver le dossier, pas en ouvrir un second. Un autre essai réutilise la clé avec un montant modifié : le contrat doit détecter ce conflit. Enfin, deux relances arrivent simultanément pour vérifier la protection contre la concurrence. Ces cas sont documentés avec les résultats attendus avant l’implémentation. Ils permettent de discuter concrètement des garanties du CRM et des limites que l’intégration doit encore traiter.
L’agent ne doit pas décider seul si une opération a déjà eu lieu
AgentDojo montre l’intérêt d’évaluer l’accomplissement réel des tâches agentiques, pas seulement la qualité d’un dialogue. Les principes de Saltzer et Schroeder placent les contrôles dans le système qui protège les opérations. Ces travaux ne constituent pas une démonstration d’un protocole d’idempotence ; sa mise en œuvre reste une responsabilité applicative. (Edoardo Debenedetti et al., 2024)(Jerome H. Saltzer et al., 1975)
Enregistrez côté serveur une identité d’opération et son résultat. Après une interruption, permettez de consulter cet état avant de relancer. Distinguez une nouvelle intention du client d’une répétition de la même demande. Le journal doit permettre au support de savoir si le CRM a accepté l’opération, même lorsque l’agent n’a pas reçu la réponse réseau. Une formulation rassurante du modèle ne résout pas cette incertitude technique.
L’idempotence est un contrat de l’API, pas une qualité du prompt
La documentation Stripe fournit un exemple concret de clé d’idempotence permettant de retrouver le résultat d’une requête répétée selon ses règles. Ce comportement ne peut pas être supposé dans un CRM différent. La documentation de sécurité WebMCP rappelle également que les déclarations d’outil ne remplacent pas les contrôles du service. (Stripe, 2026)(Pagnucco et al., 2026)
Le principe à transposer est un contrat explicite : portée de la clé, durée de conservation, comparaison des paramètres et réponse en cas de concurrence. La solution doit être conçue au niveau où la création réelle est maîtrisée, pas uniquement dans la mémoire de la conversation.
Relier la clé au dossier et à ses paramètres
Le serveur reçoit un identifiant d’opération stable, vérifie les droits et enregistre atomiquement l’état de traitement. Une répétition avec les mêmes paramètres retrouve le même résultat ; une répétition avec des paramètres différents doit être traitée explicitement. Une contrainte d’unicité et une transaction peuvent participer à cette protection selon l’architecture.
Préparez les états en cours, terminé et échec récupérable, ainsi que la manière de consulter le résultat. Si le CRM externe ne fournit pas d’idempotence native, l’intégration doit gérer le rapprochement sans prétendre garantir ce qu’elle ne contrôle pas. Les opérations externes partielles nécessitent une stratégie de reprise documentée.
Diagramme de protocole proposé. Atomicité, conflits et durées de conservation restent à implémenter et tester.
Télécharger le schéma SVG ↓Tester la panne au moment le plus gênant
Coupez la réponse après la création, relancez simultanément et envoyez la même clé avec un contenu différent dans l’environnement de test. Vérifiez le nombre de dossiers et le résultat rendu à l’agent. Un test où tout répond normalement ne vérifie pas l’idempotence.
Les journaux doivent permettre de relier opération, tentatives et dossier sans exposer inutilement les données personnelles. L’utilisateur reçoit une confirmation de résultat, pas une succession de messages « probablement envoyé ».
La prévention des doublons s’inscrit dans un contrat plus large : les actions qu’un simulateur de devis expose aux agents avec WebMCP.
| Situation observée | Décision ou contrôle | Responsable |
|---|---|---|
| Réponse perdue | Consulter ou rejouer la même opération | Intégration |
| Même clé, autre contenu | Refuser ou traiter le conflit explicitement | Back |
| Requêtes simultanées | Vérifier unicité et atomicité | Back / qualité |
La décision à retenir
Attribuez une identité stable à l’opération et contrôlez sa répétition côté serveur. Après une interruption, l’agent doit retrouver le résultat existant plutôt que créer une nouvelle demande à l’aveugle.
- Votre prochaine étape
- Tester une réponse perdue après création et deux relances simultanées.
- Comment juger le résultat
- Une même opération ne crée pas plusieurs dossiers et son résultat reste récupérable.
Les limites de cette analyse
- Ce comportement Stripe n’est pas automatiquement celui d’un CRM.
Sources et résultats utilisés dans cet article
Les passages et le périmètre de lecture sont consultables ci-dessous. L’accès à un texte intégral ne signifie pas que chaque résultat a été audité.
Stripe. (2026). Idempotent requests. DOCUMENTATION · Stripe.
Publication originale ↗Documentation publique des clés et reprises de requête consultée.
Voir la fiche de preuve
- Constat
- Une clé d’idempotence permet de retrouver le résultat d’une opération lors de reprises, selon le contrat de l’API.
- Localisateur
- Documentation publique des clés et reprises de requête consultée.
- Court extrait
- « Idempotent requests »
- Méthode
- DOCUMENTATION · Stripe
- Population
- Population et périmètre précisés dans la lecture citée ; pas de mesure conduite par TalkWeb.
- Limites
- Ce comportement Stripe n’est pas automatiquement celui d’un CRM.
Pagnucco, J., & Klepper, A. (2026). WebMCP tool security. DOCUMENTATION · Chrome for Developers.
Publication originale ↗Guide de sécurité consulté : annotations, exposition entre origines et injections indirectes.
Voir la fiche de preuve
- Constat
- Les annotations de sensibilité et la restriction des origines font partie du guide de sécurité WebMCP.
- Localisateur
- Use annotation hints ; Expose your tools carefully.
- Court extrait
- « Expose your tools carefully »
- Méthode
- Guide de sécurité.
- Population
- Outils exposés par les pages web.
- Limites
- Une annotation ne remplace pas le contrôle des droits côté serveur.
Edoardo Debenedetti, Jie Zhang, Mislav Balunovic, Luca Beurer-Kellner, Marc Fischer, & Florian Tramèr. (2024). AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents. NeurIPS Datasets and Benchmarks.
Publication originale ↗Résumé primaire consulté ; texte intégral non audité.
Jerome H. Saltzer, & Michael D. Schroeder. (1975). The Protection of Information in Computer Systems. Proceedings of the IEEE.
Publication originale ↗Résumé et passages sur contrôle d’accès, authentification et principaux responsables consultés.
