← Blog OutilsIA

Active Wiki RAG pour POMDP : un wiki de cas résolus bat un humain expert

22 avril 2026 · OutilsIA.fr · ~9 min de lecture · Article 7 de la série Dragon Labyrinth

Oracle-X1 pur : 14,2 % de win rate. Oracle-X2 avec Wiki Actif RAG : 13,8 %. On dirait un échec. Sauf qu'ils gagnent sur des parties différentes. Ensemble, ils atteignent 21,5 % — au-dessus du humain expert.

14,2 %Oracle-X1 seul
13,8 %Oracle-X2 seul
21,5 %Ensemble X1 + X2

La question qui a lancé ce test

On avait Oracle-X1 : 15 % de WR sur Dragon Labyrinth en observation partielle. Plafond apparemment atteint avec le Layer Humain à 5 modules. Pour progresser, on a creusé une piste inspirée des RAG modernes : nourrir l'agent d'un wiki de cas résolus.

L'idée : après avoir logué 5000 parties Oracle-X1, on cluster les labyrinthes par caractéristiques topologiques (densité de murs, cul-de-sacs, jonctions, distance camp/trésor). À run-time, on identifie le cluster du labyrinthe courant et on injecte dans la décision le prior des positions de trésor qui ont été gagnantes sur les parties similaires.

C'est exactement le principe du RAG (Retrieval-Augmented Generation) appliqué à un POMDP : au lieu de chercher dans un wiki textuel Wikipedia pour aider un LLM à répondre, on cherche dans un wiki de cas résolus pour aider un agent à décider.

L'architecture du Wiki Actif

Phase 1 — Logger 5000 parties

Sur CPU Ryzen, Oracle-X1 tourne à ~3 s/partie. 5000 parties = ~4 h de calcul. Pour chaque partie on enregistre :

Phase 2 — Cluster k-means en 8 groupes

K-means classique sur les features topologiques normalisées. 8 clusters empiriques émergent :

