Chargement de l'image...Kiro

Produit

  • À propos de Kiro
  • IDE
  • CLI
  • Web
  • Mobile
  • Crew
  • Tarification
  • Téléchargements

Pour

  • Entreprise
  • Startups
  • Étudiants

Communauté

  • Aperçu
  • Ambassadeurs
  • Discord
  • Événements
  • Powers
  • Boutique
  • Vitrine

Ressources

  • Docs
  • Blogue
  • Journal des modifications
  • FAQ
  • Signaler un bogue
  • Suggérer une idée
  • Soutien à la facturation

Réseaux sociaux

Conditions d'utilisation du siteLicencePolitique d'IA responsableMentions légalesPolitique de confidentialitéPréférences relatives aux témoins
Chargement de l'image...Kiro
  • Entreprise
  • Tarification
  • Docs
SE CONNECTERTÉLÉCHARGER
Chargement de l'image...Kiro

Pour commencer

InstallationAuthentificationVotre premier projet

Modèles

AperçuModèles disponiblesEffort de raisonnement

Fonctionnalités

Comment fonctionne Kiro
Specs
Steering
Hooks
MCP
Autorisations
Agents personnalisés
Agent Skills
Powers
Sessions cloudCompactionKiroignorePoints de contrôle et rewind
Outils intégrés
Portées de configuration

IDE 1.x

Nouveautés de la version 1.0
Configuration et premier lancement
Éditeur
Chat
Expérimental
DépannageRéférence 0.x

CLI

Nouveautés de la version 3.0
Configuration et première exécution
Interface utilisateur du terminal
Clavardage
Mode vocalMode sans interfaceACPAutocomplétion
Expérimental
Référence 2.x

Crew

Démarrage rapideInstallationFonctionnement 24/7
Chat
Agent Capabilities
Fonctionnalités
Sous-agents
Planification
Artéfacts
Multi-instance
Task Runner
Memory
Knowledge
Instantané et restauration
Interfaces
Applications
ConfigurationSécuritéDépannage

Web - Aperçu

Configuration et première exécutionIdentity Center
Connectez vos dépôts
Utilisation de l'agent
Mode autonomeAutomatisationsMémoire
Sandbox

Mobile - Aperçu

Aperçu

Commandes et référence

Commandes CLICommandes à barre obliqueOutils intégrésCodes de sortieParamètres

Facturation

AperçuGestion de votre abonnementMise à niveau de votre forfaitRétrogradation de votre forfaitAnnulation de votre forfaitAchat de crédits supplémentairesGestion de vos paiementsGestion des notifications d'utilisationGestion de vos impôtsCommuniquer avec le soutien à la facturationSuppression de votre compteQuestions connexes

Entreprise

ConceptsDémarrage rapide de l'intégration
Connexion de votre fournisseur d'identité
Abonnez votre équipeGérer les abonnements
Governance
Surveillance et suivi
ParamètresMises à jour géréesFacturationIAMRégions prises en charge

Confidentialité et sécurité

AperçuProtection des donnéesRéférences de codeValidation de la conformitéSécurité de l'infrastructureAutorisations IAMPare-feu, mandataires et périmètres de donnéesPoints de terminaison VPC (AWS PrivateLink)

Guides

Aperçu
Prise en charge des langages
Apprendre en jouant

Migration

Migration depuis Q DeveloperMigration depuis VSCodeMise à niveau depuis Q CLI
  1. Docs
  2. Crew
  3. Fonctionnalités
  4. Task Runner
Afficher en Markdown

Task Runner

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et la version anglaise originale, la version anglaise prévaudra.
Afficher en Markdown

Confiez au Task Runner une spec en markdown et il la décompose en étapes ordonnées, exécute chacune dans sa propre session, teste le résultat, réessaie en cas d'échec et enregistre la progression par points de contrôle. Conçu pour 10 heures ou plus de fonctionnement sans surveillance.

