Aller au contenu

TechniqueExpert

Partie III. Grille de mesure par composant

Pour : ingénieurs et SRE · architectesPrérequis : Avoir lu la partie I de la méthode.

Pour chaque composant : un schéma, puis la grille systématique quoi / pourquoi / impact si non surveillé. Le marqueur (S) signale un échec silencieux.

flowchart LR
  REQ["Requête"] --> QUEUE["File"] --> PREFILL["Prefill"] --> DECODE["Decode (streaming)"] --> RESP["Réponse"]
  GPU["GPU / KV cache / batch"] -.-> PREFILL
  GPU -.-> DECODE
QuoiPourquoi (décision)Impact si non surveillé
TTFT, latence E2E (p95, p99)Tenir le budget de latence perçueDégradation non détectée jusqu’aux plaintes
Throughput tokens/s, requêtes/sDimensionner, autoscalerSaturation subie, incident de capacité
Saturation GPU, KV cache, batch (DCGM, vLLM)Anticiper la dégradation(S) Éviction et file montent en silence, puis pic inexpliqué
Taux d’erreur par error.typeIsoler timeout, rate-limit, content_filterDiagnostic à l’aveugle, résolution rallongée
Distribution des finish_reasonsDétecter réponses tronquées ou bloquées(S) Réponses coupées servies sans alerte
Taux de refusDétecter un changement de comportement(S) Le produit refuse de plus en plus, sans signal
Hallucination, fidélité (éval échantillonnée)Garantir la justesse(S) Le système ment avec assurance, risque métier et juridique
Dérive des sorties (drift)Détecter l’évolution lente(S) Régression invisible sur des semaines
Tokens in/out, coût par requêteGouverner le budget(S) Facture découverte en fin de mois
Taux de hit du cacheMesurer un levier de coût directSurcoût permanent non identifié
Gonflement de prompt (tokens in dans le temps)Détecter la croissance du contexte(S) Coût et latence dérivent lentement
flowchart LR
  ING["Ingestion"] --> CHUNK["Chunking"] --> EMB["Embedding"] --> IDX["Index vectoriel"]
  Q["Question"] --> RET["Recherche"] --> RANK["Reranking"] --> CTX["Contexte"] --> GEN["Génération"] --> ANS["Réponse"]
  IDX --> RET
QuoiPourquoi (décision)Impact si non surveillé
Context precisionLes chunks remontés sont-ils pertinents ?(S) Contexte hors sujet, hallucination en aval
Context recallA-t-on remonté tout le nécessaire ?(S) Réponses incomplètes ou inventées
Hit rate, MRRLe bon document remonte-t-il et bien classé ?On corrige à tort la génération
Fidélité / groundednessRéponse appuyée sur le contexte(S) Hallucinations servies comme des faits
Pertinence de la réponseRépond-elle à la question ?Réponses à côté non détectées
Exactitude des citationsSources citées correctes(S) Fausses références, risque de conformité
Couverture (questions sans contexte)Mesurer les lacunes de la base(S) Angle mort documentaire qui s’élargit
Fraîcheur de la baseConnaissance non périmée(S) Réponses obsolètes servies avec assurance
Latence de recherche, santé de l’indexTenir le budget de la chaîneDégradation mal attribuée
Coût embeddings et base vectorielleGouverner le coûtSurcoût d’infrastructure non maîtrisé

Frameworks d’éval : RAGAS et DeepEval pour le gating, Arize Phoenix pour la dérive et la visualisation des clusters d’embeddings. Le problème de l’évaluateur (juge non déterministe, dérive, calibration) est traité en section 15.

flowchart TB
  START["invoke_agent"] --> PLAN["Planification"] --> SEL["Sélection d'outil"] --> TOOL["execute_tool"] --> OBS["Observation"]
  OBS --> DEC{"Tâche terminée ?"}
  DEC -->|"non"| SEL
  DEC -->|"oui"| END["Réponse finale"]
  DEC -.->|"risque : boucle"| LOOP["Détection de boucle"]