Chaque cluster accumule sa propre heatmap de trésor (distribution spatiale des positions de trésor) et ses patterns gagnants (séquences d'actions qui ont mené à la victoire).

Phase 3 — Injection run-time dans Oracle-X2

À chaque partie :

  1. On calcule les 8 features du labyrinthe courant
  2. On trouve le cluster le plus proche (distance euclidienne au centroïde)
  3. On charge la heatmap gagnante de ce cluster et on l'utilise comme prior pour le belief state (module M1)
  4. On utilise les patterns gagnants comme biais doux dans le module M7 (mode selector)

C'est actif parce que le wiki s'enrichit à chaque nouvelle partie loguée. Contrairement à un RAG statique, le wiki grossit et se raffine en production.

Les résultats bruts : ni boost, ni chute

On lance 1000 parties en A/B sur les mêmes seeds — donc les mêmes labyrinthes, les mêmes positions initiales de trésor et de dragon. La seule différence : Oracle-X1 décide sans wiki, Oracle-X2 décide avec.

RésultatOracle-X1 (sans wiki)Oracle-X2 (avec wiki)
Win142 (14,2 %)138 (13,8 %)
Mort 3 hits676677
Mort avec trésor138143
Timeout4442

Différence de WR : -0,4 point. Dans le bruit statistique. Première lecture : le Wiki Actif RAG n'apporte rien. On allait le jeter.

La surprise : les gagnants sont différents

Avant de conclure, on a regardé sur quelles parties chaque agent gagne. Les deux séries tournent sur les mêmes seeds, donc on peut comparer partie par partie.

CasNombre de parties% du total
Les deux gagnent656,5 %
Seul X1 gagne777,7 %
Seul X2 gagne737,3 %
Aucun ne gagne78578,5 %
Union (X1 OU X2)21521,5 %
X1 et X2 gagnent des parties différentes à parts quasi-égales.

77 parties où seul X1 gagne. 73 parties où seul X2 gagne. 65 où les deux. Les deux agents ne se recouvrent pas — ils sont complémentaires.

Ce que ça veut dire

Si on construit un méta-agent qui fait tourner X1 et X2 en parallèle et qui vote : si au moins l'un réussit, on compte ça comme une victoire, on atteint 21,5 % WR.

Ce chiffre est au-dessus du plafond humain expert (≈ 20 %) sur ce jeu. Deux agents IA moyens, chacun à 14 % séparément, ensemble battent un humain expert.

Pour que ça soit utilisable en temps réel, il faut un sélecteur : à chaque partie, décider lequel des deux agents laisser jouer. Trois options :

  1. Vote par cluster : sur les clusters où X2 performe mieux historiquement, jouer X2. Sinon X1.
  2. Ensemble par action : à chaque tour, les deux agents proposent. On prend leur intersection si elle existe, sinon celui qui a la plus forte confiance.
  3. Meta-learner entraîné : un petit classifieur qui voit les features du labyrinthe et prédit lequel va gagner.

Première version de l'option 1 donne ~17-18 % WR en pratique (moins que l'upper bound de 21,5 % parce que le classifieur n'est pas parfait, mais déjà supérieur à X1 seul). C'est un chantier ouvert.

La leçon au-delà du jeu

C'est exactement la logique des ensembles en machine learning et en finance : deux modèles moyennement bons, si leurs erreurs ne sont pas corrélées, battent un modèle très bon. Bagging, boosting, random forests — la même idée depuis 20 ans.

Appliqué au POMDP, le Wiki Actif RAG ne fait pas mieux que le Layer Humain seul sur le score. Mais il fait mieux ailleurs — il gagne sur des configurations que le Layer Humain rate. La vraie valeur du wiki n'est pas additive, elle est différentielle.

Traduction Strategy Arena : on exploite déjà cette leçon. Les 60 stratégies de Strategy Arena ne sont pas toutes excellentes. Mais leurs erreurs ne sont pas corrélées (c'est littéralement le rôle d'Invictus, qui maximise la cross-pollination inter-stratégies). L'ensemble est meilleur que chaque stratégie individuelle. Le Wiki Actif ici démontre empiriquement ce principe sur un jeu qu'on comprend entièrement.

Hardware qui a fait tourner tout ça

Les 5000 parties d'apprentissage + les 1000 parties de benchmark A/B sont tournées sur CPU Ryzen (single-thread Python). Le clustering k-means et la compilation du wiki : milliseconds. L'injection run-time dans Oracle-X2 : ~5 ms par décision, invisible côté performance.

Pour refaire le benchmark à plus grande échelle (10 000 parties + cross-validation) : GPU CUDA indispensable. On a utilisé la RTX 4080 16 Go pour la brute force 12M parties des ablations précédentes.

GPU benchmarks
RTX 4080 Super 16 Go
Utilisé pour ablation + grid search 14580 configs.
CPU parallel
Ryzen 9 7950X
16 cœurs = 16 parties Oracle-X2 en parallèle.
Stockage
SSD NVMe 2 To
Logs de parties, wiki clusters, trajectoires complètes.
Théorie
Livres RL + POMDP
Pour comprendre les fondements théoriques.

Verdict

Le Wiki Actif RAG seul ne gagne pas plus. Mais couplé à l'agent original, il débloque 7 points de WR additionnels via complémentarité. 14,2 % + 13,8 % → 21,5 % en ensemble, au-dessus du plafond humain. La valeur n'est pas dans le score individuel, elle est dans la décorrélation des erreurs.

FAQ

Pourquoi X1 et X2 gagnent-ils sur des parties différentes ?

X1 fait entièrement confiance à son belief state bayésien à partir du ROAR. X2 a un prior biaisé par les patterns historiques du cluster. Sur un labyrinthe "atypique" (qui ne ressemble pas à son cluster), X2 est moins bon — mais X1 non plus ne l'est pas spécialement. Sur un labyrinthe "typique" de son cluster, X2 exploite l'information supplémentaire et gagne là où X1 s'est perdu. La différence est systématique, pas aléatoire.

Est-ce spécifique à Dragon Labyrinth ?

Non. N'importe quel POMDP où on peut clusteriser les états (topologie, régime de marché, style de conversation) peut bénéficier du Wiki Actif. On teste actuellement la même logique sur Pac-Man Symmetric (jeu similaire, 4 fantômes au lieu d'1) et sur Strategy Arena (clusters de régimes de marché crypto).

Pourquoi ne pas juste fine-tuner un plus gros modèle ?

Parce que le Wiki Actif se met à jour en continu, sans réentraînement. Chaque nouvelle partie enrichit le wiki automatiquement. C'est la même différence qu'entre un LLM pré-entraîné et un RAG actif : on choisit le RAG quand la donnée évolue plus vite que le coût d'entraînement. Sur Dragon, la donnée est générée à chaque run.

Quelle est la limite théorique ?

On n'est pas au plafond. Un troisième agent avec une stratégie orthogonale (par exemple un Oracle-X3 qui priorise l'exploration agressive plutôt que l'exploitation sûre) ajouterait probablement 3-5 points de WR en ensemble. L'upper bound informatique serait autour de 28-30 % WR — environ 1,5× l'humain expert.

Ça se publie ?

Oui. C'est un résultat net sur un benchmark reproductible. On prépare le repo avec les 5000 parties d'entraînement, le code du wiki et les scripts de validation. Intéressant pour workshops POMDP / multi-agent RL de fin 2026.

Articles liés de la série Dragon

Publié le 22 avril 2026 par OutilsIA. Données : 1000 parties A/B sur mêmes seeds. Fichier source : oracle_x2_bench.csv + wiki_dlb.json (5000 parties d'entraînement, 8 clusters k-means). Code : compile_wiki.py, oracle_x2.py.