La boucle

Spec → LLM decomposes → Tasks → Execute → Test → Self-review → Commit or retry

Pour chaque tâche :

  1. Nouvelle session (taskrunner:{task_id}:task{N}) avec injection complète de la mémoire
  2. Requête construite à partir de la spec + mémoire de travail + état git antérieur
  3. L'agent exécute des outils, diffuse la progression en continu et peut appeler des sous-agents
  4. Si les tests réussissent, git commite la modification
  5. Une session de réviseur indépendante lit le git diff réel et valide le résultat
  6. Si la révision échoue, la modification est annulée et on réessaie (jusqu'à 3 tentatives, puis une replanification)

Exécuter une tâche

Depuis le tableau de bord (recommandé)

Ouvrez le panneau Projects, décrivez ce que vous voulez dans la zone Compose, affinez-le éventuellement en une spec structurée (✨ Refine), puis cliquez sur Run. La tâche apparaît dans la barre latérale avec la progression en direct, le statut des étapes et des contrôles de pause/annulation.

Vous pouvez aussi téléverser un fichier de spec existant (onglet From Spec) ou demander dans le clavardage : « run this task spec ».

Depuis la CLI

bash
kirocrew run TASK.md # auto-resume from checkpoint on restart kirocrew run TASK.md --fresh # ignore checkpoint, start over kirocrew run TASK.md --timeout 3600 kirocrew run TASK.md --no-test # skip test verification

Également disponible via Slack (run <path>) et l'outil MCP task_run.

Format de la spec

N'importe quel fichier markdown. Le Task Runner n'est pas exigeant — il décompose ce qui s'y trouve :

markdown
# Migrate user service to Go ## Goal Rewrite the Node.js user service in Go, preserving all behavior. ## Requirements - Every existing endpoint must continue to work - Existing tests must pass - The new implementation must handle the same load ## Acceptance criteria - `curl` smoke tests pass against a local instance - All unit tests pass with `go test ./...` - No behavior change observable from the client

Le LLM décompose ceci en tâches ordonnées avec des dépendances, des critères d'acceptation et des portes d'approbation.

Mode Refine (tableau de bord)

Si vous avez une idée approximative plutôt qu'une spec, utilisez ✨ Compose dans le tableau de bord :

  1. Tapez votre idée en langage naturel
  2. Cliquez sur ✨ Refine into Spec
  3. Le LLM la réécrit en une spec structurée (Goal / Requirements / Acceptance Criteria)
  4. Modifiez le résultat avant de l'exécuter

Refine est un appel LLM en une seule fois — sans outils, sans questions de clarification.

Tâches concurrentes

Jusqu'à 3 exécutions de tâches concurrentes sont permises (_MAX_CONCURRENT_TASKS). Chacune obtient ses propres :

  • task_id — ID résistant aux collisions
  • Répertoire de travail — {work_dir}/{spec_stem}/
  • Bassin de sessions — chaque étape obtient sa propre session taskrunner:{task_id}:task{N}
  • Branche git — kirocrew/task/{task_id} (dans un worktree si un dépôt existe)

Annulez une tâche spécifique avec kirocrew run cancel <task_id>, ou toutes avec kirocrew run cancel.

Pause et reprise

Les tâches peuvent être mises en pause en cours d'exécution puis reprises plus tard sans perte de progression :

bash
# In the dashboard Tasks panel: Pause button # In Slack: run pause <task_id> # REST: POST /api/taskrunner/{task_id}/pause

Reprenez en appelant execute avec fresh=false :

  • Les tâches incomplètes sont réinitialisées à PENDING
  • Les tâches réussies et ignorées sont conservées telles quelles
  • L'exécution se poursuit à partir de la première tâche en attente

Avec fresh=true, toutes les tâches sont réinitialisées — vous repartez du début.

Récupération après incident

Au redémarrage de la passerelle, toute tâche avec status == "running" passe automatiquement à "paused". Cela évite les tâches zombies qui semblent en cours d'exécution mais n'ont plus de tâche asyncio sous-jacente. Reprenez manuellement depuis le tableau de bord.

Les exécutions sont persistées dans ~/.kiro/crew/tasks/runs.json et rechargées au démarrage.

Portes d'approbation forcée

Les étapes peuvent être marquées avec force_approval: true dans la spec. Ces portes bloquent l'exécution même en mode YOLO :

  • La tâche se met en pause à la porte
  • Des boutons Approve / Deny intégrés apparaissent dans le tableau de bord
  • Vous devez explicitement approuver avant que l'étape ne s'exécute

Utilisez force-approval pour les opérations destructrices (déploiement, suppression, publication, rm -rf).

Coordination git

Chaque tâche s'exécute sur sa propre branche git isolée :

  • Dépôt existant — git worktree add crée un répertoire de travail isolé; votre copie de travail reste intacte
  • Aucun dépôt — git init dans le répertoire de travail, puis passage à kirocrew/task/{task_id}

Par étape :

  • git add -A && git commit après chaque étape réussie
  • git reset --hard HEAD~1 en cas d'échec de la révision, avant de réessayer
  • git log --oneline + git diff --stat injectés dans la requête de l'étape suivante
  • git diff HEAD~1 transmis au réviseur indépendant

L'échec de git init n'est pas fatal — la tâche continue sans coordination git.

Autoévaluation

Chaque étape passe par un réviseur indépendant utilisant une session distincte (taskrunner:{task_id}:review) :

  • Lit le git diff HEAD~1 réel (et non le rapport que fait le LLM sur lui-même)
  • Session distincte — aucun biais dû au fait d'avoir écrit le code
  • En cas d'échec de la révision : annulation de la modification, nouvelle tentative de l'étape, nouveau commit en cas de succès
  • Les exceptions de révision ne sont pas fatales (retourne « passed » pour éviter de bloquer)

Réglez les transitions de statut de l'étape en passant par REVIEWING (visible dans l'interface sous la forme 🔍) avant de promouvoir vers PASSED.

