defineLoopTask
Rôle et comportement
Section intitulée « Rôle et comportement »Déclare une tâche qui exécute attempt puis check pendant au plus maxRounds tours, en transmettant le feedback de chaque check refusé à la tentative suivante. Chaque tour consomme une tentative du workflow et, avec un checkpoint, enregistre sa phase. La sortie est la valeur acceptée ; l’épuisement fait échouer la tâche avec LoopTaskExhausted et une exception d’un callback la fait échouer immédiatement.
Exemple complet et règles détaillées.
Paramètres et propriétés
Section intitulée « Paramètres et propriétés »optionsRequisLoopTaskOptions<T>Identité de tâche, dépendances, callback d’essai borné et vérification d’acceptation.options.maxRoundsRequisnumberEntier sûr strictement positif limitant les tours logiques, reprises comprises. Rejouer une phase interrompue conserve son tour mais consomme une tentative supplémentaire du workflow.options.attemptRequis(context: LoopTaskContext, feedback: string | undefined) => T | Promise<T>Produit le résultat candidat depuis le contexte de phase et le feedback du refus précédent ; feedback vaut undefined au premier tour. Les résultats persistés doivent être du JSON sans perte ou undefined.options.checkRequis(context: LoopTaskContext, result: T) => LoopCheckResult | Promise<LoopCheckResult>Accepte le candidat avec done: true ou demande un autre tour avec done: false et un feedback textuel. Peut appeler un agent relecteur ; déclarer son usage via le contexte. Une exception fait échouer la tâche.options.cacheOptionnelTaskCacheOptions | undefinedCache de résultat : une entrée trouvée restaure la valeur JSON sans perte enregistrée, sans tentative, usage ni effet de bord. En cas d’absence, un résultat qui n’est pas du JSON sans perte fait échouer la tâche. Refusé sur les gates, les interactions et les tâches qui renvoient un résultat de dispatch.options.keyRequisstringClé unique dans le workflow, conforme à [A-Za-z0-9][A-Za-z0-9._-]*. Les enregistrements, événements et checkpoints identifient la tâche par elle.options.afterOptionnelreadonly Task<unknown>[] | undefinedTâches qui doivent être done avant que celle-ci démarre, aucune par défaut ; seules celles-ci se lisent avec context.value().options.conditionOptionnel((context: TaskContext) => boolean | Promise<boolean>) | undefinedÉvaluée avec attempt 0 avant l’exécution de la tâche, y compris quand un start() ultérieur la reprend ; false termine la tâche en skipped, ce qui ignore aussi ses dépendantes.options.timeoutMsOptionnelnumber | undefinedDélai en millisecondes de chaque tentative, entier positif jusqu’à 2147483647. À l’expiration, context.signal est annulé et la tentative échoue ; retry peut la répéter.