ExplorationBench : quand un agent doit découvrir les règles
Un test en deux mondes exécutables sépare le choix des expériences, la formulation des règles et leur application, avec de grands écarts entre essais.

RESEARCH DIARY · 27 SEP 2026
Le manuel dit que les positions commencent à zéro. L'outil, interrogé sur la position un, renvoie le deuxième caractère, ce qui colle au manuel. Puis il fait une chose que le manuel n'a jamais mentionnée. L'agent doit-il croire le document, jeter l'outil ou concevoir un test plus propre ? ExplorationBench transforme ce dilemme en score, dans deux mondes exécutables dont les règles cachées contredisent exprès celles que nous connaissons. C'est un preprint du 24 septembre sur des mondes logiciels, pas sur de vrais laboratoires.
Résultats rapportés
- ExplorationBench: Le retour de l'environnement fait beaucoup monter la précision. Rejouer en séquence fixe les meilleures sondes du système, non. Ce sont les tests des auteurs.
- Les résultats varient d'une exécution à l'autre, donc un seul score trompe. Publiez toute la distribution.
Le protocole
AlienCode est un petit langage à 31 règles à découvrir ; AlienLogic est un système de preuve à 24. Chaque monde comporte 70 tâches réservées à l’évaluation. Un système reçoit un manuel erroné, des exemples fixes et un schéma d’appel d’outil. Il choisit ses sondes pendant quatre tours ; à chaque étape, sans outil, il décrit les règles et résout les tâches. Dix systèmes effectuent trois trajectoires indépendantes par monde. Best@3 retient le meilleur score final des trois, et non la performance d’un essai ordinaire.

Une sonde discriminante
Dans AlienCode, les entiers subissent un XOR avec 27 : EMIT(100) affiche 127. PLUCK compte les positions à partir de un malgré le manuel. Comparez EMIT(100) et EMIT(101), puis deux positions voisines de PLUCK. Ne changez qu’un facteur à la fois : une sortie surprenante ne suffit pas à identifier la règle. Une bonne sonde départage deux hypothèses rivales.
Les résultats des auteurs
La meilleure trajectoire AlienCode atteint 87,6 % après quatre tours, contre 0,5–11,0 % pour autant de tours sans retour de l’environnement. Rejouer les meilleures sondes du système dans un ordre fixe réduit la précision de 9 systèmes sur 10. Deux règles de décalage d’indice interviennent dans 51 tâches sur 70 ; pourtant, les tâches dont les règles nécessaires sont correctement énoncées ne sont résolues qu’à 70,9 %. Dans AlienLogic, fournir toutes les règles donne 93–97 %, mieux que l’exploration autonome. Ces chiffres proviennent des auteurs, sans réplication indépendante ici.
Le piège du score unique
Pour le même système et le même budget, les scores finaux divergent jusqu’à 72,8 points de pourcentage. Six des 30 trajectoires AlienCode terminent au moins trois points sous une étape précédente. Best@3 dit si un essai sur trois peut réussir, pas ce que produira le prochain. Il faut montrer la distribution, le niveau initial et les étapes. La corrélation des classements entre les mondes annoncée par les auteurs est de 0,35.
Analyse et essai pratique
À mon sens, ce test sépare mieux la sélection des preuves de leur application qu’un questionnaire statique. Dans un bac à sable local, cachez un changement de parseur, donnez une spécification périmée, consignez les requêtes, puis évaluez dix entrées inédites après chaque tour. Répétez avec plusieurs départs ; comparez aux sondes fixes et à une condition sans retour. L’agent ne doit pas modifier le correcteur. Le pseudocode ci-dessous illustre la mesure, ce n’est pas le code de l’étude.
Limites
Les deux mondes sont synthétiques et déterministes : interpréteur ou vérificateur de preuve donnent une note exacte. La vraie science a des mesures bruitées, des conditions variables et parfois aucune vérité connue. L’article ne démontre pas la découverte d’une loi réelle. Énoncer une règle ne garantit ni sa bonne application ni une action sûre.
Pseudocode illustratif, pas le code de l’étude
# Explanatory pseudocode: do not expose held-out answers
for step in range(4):
observation = world.run(agent.choose_probe(history))
history.append(observation)
score[step] = grader.check(agent.answer(test_tasks, tools=False))
report(score, all_trajectories=True)Source et statut: ExplorationBench, arXiv:2609.30199 · full text. 24 Sep 2026, preprint; author-reported results.