Nouvelles tentatives et replanification

LayerCapPurpose
MAX_RETRIES3Logic/test failure retries per step
MAX_RECOVERIES2Process crash recovery budget per step
MAX_REPLAN2Plan revisions after a step exhausts retries
MAX_TOTAL_TASKS50Hard cap on total tasks (including replans)

Lorsqu'une étape épuise ses tentatives, le task runner demande au LLM de revoir le plan. Jusqu'à 2 replanifications avant l'échec de l'exécution.

Détection de cycle : 2 erreurs identiques → avertissement; 3 erreurs identiques → étape marquée FAILED avec « Loop detected ». Les incidents de processus ne comptent pas dans ce total.

Exécution parallèle des tâches

Les tâches dans la spec peuvent déclarer des dépendances. Les tâches sans dépendances croisées s'exécutent en lots parallèles de 3 (_MAX_PARALLEL_TASKS) :

  • Chaque lot s'exécute via asyncio.gather(..., return_exceptions=True)
  • Le lot suivant ne démarre qu'une fois le lot en cours terminé
  • Les sessions par tâche sont réinitialisées après la boucle

Cela évite des rafales de démarrage à froid de 5N processus de serveur MCP (N tâches parallèles = ~5N processus si non regroupées par lots).

Outils au niveau de la tâche

Chaque étape reçoit :

  • L'injection complète de ContextBuilder — préférences, projets, historique, mémoire sémantique, leçons, mémoire épisodique, skills déclenchés
  • Le texte propre de l'étape comme requête principale
  • is_new=True sur le premier message pour que l'injection se déclenche une seule fois, puis les suivis réutilisent le contexte

Surveillance et détection de blocage

