← Projets

Création · LLM-as-judge

QuiteLucid

Un atelier d'agents qui conçoit, génère, juge et affine des illustrations de cartes, avec l'humain comme juge final.

Rôle
Conception, architecture et pilotage des agents (solo)
Période
Août 2026 → en cours
Statut
En cours · pipeline v5
01 Un run complet : brief, vagues de génération, classement final.
02 Ce que décrit le lecteur aveugle face à la note du critique.
03 Le tri en un geste et la lignée d'affinage d'une image ❤️.

En bref

  1. Problème : automatiser la création et la sélection d'illustrations sans perdre le goût de l'auteur.
  2. Ce que j'ai fait : un orchestrateur déterministe, cinq agents à rôle unique, un lecteur aveugle, et un tri humain en un geste qui relance ou finalise.
  3. Résultat : des runs mesurés et reproductibles, et une leçon clé : un juge qui hallucine sans erreur est pire qu'un juge en panne.

Contexte

QuiteLucid est un jeu de cartes illustrées sur l’écologie, dans l’esprit des jeux d’association d’images. Chaque carte doit être surréaliste, lisible à plusieurs niveaux, et accompagnée d’un court article sourcé.

Deux difficultés : une belle image n’est pas une image juste (elle peut ne pas porter le sujet, ou le porter trop littéralement), et le volume rend le tri manuel intenable.

Le pipeline

  1. Le sujet vient de la liste des cartes. Le style n’est jamais dans le brief : il est injecté depuis une fiche de style.
  2. Les images sont générées par Codex (modèle d’image d’OpenAI, inclus dans l’abonnement ChatGPT : aucun coût d’API).
  3. L’orchestrateur enchaîne : brief, vagues de génération, lecture aveugle, critique, score, décision, rapport.
  4. Des agents à rôle unique apportent le jugement : directeur, auteur des prompts, lecteur aveugle, critique, gardien des motifs répétitifs. Ils échangent par fichiers JSON validés par schéma.
  5. Une application web permet de trier en un geste. Un ❤️ relance une lignée d’affinage, un ⭐ publie la carte.

Architecture

affiner

stop : budget ou régression

❤️

⭐

Sujet de la carte

Brief : 6 concepts divergents

Vague 0 : 1 image par concept

Lecteur aveugle : décrit l'image seule

Critique : score sur grille

Directeur

Vague suivante, corrections ciblées

Rapport + classement

Tri humain

Lignée d'affinage auto

Carte finale publiée

Durcissement

  • Un lecteur en panne ne vaut plus zéro : le score est marqué « non fiable ».
  • Arrêt automatique si la meilleure image d’une vague régresse.
  • Les éléments obligatoires du brief sont réinjectés à chaque génération.
  • Appels bornés par timeout, parallélisme limité, coût suivi par agent.

Décisions

Les choix qui structurent le projet, avec l'option écartée et la raison.

  1. D1 Le script orchestre, le LLM juge

    Choix
    Un orchestrateur Python déterministe enchaîne les étapes ; les agents ne font que créer ou juger.
    Écarté
    Un agent orchestrateur qui décide de tout.
    Pourquoi
    Enchaînement testable, coûts bornés, et pannes localisables.
  2. D2 Un lecteur vraiment aveugle

    Choix
    Le lecteur ne reçoit que l'image, garanti par le script.
    Écarté
    Lui demander dans le prompt d'ignorer le brief.
    Pourquoi
    Mesurer si l'image porte le sujet sans aide. Une consigne n'est pas une garantie.
  3. D3 Une image canari avant chaque run

    Choix
    Une image au contenu connu est relue avant de générer ; si elle est mal décrite, le run s'arrête.
    Écarté
    Faire confiance à un juge qui répond sans erreur.
    Pourquoi
    Après un changement de modèle, des centaines d'images ont été jugées par un lecteur qui ne les voyait pas.
  4. D4 Un geste plutôt qu'un commentaire

    Choix
    Tri en trois états : rejet, ❤️ (à affiner, relance auto), ⭐ (carte finale).
    Écarté
    Retour écrit à chaque image.
    Pourquoi
    Le retour humain doit coûter une seconde pour rester régulier.

Résultats

Run A006-r1 (fichiers de métriques du dépôt) : 12 images en 3 vagues.
MesureAvantAprès
Meilleur score sur 106,3–6,6 (vague 0)8,1 (vague 2)
Durée du run·42 min
Appels de modèle·78
Coût marginal·0 € (abonnement inclus)

Limites et suite

  • Le juge automatique finit par converger vers ses propres goûts : l'audit de 837 verdicts humains a imposé un recalage sur les choix de l'auteur.
  • Un juge sans accès aux images a noté des centaines d'images avant d'être détecté. Le canari corrige le symptôme ; la vigilance reste nécessaire.
  • Le parallélisme reste limité (deux appels valent mieux que quatre) : le débit n'est pas l'objectif.

Ce que ce projet démontre

  • Orchestration multi-agents : script déterministe, rôles spécialisés, contrats JSON
  • Évaluation LLM-as-judge : grilles, canaris, détection de dérive, recalage sur l'humain
  • Humain dans la boucle : un geste simple qui pilote la génération suivante
  • Durcir un pipeline : arrêt sur régression, invariants, post-mortems écrits