Aller au contenu principal

Portes qualité

L'écran Portes qualité vous permet de vérifier qu'une cible (un agent, un modèle, un prompt, etc.) passe toutes les suites d'évaluation bloquantes avant de la promouvoir vers un autre environnement, et de lire les preuves de ce contrôle. Chemin dans le portail : /quality/gates. Les responsables de mise en production, les développeurs et les responsables de la gouvernance de l'IA l'utilisent avant une promotion ; les chaînes d'intégration continue appellent la même route. L'écran est dessiné par portal/src/screens/quality.tsx.

Ce que montre l'écran​

La page contient un seul testeur, Vérifier une porte (« Renvoie succès ou blocage avec les preuves d'évaluation. ») :

  • Cible (obligatoire, type:ref@version, exemple agent:invoice-assistant@1.2.0 ; sans type, la cible est un agent).
  • Suites (facultatif, identifiants de suites séparés par des virgules ; vide, ce sont toutes les suites bloquantes de la cible).
  • Lancer les évaluations manquantes (décoché par défaut) : exécute une suite qui n'a aucune exécution terminée pour cette version.
  • Le bouton Exécuter et une zone Résultat. En cas de succès, la zone affiche le badge Porte franchie et le JSON du contrôle (passed, target, checks). En cas de blocage, elle affiche l'erreur gate_failed avec les suites en échec dans ses détails.

Actions​

Bouton ou actionCe qu'il faitAppel d'APIRôles
ExécuterPour chaque suite bloquante de la cible (ou de Suites), prend la dernière exécution terminée pour cette version, l'exécute quand Lancer les évaluations manquantes est coché et qu'il n'y en a pas, puis ne passe que si toutes les suites ont réussi. Le contrôle est écrit dans le journal d'audit.POST /v1/evaluations/gates/checkTout membre du tenant

Le formulaire envoie ce corps (la cible est analysée par portal/src/lib/mappers.ts) :

{"target": {"type": "agent", "ref": "invoice-assistant", "version": "1.2.0"}, "suite_ids": ["<suite-id>"], "run_missing": false}

<suite-id> : evaluation_id d'une suite de l'écran Suites d'évaluation. Chaque entrée de checks donne suite_id, suite, run_id, status (passed, failed, error ou missing) et results.

astuce

Les mêmes suites s'exécutent seules à chaque promotion : quand un approbateur approuve la promotion d'un agent ou d'un modèle, le Control Plane exécute les suites de promotion de la cible et n'applique le nouveau statut que si les suites bloquantes réussissent.

Rôles​

Le portail ne fixe aucun rôle sur ce testeur et la route POST /v1/evaluations/gates/check demande seulement un tenant (services/control-plane/src/eai/domains/evaluation/__init__.py). Avec Lancer les évaluations manquantes, les suites manquantes s'exécutent au nom de l'appelant, qui doit pouvoir atteindre la cible.

Tâches courantes​

Vérifier une version avant sa promotion​

  1. Saisir la cible. La porte regarde les exécutions de cette version exacte. Remplissez Cible avec agent:<name>@<version>. Résultat attendu : le formulaire est prêt. En cas d'échec : invalid_request (400) avec target.type signifie que le type n'est pas pris en charge.
  2. Lancer le contrôle. Seules les exécutions terminées comptent. Cliquez sur Exécuter. Résultat attendu : Porte franchie et une liste checks où chaque suite est passed. En cas d'échec : l'erreur gate_failed (409) liste les failures ; une suite en missing n'a pas d'exécution pour cette version.
  3. Combler les manques. Une exécution manquante bloque la porte. Cochez Lancer les évaluations manquantes et cliquez de nouveau sur Exécuter, ou lancez les exécutions depuis Exécutions d'évaluation. Résultat attendu : les suites manquantes ont maintenant un statut. En cas d'échec : une suite en error n'a pas pu atteindre la cible ; vérifiez la cible ou fournissez des sorties dans une exécution manuelle.

Vérifier seulement certaines suites​

  1. Lister les identifiants de suites. Une mise en production peut ne demander qu'une partie des suites. Saisissez les identifiants dans Suites, séparés par des virgules, puis cliquez sur Exécuter. Résultat attendu : checks ne contient que ces suites. En cas d'échec : une suite non bloquante ou non rattachée à la cible est ignorée ; vérifiez sa Barrière bloquante et sa Cible.

Dépannage​

SymptômeCauseCorrection
gate_failed (409) : « Échec de la porte de qualité : la promotion est bloquée. »Au moins une suite bloquante est failed, error ou missing.Lisez failures dans les détails, corrigez la cible et relancez les suites.
invalid_request (400) avec target.typeLe type de cible n'est pas l'un de model, agent, prompt, rag_pipeline, skill, tool.Corrigez le type dans Cible.
Porte franchie avec un checks videAucune suite bloquante ne correspond à la cible.Créez une suite bloquante pour cette cible sur l'écran Suites d'évaluation.
Une suite reste missingAucune exécution terminée n'existe pour cette version.Cochez Lancer les évaluations manquantes, ou exécutez la suite à la main.

Pages liées​