QuoiPourquoi (décision)Impact si non surveillé
Taux de succès de tâcheMesurer le travail réel de bout en bout(S) Échec partiel sans erreur, valeur produit érodée
Nombre d’étapes par tâcheDétecter les trajectoires anormales(S) Dérive de coût et latence par allongement
Détection de boucleRepérer la répétition(S) Boucle qui brûle le budget, vue sur facture
Taux d’échec d’outilIdentifier les outils défaillantsRetries coûteux, cause non isolée
Latence par étape et par tâcheDécomposer le bout en boutDiagnostic impossible sur trajectoire longue
Coût par tâche (tokens cumulés)Connaître le coût réel d’une tâche(S) Tarification erronée
Exactitude de sélection d’outilLe bon outil au bon moment(S) Résultats dégradés sans signal
Taux de passage à l’humainMesurer l’autonomie réelleCharge opérateur sous-estimée, ROI faussé
Garde-fous, tentatives d’injectionSécurité agentiqueInjection de commande non détectée

Outils : Laminar et Langfuse (transcription, debug), Phoenix et Confident AI (éval multi-étapes), LangSmith et LangGraph Studio si pile LangGraph.

flowchart TB
  P["Couche protocole : JSON-RPC sur transport, sessions, schémas"] --> T["Couche exécution : appels d'outils, latence, erreurs"] --> A["Couche tâche : impact sur le succès de l'agent"]
  A -.->|"cascade"| P
QuoiPourquoi (décision)Impact si non surveillé
Latence et erreurs par outil et serveurSanté d’exécution, isolementDéfaillance mal attribuée à l’agent
Santé de session, desync client-serveurStabilité du transport(S) Desync qui dégrade l’agent sans erreur
Échecs d’authentification par identitéDétecter abus et mauvaise configAccès illégitime, exposition de secrets
Pics d’énumération / découverteDétecter la reconnaissance hostile(S) Reconnaissance invisible avant exploitation
Mutations de serveurDétecter rug pull et schema poisoning(S) Outil de confiance devenu malveillant
Épinglage d’outil par hachageIntégrité des outils dans le temps(S) Modification non détectée
Journal des invocationsPiste d’audit réglementaireAucune traçabilité, non-conformité
Disponibilité par serveur, health checksGarantir le repliAgent qui boucle sur serveur indisponible

Sécurité : le référentiel OWASP MCP Top 10 (édition 2025, en version bêta) définit dix catégories : MCP01 mauvaise gestion des jetons et exposition de secrets, MCP02 escalade de privilèges par élargissement de périmètre, MCP03 empoisonnement d’outil (tool poisoning), MCP04 attaques de la chaîne d’approvisionnement logicielle, MCP05 injection et exécution de commandes, MCP06 injection de prompt par contenu contextuel, MCP07 authentification et autorisation insuffisantes, MCP08 manque d’audit et de télémétrie, MCP09 serveurs MCP fantômes, MCP10 injection de contexte et surexposition. Rug pull, tool shadowing et schema poisoning sont des techniques d’attaque décrites dans la littérature, qui relèvent surtout de MCP03 ; ce ne sont pas des catégories du référentiel. La grille ci-dessus répond directement à MCP08.

L’auto-approbation des appels d’outils retire la dernière barrière qui ne dépend pas du modèle. Le banc d’essai MCPTox (2025) a soumis 20 agents LLM à 1 348 cas d’empoisonnement d’outils construits sur 45 serveurs MCP réels : l’attaque réussit en moyenne dans 36,5 % des cas, jusqu’à 72,8 % pour le modèle le plus exposé et aucun modèle ne refuse plus de 3 % des attaques. Ce banc mesure la sensibilité des modèles, pas l’effet d’une validation humaine ; je recommande néanmoins une validation humaine dans la boucle sur les outils sensibles, parce qu’elle ne repose pas sur le jugement du modèle attaqué. Outils : mcp-scan (Invariant Labs / Snyk) et Cisco mcp-scanner (YARA), complémentaires, plus une passerelle MCP avec audit et export OTel.


Révisé le 2 octobre 2026 : catégories officielles de l’OWASP MCP Top 10 (édition 2025, en version bêta) et chiffres du banc d’essai MCPTox à la place d’une affirmation non sourcée sur l’auto-approbation.