Composer des workflows typés
Reliez les résultats des tâches et choisissez le type de tâche adapté à chaque étape.
Relier les étapes
Section intitulée « Relier les étapes »Utilisez un workflow lorsque votre travail comporte plusieurs étapes avec des dépendances explicites. Chaque tâche renvoie une valeur que les tâches suivantes peuvent lire en conservant son type TypeScript.
- Tâches et dépendancesDéclarez chaque étape, reliez les sorties, lancez le graphe.
- Boucles de vérificationLaissez l’agent réessayer avec le retour de la vérification jusqu’à ce qu’elle accepte.
- Réponses typéesDemandez une réponse JSON balisée et validez-la avant de l’utiliser.
- Concurrence, relances et délaisBranches parallèles, relances après un échec et durées limitées.
- Cache de résultatsRenvoyez la valeur enregistrée d’une tâche au lieu de la relancer.
- ArtefactsTransmettez des fichiers, et pas seulement des valeurs, d’une tâche à la suivante.
Vérifier le résultat d’une tâche
Section intitulée « Vérifier le résultat d’une tâche »Dans cet exemple, une première tâche prépare la liste des fichiers. Une tâche de boucle essaie ensuite de produire un résultat accepté par sa vérification. Les dépendances indiquent dans quel ordre ces tâches peuvent démarrer.
Rien ne s’exécute avant start(). Le premier tour est rejeté, le second reçoit le retour et passe, et result.value(fix) conserve le type renvoyé par attempt.
Choisir un type de tâche
Section intitulée « Choisir un type de tâche »| Tâche | Exécute | Renvoie |
|---|---|---|
defineTask() | Votre propre fonction | Ce qu’elle renvoie |
defineAgentTask() | Un agent sur le workspace partagé | Son texte, ses commits et sa valeur typée |
defineIsolatedTask() | Un agent dans sa propre sandbox et son worktree | La même chose, par dépôt |
defineLoopTask() | Tentative et vérification, jusqu’à acceptation | Le candidat accepté |
defineApprovalTask() | Une approbation donnée par une personne | La décision enregistrée |
Pour un workflow avec checkpoint, renvoyez des valeurs qui peuvent être enregistrées et restaurées en JSON sans perdre d’information. Le processus suivant pourra alors reprendre à partir des résultats sauvegardés.
context.value()lève une erreur pour une tâche absente deafter, même si elle a déjà tourné.- Une tâche ne démarre qu’une fois toutes celles de son
afterterminées ;defineWorkflow()refuse les cycles et les dépendances inconnues avant l’exécution. - Un rejet au dernier tour fait échouer la tâche de boucle avec
LoopTaskExhausted. - Pour enregistrer les résultats dans un checkpoint, utilisez des valeurs qui peuvent être restaurées depuis le JSON sans perte. Les instances de classes, les flux et les descripteurs ne conviennent pas.
- Un workflow ne pousse, ne fusionne et ne déploie rien de lui-même. Ces étapes restent dans vos tâches.
API : defineTask · defineWorkflow · defineLoopTask · TaskContext · WorkflowResult · WorkflowFailure · defineJsonResponse.