Les exécutions de workflow conservent leur progression, ce qui vous permet de partir et de revenir sans répéter le travail terminé. Dans IDE, CLI et Web, l'exécution reste liée à son clavardage parent tandis que Kiro enregistre l'état des nœuds, les extrants, les artéfacts, la progression des répétitions, les curseurs de veille et les sessions d'étape à des points de contrôle durables.
Un workflow en arrière-plan ne bloque pas la conversation principale. Kiro peut confirmer le lancement, communiquer la progression pendant l'exécution des étapes, inspecter l'exécution terminée et ses artéfacts, puis synthétiser le résultat dans le clavardage parent. La vue d'ensemble des workflows retrace une telle exécution de bout en bout.
Dans Kiro Web, la session parente et les détails de l'exécution restent visibles ensemble :
Une mise à jour de la progression dans le clavardage parent et un message direct à une étape sélectionnée ont des objectifs différents. Demandez à l'agent principal d'interpréter la progression, de résoudre un problème plus vaste ou de décider de la prochaine action. Envoyez un message à l'étape lorsque les directives concernent précisément la tâche actuelle de cet agent.
Le canal entre le clavardage parent et une étape fonctionne dans les deux sens, à tout moment de l'exécution. Une étape communique vers l'extérieur au moyen de ses signaux send_message. Les directives atteignent l'étape par l'une ou l'autre voie : envoyez directement un message à l'étape sélectionnée dans votre client, ou indiquez à l'agent principal dans le clavardage parent ce que l'étape doit faire et il transmet ces directives à la session de l'étape. Une étape en cours d'exécution prend connaissance des directives à son prochain tour; une étape en pause les traite comme la réponse qu'elle attendait.
Ouvrez Workflows au-dessus du clavardage parent. La zone répertorie les exécutions de la session. Développez une exécution pour inspecter son arborescence d'étapes et son état, puis sélectionnez une étape pour ouvrir un onglet Workflow step dédié. L'onglet identifie l'étape et l'agent, conserve l'historique des messages de l'étape et peut rester à côté du clavardage parent pendant que l'exécution se poursuit.
La fiche d'exécution parente affiche Pause et Arrêter pendant que le travail est actif. Les détails développés de l'étape affichent l'agent sélectionné, le modèle, l'effort et l'activité. Les mises à jour de lancement et d'achèvement dans le clavardage parent peuvent également présenter le nom de l'exécution, son ID, sa tâche, son artéfact d'extrant, le temps écoulé et l'utilisation estimée, lorsqu'ils sont disponibles.
Une exécution qui nécessite une entrée peut afficher l'état Needs you. Revenez à l'exécution et sélectionnez l'étape en pause pour lui répondre directement, ou demandez à l'agent principal dans le clavardage parent de transmettre votre réponse à cette étape.
Une exécution présente l'un de cinq états, et paused couvre trois situations différentes qui nécessitent des réponses distinctes. Les commandes offertes par un client diffèrent selon la surface; les états et les transitions entre ceux-ci sont les mêmes partout.
| État | Signification | Vous pouvez | Elle change d'état lorsque |
|---|---|---|---|
running | Kiro exécute ou planifie des nœuds | Pause (prend effet à la prochaine limite de nœud; l'état reste running jusque-là) ou Arrêter | une étape demande une entrée (paused), tous les nœuds de premier niveau requis se terminent (completed) ou un nœud échoue (failed) |
paused · entrée requise | Une étape a appelé send_message avec le niveau de gravité warning et attend votre réponse | Répondre dans l'étape en pause (l'exécution reste paused pendant ce tour) ou Arrêter | l'étape signale success (running) ou error (failed), ou pose une autre question (reste paused) |
paused · à une limite | Une demande de pause a pris effet à une limite de nœud sûre | Reprendre à partir de l'état conservé ou Arrêter | vous reprenez (running) |
paused · plafond d'itérations | Une répétition a atteint maxIterations avec onMaxIterations: "pause" | Reprendre, ce qui n'ajoute aucune itération; la répétition atteint donc le même plafond et se remet en pause; ou Arrêter; ou réviser le plan restant | vous arrêtez ou un plan révisé remplace le travail restant |
completed | Tous les nœuds de premier niveau requis sont terminés | Inspecter l'exécution et ses artéfacts | état final |
failed | Un nœud a échoué et l'échec s'est propagé à l'exécution | Réessayer lorsque les nœuds en échec peuvent être réessayés : les cibles en échec sont réinitialisées, les nœuds frères terminés sont conservés | vous réessayez (running), sinon l'état est final |
aborted | L'exécution a été abandonnée ou une répétition a utilisé onMaxIterations: "abort" | Réessayer lorsqu'il reste du travail qui peut être réessayé | vous réessayez (running), sinon l'état est final |
Les nœuds peuvent également être pending ou skipped. Chaque itération d'une répétition crée un nouvel ensemble d'entrées d'état pour son corps, de sorte qu'un même ID de nœud statique peut apparaître une fois par itération. Les commandes exposées par chaque client sont indiquées sous Choisir la bonne commande d'exécution.
Une étape peut demander des renseignements et se mettre en pause sans perdre le contexte de sa session. L'agent de l'étape le signale en appelant send_message avec le niveau de gravité warning; Kiro met l'étape et l'exécution en attente jusqu'à ce que vous répondiez.
Votre réponse doit atteindre la session de l'étape en pause. La voie directe consiste à ouvrir cette étape dans votre client et à y répondre; les onglets ci-dessous indiquent où. Vous pouvez également répondre par l'intermédiaire du clavardage parent en demandant à l'agent principal de transmettre votre réponse à l'étape en pause; il insère alors la réponse dans la session de l'étape pour vous. Un simple message saisi dans le clavardage parent sans cette directive constitue une conversation avec l'agent principal, et non une réponse à l'étape.
Kiro achemine le message par l'étape en attente et exécute un autre tour dans la même session sous-jacente. L'exécution reste en pause jusqu'à ce que l'étape se termine ou échoue.
Quelle que soit la voie choisie, la réponse aboutit dans la propre session de l'étape en pause; le clavardage parent est tout au plus l'endroit où vous l'avez saisie. Trois éléments déterminent la suite, et la figure ci-dessous suit une réponse à travers chacun d'eux : l'étape continue avec son historique intact; son prochain signal send_message sélectionne la branche; et seul success fait passer l'exécution au nœud suivant dans une nouvelle session. Un signal warning remet la même session en pause, tandis qu'un signal error met fin à l'exécution.
Select a node, or play the run.
Paused step · session 7f2
next send_message
triagesession 7f2 · paused · waiting for your input
Send_message · warning.
triage asks for input and the run pauses
Where it goes: session 7f2, typed there or relayed by the main agent. The parent learns the outcome only when the step signals.
your reply lands in the paused step's own session; its next signal picks the branch, and only success moves on to a new session
Le flux ci-dessus représente la pause intégrée de Kiro lorsqu'une étape demande une entrée. L'auteur d'une recette peut aussi rendre une étape explicitement interactive au moyen de completion, qui garde l'étape ouverte après chaque réponse jusqu'à ce qu'une condition soit remplie :
{ "type": "step", "id": "triage", "agent": "wf-planner", "prompt": "Investigate the flaky test and refine a fix plan with the user.", "completion": { "completionSignal": "success" } }
Après chaque tour, Kiro évalue completion. Si elle reste fausse, l'étape attend un autre message dans sa session.
Les étapes interactives ne peuvent pas s'exécuter dans parallel, car Kiro ne peut pas mettre une branche en attente d'une entrée pendant que ses nœuds frères continuent.
| Action | Signification |
|---|---|
| Pause | Laisser le tour de l'agent actif se terminer, puis mettre l'exécution en attente à une limite de nœud sûre |
| Reprendre | Continuer une exécution en pause à partir de l'état conservé |
| Arrêter / Annuler | Interrompre le travail actif et attribuer l'état aborted à l'exécution sans annuler les modifications de fichiers |
| Réessayer | Réinitialiser à pending le travail en échec qui peut être réessayé tout en conservant les nœuds frères terminés; offert dans CLI et pour les exécutions dans un état final qui comportent des nœuds en échec sur Web |
Ouvrez l'exécution dans Workflows et utilisez les commandes d'exécution :
aborted à l'exécution.L'interface IDE actuelle n'offre pas la commande Réessayer. Pour répéter une recette après son achèvement ou son échec, lancez-la comme une nouvelle exécution après avoir inspecté l'espace de travail.
La pause est coopérative. L'acceptation d'une demande de pause ne signifie pas que l'exécution est déjà arrêtée. Le tour de l'agent actif peut se poursuivre jusqu'à ce que Kiro atteigne la prochaine limite de nœud. Inspectez l'exécution jusqu'à ce que son état devienne paused avant de supposer que tout travail de l'agent a cessé.
Une répétition mise en pause par onMaxIterations: "pause" a épuisé son budget fixe. Reprendre n'ajoute aucune itération; la répétition atteint le même plafond et se remet en pause. Révisez le plan restant, ou arrêtez l'exécution et lancez la recette corrigée comme une nouvelle exécution.
Utilisez Arrêter, /workflow cancel ou Ctrl+X uniquement lorsque le travail doit s'arrêter immédiatement. L'annulation peut interrompre une étape entre des opérations sur les fichiers. Les fichiers déjà modifiés le restent. Inspectez l'espace de travail et utilisez la gestion de versions pour annuler les modifications partielles indésirables avant de recommencer.
CLI peut réessayer tout le travail infructueux ou un nœud en échec ou abandonné sélectionné :
/workflow retry <workflowId> /workflow retry <workflowId> <nodeId>
Kiro réinitialise chaque cible à réessayer à pending et efface sa session d'étape, ses horodatages, son extrant capturé, ses artéfacts de nœud, ses métadonnées d'échec, ses métadonnées d'achèvement, son état interactif et son état de veille. Il rouvre les ancêtres dans un état final afin que l'exécution puisse atteindre la cible tout en conservant le travail terminé des nœuds frères.
Réessayer n'annule pas les modifications apportées aux fichiers de l'espace de travail. Inspectez les modifications partielles avant de réessayer. Une exécution terminée ne peut pas être réessayée dans l'interface CLI actuelle; relancez la recette pour créer une nouvelle exécution.
Chaque exécution possède son propre ID de workflow et sa propre arborescence d'état. Les fichiers de recette n'isolent pas les chemins d'extrant, les branches Git ni les worktrees, de sorte que deux exécutions peuvent tout de même modifier la même copie de travail ou écraser le même artéfact.
/workflow ou /workflow list, puis sélectionnez ou transmettez l'ID du workflow.run_dir et d'artéfact distincts aux exécutions simultanées.L'achèvement est un transfert, pas seulement un changement d'état. L'agent principal peut inspecter l'exécution, lire ses artéfacts déclarés et les fichiers pertinents, vérifier les éléments de preuve demandés et résumer le résultat dans la conversation parente.
Un résumé d'achèvement utile indique :
Dans Kiro Web, utilisez Summary, Files et Artifacts pour inspecter directement ces éléments de preuve. Une recette ou un agent d'étape doit produire et exposer un artéfact; les fichiers créés au cours d'une exécution ne deviennent pas tous automatiquement des artéfacts déclarés.
Un workflow en cours ou en pause peut remplacer son plan de premier niveau restant tout en conservant les nœuds qui ont déjà été exécutés.
La structure de l'exécution détermine qui peut réviser un plan :
| Appelant | Mettre à jour son étape actuelle | Remplacer le plan restant |
|---|---|---|
| Un agent d'étape au niveau racine ou imbriqué dans un conteneur de niveau racine | Oui | Oui |
| La session parente qui a lancé l'exécution | Aucune étape actuelle | Oui |
| Un sous-agent lancé dans une étape | Non | Non |
Les agents utilisent update_workflow pour les deux actions. Pour les résultats ordinaires, une étape devrait toujours envoyer un signal au moyen de send_message; update_status sert aux dérogations intentionnelles. La révision d'un plan est une capacité de l'agent et de l'environnement d'exécution et ne signifie pas que chaque client offre une commande de révision manuelle.
Un nœud watch interroge une ressource externe sans dépenser de tours de modèle pendant que la ressource est inactive. Son gestionnaire renvoie l'un de trois résultats :
| Résultat | Effet |
|---|---|
idle | Attendre la prochaine interrogation |
new-activity | Terminer cette instance de veille et exposer la charge utile JSON comme extrant |
terminal-state | Terminer la veille et verrouiller son indicateur final pour la condition stopWhen d'une répétition |
Kiro conserve le curseur de veille et l'état final avec l'exécution, de sorte que le suivi des nouveautés survit à un redémarrage. Après une interruption et une récupération, la livraison a lieu au moins une fois; un répondant doit donc tolérer un élément répété. Si idleTimeoutSec est défini, une veille inactive se termine avec un résultat final après cette durée; sinon, la veille peut attendre indéfiniment.
Deux gestionnaires sont intégrés. github-pr assure lui-même le suivi de ce qu'il a déjà signalé. command exécute un programme que vous écrivez une fois par interrogation et stocke le curseur renvoyé par le programme, de sorte que votre programme détermine ce qui constitue une nouveauté; consultez Surveiller autre chose avec command.
L'exemple publish-pr associe une veille github-pr à un répondant dans une répétition; consultez Publier et répondre.
Kiro conserve l'état complet du workflow après les transitions de nœud. Les étapes terminées, les résultats finaux enregistrés, l'état de pause pour une entrée, les extrants capturés, les artéfacts et les curseurs de veille survivent à leur dernière limite durable. Une étape interrompue sans signal final se poursuit dans sa session d'étape existante au lieu de répéter sa requête initiale comme une nouvelle étape.
paused, utilisez Reprendre ou répondez dans l'étape en pause, selon le cas.failed ou aborted, inspectez l'espace de travail et lancez la recette corrigée comme une nouvelle exécution; l'interface IDE actuelle n'offre pas de commande Réessayer.Une exécution qui indique toujours running n'accepte pas Reprendre. Rouvrez sa session parente ou son moniteur et inspectez son étape active. Si elle reste running sans nouvel extrant, notez l'ID du workflow et recueillez les diagnostics du client avant de lancer une exécution en double; le client ne dispose d'aucune commande manuelle distincte pour récupérer l'exécution.
Kiro limite les échecs répétés des tentatives de poursuite et fait échouer l'étape au lieu de réessayer indéfiniment. La disposition exacte du stockage et les enregistrements de propriété des processus sont des détails de mise en œuvre, et non des éléments de l'API des recettes.
| Symptôme | Vérification |
|---|---|
| Les surfaces workflow d'IDE sont absentes | Activez les workflows pour l'espace de travail, puis démarrez une nouvelle session de clavardage |
| Les commandes workflow de CLI sont absentes | Activez les workflows sous /settings → Features, puis redémarrez Kiro CLI |
| La recette n'apparaît pas | Confirmez sa source et sa priorité; les fichiers du projet doivent se trouver sous .kiro/workflows/ et porter un suffixe pris en charge |
L'exécution démarre avec le texte littéral {{name}} | L'entrée simple n'a pas été déclarée ou fournie au lancement |
| L'étape échoue sur un modèle d'extrant ou d'artéfact | Confirmez que le producteur s'exécute d'abord et capture ou déclare la valeur |
| La répétition atteint son plafond | Inspectez le fichier d'arrêt, le chemin JSON, la valeur attendue et l'étape qui la produit |
| La répétition se met immédiatement en pause après Reprendre | Reprendre n'accorde aucune itération supplémentaire; consultez Reprendre |
| La condition de fichier ne correspond jamais | Confirmez la validité du JSON, le chemin et la valeur JSON exacts ainsi qu'un chemin d'espace de travail autorisé |
| La validation réussit, mais la création de l'exécution échoue | Vérifiez les noms des agents, l'accès aux modèles et la configuration des gestionnaires de veille; la validation autonome ne peut pas vérifier entièrement les registres de l'environnement d'exécution |
La veille command échoue immédiatement | Le programme s'est terminé avec le code 2, 126 ou 127, ou avec le code 0 et un JSON mal formé ou sans cursor; exécutez-le manuellement avec un objet stdin enregistré et vérifiez que stdout contient exactement un objet JSON |
La veille command ne se réveille jamais | Tout autre code de sortie non nul, y compris une interruption par commandTimeoutSec, est traité comme une inactivité et entraîne une nouvelle tentative; vérifiez si stderr contient un échec récurrent et confirmez que le programme signale new-activity plutôt que de seulement faire avancer son curseur |
| Le travail en parallèle n'est pas plus rapide | Kiro démarre les branches simultanément, mais utilisez parallel pour l'isolation et la sémantique de jointure plutôt que pour la vitesse |
| L'exécution annulée a laissé des modifications | L'annulation n'annule pas les modifications de fichiers; inspectez ou restaurez l'espace de travail |
| L'étape en pause ignore une réponse | Envoyez du texte dans la propre session de l'étape, et non seulement une pièce jointe ou le clavardage parent |
step statiques.repeat possède une valeur maxIterations positive.parallel fournit à chaque branche son propre contexte et une stratégie de jointure (all, allSettled ou any). Kiro démarre les branches simultanément; utilisez-le pour l'isolation et la sémantique de jointure plutôt que de présumer une réduction du temps écoulé.
Exécuter et gérer les workflows