La détection de blocage sensible à l'activité suit run.last_task_time, mis à jour à chaque fragment de flux, approbation d'outil ou récupération :

ThresholdAction
60 min no activity⚠️ Warning notification
2 h no activity🔧 Session reset → recovery retry

La réinitialisation annule la session de l'étape en cours; la nouvelle tentative peut se déclencher à nouveau si elle bloque aussi.

Notifications

Chaque événement génère une notification préfixée par [spec_name] :

  • 🚀 Tâche démarrée
  • 📋 Plan prêt (liste des étapes)
  • ✅ Étape N/M réussie (titre + aperçu du résultat)
  • ❌ Étape N/M échouée (titre + erreur)
  • ⚠️ La tâche est peut-être bloquée (minutes depuis la dernière activité)
  • 🔄 Replanification (tentative N/2)
  • 📝 Leçon apprise
  • ✅ Tâche terminée (résumé final avec le temps écoulé et la liste des étapes)

Envoyer les résultats à un emplacement de clavardage

Une fois une tâche terminée, vous pouvez ouvrir son résultat directement dans un nouvel emplacement de clavardage :

POST /api/taskrunner/{task_id}/to-chat

Cela crée une nouvelle session de clavardage préchargée avec la spec de la tâche, le plan et les résultats par étape. À partir de là, vous pouvez poser des questions de suivi ou itérer.

État d'exécution

L'état des tâches est projeté dans ~/.kiro/crew/tasks/runs.json avec :

  • task_id, spec_path, status, timestamps, error, tokens_used, replan_count
  • détails par étape (résultat tronqué à 2 K par étape)

Supprimer une exécution via DELETE /api/taskrunner/{task_id} la retire de la mémoire et du disque.

Confiance à approbation automatique

Le tableau de bord expose un commutateur auto_approve par exécution :

  • Désactivé (par défaut) — les demandes de permission d'outil s'affichent de façon interactive
  • Activé — les demandes de permission d'outil s'approuvent automatiquement pendant l'exécution

La confiance est limitée par une durée de vie (TTL) (fenêtre du tableau de bord, 6 h max, plafond absolu de 24 h). Chaque appel d'outil auto-approuvé fait avancer l'octroi — une exécution activement en progression ne perd pas sa confiance en cours de route, mais une exécution inactive et abandonnée l'échoit.

Les portes force-approval bloquent toujours. Les listes de refus des Hooks et les blocages de chemins sensibles s'appliquent toujours. auto_approve est délimité de manière stricte et ne s'étend jamais aux exécutions lancées par cron ou par MCP (celles-ci sont sans interface par construction).

Intégration avec les sous-agents

Une étape de tâche peut engendrer des sous-agents :

  • La session de l'étape hérite de parent_session_key = taskrunner:{task_id}:task{N}
  • Les achèvements des sous-agents s'injectent de nouveau dans la session de l'étape
  • Le LLM de l'étape peut synthétiser la sortie du sous-agent avant de poursuivre

Cela s'agence bien pour des tâches comme « exécuter cette analyse sur chaque paquet du dépôt » — l'étape se déploie vers des sous-agents, attend le résumé, puis poursuit.

Référence de configuration

Paramètres liés au task runner :

Constant / configDefaultPurpose
MAX_RETRIES3Retries per step
MAX_RECOVERIES2Crash recoveries per step
MAX_REPLAN2Replans per run
MAX_TOTAL_TASKS50Total task cap including replans
_MAX_PARALLEL_TASKS3Parallel batch size
_MAX_CONCURRENT_TASKS3Concurrent runs
CONTEXT_COMPACT_PCT80.0Session compact threshold
TEST_TIMEOUT540090 min for test command
STALL_TIMEOUT360060 min → warn
STALL_CANCEL_TIMEOUT72002 h → reset session
PROGRESS_FILETASK_PROGRESS.mdWritten next to spec file
Page mise à jour : 11 août 2026
Multi-instance
Memory