maxRoundsRequis
number
Entier 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.
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.
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.
cacheOptionnel
TaskCacheOptions | undefined
Cache optionnel du résultat accepté de la boucle ; une correspondance saute tous les tours et n’enregistre aucun tour.
keyRequis
string
Clé stable du nœud utilisée par les dépendances, checkpoints et événements de boucle.
afterOptionnel
readonly Task<unknown>[] | undefined
Dépendances devant réussir avant le premier tour ; leurs résultats sont accessibles via context.value.
conditionOptionnel
((context: TaskContext) => boolean | Promise<boolean>) | undefined
Prédicat évalué avant que la boucle démarre ou reprenne ; false ignore la tâche et ses dépendantes.
timeoutMsOptionnel
number | undefined
Délai coopératif pour une exécution de tour, essai et vérification compris ; renouvelé à la reprise d’une phase interrompue.