Exécutions
L'écran Exécutions vous permet de lister les exécutions d'agents du tenant, d'en ouvrir une pour suivre sa chronologie, ses budgets et ses points de reprise, puis de la reprendre, l'annuler ou la rejouer. Chemin dans le portail : /agents/runs (page de détail : /agents/runs/<run-id>). Les développeurs, les opérateurs du runtime, les auditeurs et les responsables sécurité l'utilisent pour suivre les exécutions et enquêter. L'écran est dessiné par portal/src/screens/agents.tsx.
Ce que montre l'écran
La page de liste :
- Tableau Exécutions, lu par
GET /v1/runs(50 lignes par appel, les plus récentes d'abord, pagination par curseur). Colonnes : Identifiant d'exécution, Agent, Version de l'agent, État, Déclencheur, Profondeur (0 pour une exécution racine, plus pour un sous-agent), Créé par, Créé. - Filtres État (En file, En cours, En attente d'approbation, Réussi, Échoué, Annulé, ou tous) et Agent (identifiant ou nom de l'agent), puis Filtrer.
- Liste vide : Aucune exécution, avec l'aide Démarrez une exécution depuis la page d'un agent. Les exécutions partent du Registre, d'une planification, d'un déclencheur ou d'un canal ; cet écran n'a pas de bouton de création.
- Un clic sur une ligne, ou le menu de ligne Voir le détail, ouvre la page de l'exécution.
La page de l'exécution (GET /v1/runs/{run_id}) :
- Retour, le titre Exécution, l'identifiant, l'objectif (
task.objective) et le badge d'état. - Les boutons Reprendre, Annuler et Rejouer.
- Cartes de budget : une carte par budget consommé avec sa Limite quand elle existe, ou Aucun budget enregistré pour cette exécution.
- Chronologie d'exécution : les étapes de l'exécution (
GET /v1/runs/{run_id}/steps) avec leur nom, leur type, leur état, leurs dates de début et de fin, la tentative, les jetons et le coût. Quand l'exécution a des sous-agents (GET /v1/runs/{run_id}/subagents), la chronologie imbrique les exécutions des sous-agents sous les étapes. Aucune étape quand il n'y en a pas. - Points de reprise : les points de reprise de l'exécution (
GET /v1/runs/{run_id}/checkpoints), ou Aucun point de reprise. - Rejouer : le rejeu de l'exécution, affiché après un clic sur Rejouer.
- Execution Contract : le document complet de l'exécution en JSON.
Tant que l'exécution est en file ou en cours, la page la relit toutes les 3 secondes ; tant qu'elle est en file, en cours ou en attente d'approbation, elle suit aussi les événements en direct (GET /v1/runs/{run_id}/events avec follow=true) et rafraîchit l'exécution, ses étapes et ses points de reprise à chaque événement.
Actions
| Bouton ou action | Ce qu'il fait | Appel d'API | Rôles |
|---|---|---|---|
| Actualiser (icône) | Recharge la liste. | GET /v1/runs | Tout membre du tenant |
| Filtrer | Applique les filtres État et Agent. | GET /v1/runs avec state et agent | Tout membre du tenant |
| Clic sur une ligne ou menu Voir le détail | Ouvre la page de l'exécution. | GET /v1/runs/{run_id} | Tout membre du tenant |
| Menu Preuve de configuration | Affiche dans un panneau latéral la configuration réellement utilisée : version de l'agent et empreinte du manifeste, modèles, prompts, outils, skills et plugins enregistrés, et décisions de politique de l'exécution. | GET /v1/evidence/runs/{run_id}/configuration | auditor, security_officer, tenant_admin, agent_operator, developer |
| Retour (page de l'exécution) | Revient à la liste. | Aucun | Tout le monde |
| Reprendre | Reprend une exécution suspendue, échouée, expirée ou en attente d'entrée, depuis son dernier point de reprise (ou en relançant l'étape quand elle attend une entrée). | POST /v1/runs/{run_id}/resume | tenant_admin, developer, agent |
| Annuler | Demande Annuler cette exécution ?, puis annule l'exécution. | POST /v1/runs/{run_id}/cancel | tenant_admin, developer, agent, security_officer |
| Rejouer | Lit la chronologie ordonnée de l'exécution (étapes, points de reprise, événements d'exécution et événements d'audit) et l'affiche dans la section Rejouer. | GET /v1/runs/{run_id}/replay | tenant_admin, developer, agent, auditor, security_officer |
| Réessayer (état d'erreur) | Relance la lecture qui a échoué. | Même appel | Mêmes rôles |
Rôles
Le portail ne masque aucun bouton sur cet écran ; le Control Plane répond forbidden (403) avec required_roles quand un rôle manque. Dans services/control-plane/src/eai/domains/agents/routes.py, lire les exécutions, les étapes, les points de reprise, les sous-agents et les événements demande seulement un tenant ; la reprise utilise OPS_ROLES (tenant_admin, developer, agent), l'annulation ajoute security_officer, le rejeu ajoute auditor et security_officer. La preuve de configuration utilise les lecteurs de services/control-plane/src/eai/domains/evidence/common.py (auditor, security_officer, tenant_admin) plus tenant_admin, agent_operator et developer. platform_admin passe tous les contrôles de rôle.
Tâches courantes
Trouver pourquoi une exécution a échoué
- Filtrer les exécutions échouées. La liste montre toutes les exécutions du tenant, les plus récentes d'abord. Choisissez Échoué dans État, saisissez le nom de l'agent dans Agent, puis cliquez sur Filtrer. Résultat attendu : seules les exécutions échouées de cet agent restent. En cas d'échec :
invalid_request(400) signifie que la valeur d'état n'est pas un état d'exécution ; choisissez-en une dans la liste. - Ouvrir l'exécution. La page de l'exécution contient tout l'historique. Cliquez sur la ligne. Résultat attendu : la chronologie, les budgets et les points de reprise s'affichent. En cas d'échec :
run_not_found(404) signifie que l'identifiant est inconnu dans le tenant courant. - Lire l'étape en échec. Chaque étape porte son état, sa tentative, ses jetons et son coût. Repérez l'étape marquée Échoué dans Chronologie d'exécution, puis lisez
errorsdans Execution Contract. Résultat attendu : vous voyez le code d'erreur (par exemplebudget_exceeded). En cas d'échec : quand Aucune étape s'affiche, l'exécution a échoué avant sa première étape ; vérifiez l'agent et ses budgets.
Reprendre une exécution suspendue ou échouée
- Vérifier l'agent. Une exécution ne reprend que si son agent est actif. Ouvrez l'agent depuis le Registre. Résultat attendu : le statut Actif. En cas d'échec : reprenez d'abord l'agent (approbation requise).
- Reprendre l'exécution. Sans choix de stratégie, l'exécution repart de son dernier point de reprise. Cliquez sur Reprendre dans la page de l'exécution. Résultat attendu : le message Terminé et l'état En cours. En cas d'échec :
no_checkpoint(409) signifie que l'exécution n'a aucun point de reprise ;run_not_resumable(409) signifie qu'elle s'est arrêtée surbudget_exceeded,max_steps_exceeded,killedouapproval_rejectedet qu'il faut une nouvelle exécution. - La suivre. La page suit les événements en direct. Regardez la chronologie. Résultat attendu : les nouvelles étapes apparaissent sans recharger la page. En cas d'échec : rechargez la page pour relire l'exécution.
Prouver la configuration utilisée par une exécution
- Ouvrir la preuve. Les auditeurs ont besoin des versions exactes derrière une exécution. Dans le menu de ligne de l'exécution, cliquez sur Preuve de configuration. Résultat attendu : un panneau latéral affiche la configuration en JSON. En cas d'échec :
forbidden(403) signifie que votre rôle ne fait pas partie des lecteurs de preuves. - Rejouer l'exécution. Le rejeu place les étapes, les points de reprise, les événements d'exécution et les événements d'audit dans une seule chronologie ordonnée. Ouvrez l'exécution et cliquez sur Rejouer. Résultat attendu : la section Rejouer affiche la chronologie. En cas d'échec :
forbiddensignifie qu'il vous fautauditor,security_officerou un rôle d'exploitation.
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
invalid_transition (409) : « Une exécution ne peut pas passer de l'état ... à l'état ... » | L'exécution n'est pas dans un état qui permet l'action (par exemple Reprendre sur une exécution en cours, Annuler sur une exécution terminée). | Vérifiez le badge d'état ; seules les exécutions suspendues, échouées, expirées ou en attente d'entrée peuvent reprendre. |
agent_not_active (409) sur Reprendre | L'agent de l'exécution est suspendu ou arrêté. | Reprenez l'agent dans le Registre, puis l'exécution. |
no_checkpoint (409) | L'exécution n'a aucun point de reprise. | Démarrez une nouvelle exécution depuis l'agent. |
run_not_resumable (409) | L'exécution s'est arrêtée sur un budget, une limite d'étapes, un arrêt définitif ou une approbation rejetée. | Démarrez une nouvelle exécution, avec un budget plus élevé si besoin. |
forbidden (403) avec required_roles | Vos rôles ne permettent pas l'action. | Demandez l'un des rôles listés dans l'erreur. |
| Aucun budget enregistré pour cette exécution. | L'exécution a démarré sans budget et l'agent n'en déclare aucun. | Renseignez spec.budgets dans le manifeste de l'agent ou Coût max (EUR) au démarrage. |
| État En attente d'approbation qui ne bouge pas | Une étape attend une décision humaine. | Décidez la demande dans la Boîte d'approbation. |