Une boucle de correction renvoie au modèle sa sortie invalide avec le message d'erreur de validation, pour qu'il la corrige. Le nombre de tentatives est borné afin de limiter le coût, et un échec final est traité explicitement (repli ou erreur) plutôt que ignoré.
Exemple
for _ in range(3):
out = ask(prompt + erreur)
if valide(out): break