écrits/blog/2026/07
Blog30 juil. 2026·6 min

ARC-AGI-3 2026 : le harnais décide du score de l'agent

Le même modèle a obtenu 7,8 % puis 38,3 % sur ARC-AGI-3. La différence venait du harnais, pas du modèle — et ce que cela change pour vos agents en production.

Un modèle. Un benchmark. Deux scores : 7,8 % et 38,3 %.

Rien n'a changé dans les poids du modèle entre ces deux exécutions. Ce qui a changé, c'est le code enroulé autour de lui — la boucle qui lui transmet les observations, conserve son historique et décide de ce qu'il faut jeter quand le contexte s'allonge. Ce code, c'est le harnais, et il s'est avéré cette semaine valoir environ cinq fois le score du modèle lui-même.

Si vous construisez des agents, c'est la chose la plus utile qui soit arrivée au domaine du benchmarking depuis des mois.

Le benchmark que personne ne battait

ARC-AGI-3 a été lancé le 25 mars 2026 par la fondation ARC Prize — cofondée par François Chollet et Mike Knoop. Il rompt avec les générations précédentes d'ARC sur un point essentiel : il est interactif.

Les tâches ARC antérieures étaient des puzzles de grilles statiques avec des paires entrée-sortie visibles. ARC-AGI-3 place l'agent dans un environnement de jeu sans instructions, sans objectif énoncé et sans règles décrites. À l'agent de déterminer ce qu'est cet environnement, ce qui compte comme progrès, et comment y parvenir — exactement comme vous le feriez si on vous déposait devant une borne d'arcade inconnue avant de repartir.

Les environnements suivent un cahier des charges précis : entièrement résolubles par un humain, sans connaissance préchargée, sans indice caché, avec un retour d'information significatif et assez de nouveauté pour que la mémorisation ne serve à rien. Les quatre capacités mesurées méritent d'être notées, car ce sont précisément les quatre points faibles des agents en production :

  1. L'exploration — agir délibérément pour obtenir de l'information.
  2. La modélisation — transformer des observations brutes en un modèle du monde généralisable.
  3. La définition d'objectifs — identifier un état futur souhaitable sans qu'on vous le dise.
  4. La planification et l'exécution — tracer un chemin, puis le corriger selon les retours.

Au lancement, les humains ont résolu tous les environnements. Les modèles de pointe ont obtenu moins de 1 % : Gemini 3.1 Pro à 0,37 %, GPT-5.4 High à 0,26 %, Claude Opus 4.6 à 0,25 %, Grok 4.2 à zéro. Ce n'est pas un « à améliorer » — c'est une capacité que les modèles ne possédaient tout simplement pas.

ARC Prize 2026 a mis plus de 2 millions de dollars pour combler cet écart, avec un Grand Prix réservé au premier agent atteignant 100 %.

Puis les chiffres ont bougé

Quatre mois plus tard, le classement a changé de visage. Claude Opus 4.8 a atteint 1,5 %. Puis Claude Opus 5 a inscrit 30,2 % — environ vingt fois Opus 4.8, et le premier score qui suggère que la catégorie est réellement abordable.

GPT-5.6 Sol, lui, a obtenu 7,8 % avec le harnais officiel.

Puis OpenAI a publié un billet affirmant que ces 7,8 % ne mesuraient pas GPT-5.6 Sol du tout.

Le problème 7,8 % / 38,3 %

L'argument d'OpenAI est précis et, chose rare dans une querelle de benchmark, mécanique plutôt que rhétorique. Le harnais officiel d'ARC-AGI-3 faisait deux choses catastrophiques pour la manière dont GPT-5.6 Sol a été conçu :

Il jetait le raisonnement après chaque coup. Le harnais conservait la trace de ce que le modèle avait fait, mais supprimait le raisonnement privé expliquant pourquoi. Le modèle voyait « j'ai déplacé le bloc violet » sans conserver l'hypothèse qui rendait ce déplacement intéressant.

Il utilisait une troncature glissante. Dès que la conversation dépassait environ 175 000 caractères, le contenu le plus ancien était purement supprimé. Sur un benchmark dont l'objet même est d'accumuler de la connaissance sur un environnement inconnu au fil de nombreux tours, effacer les premières observations revient à effacer celles qui ont coûté le plus d'efforts.

Résultat, selon la formule d'OpenAI : un modèle qui « ressassait des actions isolées et ne parvenait pas à capitaliser sur ce qu'il avait déjà appris ».

OpenAI a réimplémenté le harnais avec deux réglages déjà disponibles dans l'API Responses — le raisonnement persistant et la compaction — puis a relancé le jeu de tâches publiques. Le score est passé de 13,3 % à 38,3 %, en consommant environ six fois moins de tokens de sortie par partie. Sur un environnement, le modèle a franchi les six niveaux, alors qu'aucun modèle de pointe du classement public n'avait passé le niveau un.

Moins de tokens et cinq fois le score. C'est la signature d'une correction, pas d'un contournement.

Ce que font réellement ces deux réglages

Le raisonnement persistant

Les modèles de raisonnement produisent une chaîne de pensée privée qui ne vous est pas renvoyée. Dans une boucle sans état basée sur chat completions, ce raisonnement s'évapore dès la fin de la réponse — le tour suivant repart de la seule transcription visible.

L'API Responses le conserve. Vous transmettez l'identifiant de la réponse précédente, et le raisonnement antérieur du modèle est reporté sur le tour suivant, chiffré et invisible pour le client mais disponible pour le modèle.

L'écart entre ces deux boucles n'a rien de cosmétique :

# Sans état : le raisonnement est jeté à chaque tour
history = []
for step in range(max_steps):
    history.append({"role": "user", "content": observe(env)})
    response = client.responses.create(
        model="gpt-5.6-sol",
        input=history[-WINDOW:],   # la troncature glissante supprime les plus anciens tours
    )
    act(env, response.output_text)
# Avec état : le raisonnement persiste d'un tour à l'autre
previous_id = None
for step in range(max_steps):
    response = client.responses.create(
        model="gpt-5.6-sol",
        input=[{"role": "user", "content": observe(env)}],
        previous_response_id=previous_id,   # le raisonnement antérieur est reporté
        store=True,
    )
    previous_id = response.id
    act(env, response.output_text)

Notez que la seconde boucle ne transmet que la nouvelle observation à chaque tour. La chaîne est maintenue côté serveur.

La compaction

La troncature supprime, la compaction résume. Lorsque le contexte approche de sa limite, le modèle produit un élément de compaction — une représentation chiffrée et économe en tokens de l'état et du raisonnement antérieurs, qui remplace l'historique brut au lieu de le jeter.

Le détail important : les modèles récents sont entraînés à produire ces éléments. Il ne s'agit pas d'un prompt de résumé greffé par-dessus, mais d'une opération native alignée sur la façon dont le modèle représente son état en interne.

# À titre indicatif — vérifiez la référence actuelle de l'API Responses
if response.usage.total_tokens > COMPACT_THRESHOLD:
    compacted = client.responses.compact(response_id=response.id)
    previous_id = compacted.id

C'est la leçon que nous avions déjà traitée dans le mythe du contexte 1M : c'est le plafond du harnais, et non la fenêtre annoncée, qui définit l'espace où vit votre agent — et la manière dont ce plafond est appliqué détermine si les longues sessions accumulent de la connaissance ou la perdent.

La frontière entre un réglage et une triche

L'objection est évidente : si chaque laboratoire apporte son propre harnais, le classement mesure des budgets d'ingénierie plutôt que des modèles.

La position d'ARC Prize est que les lignes principales du classement doivent être « modèle + réglages de raisonnement », pas des harnais complets de type Codex ou Claude Code, et que toute comparaison exige une méthodologie unique entre fournisseurs. Chollet a tracé la ligne plus précisément : les harnais « conçus sur mesure pour résoudre le benchmark » sont interdits, tandis que les « réglages d'API généralistes accessibles à tous les utilisateurs » sont admis — à condition de publier les réglages et le coût en toute transparence.

Cette ligne est défendable, et la raison pour laquelle elle compte est inconfortable. Dans les propres tests d'ARC Prize, un harnais optimisé pour des environnements publics précis a poussé Opus 4.6 à 97,1 % sur un environnement et 0 % sur un autre. Les gains issus d'un réglage propre à la tâche ne se généralisent pas du tout. Ceux qui viennent du simple fait de ne pas jeter la mémoire du modèle, eux, devraient se généraliser.

Le raisonnement persistant et la compaction sont des fonctionnalités documentées, accessibles à tous d'un simple réglage. On est plus proche de « nous faisions tourner le modèle de travers » que de « nous avons optimisé pour le test ». Mais l'incident laisse un vrai problème : un benchmark censé mesurer des modèles mesure en pratique « modèle + harnais », et il n'existe pas de harnais neutre. Chaque choix — politique de troncature, persistance du raisonnement, schéma d'outils, logique de réessai — pèse dans la balance en faveur de quelqu'un.

Hacker News s'est divisé sans surprise entre « percée » et « benchmaxxing ». Les deux camps décrivent le même fait par deux côtés différents.

Ce qu'il faut en retirer pour vos agents

Quelle que soit votre conclusion sur le classement, la leçon d'ingénierie se transfère telle quelle :

  • Ne laissez jamais une fenêtre glissante supprimer l'état en silence. Si votre boucle tronque à partir d'un seuil de caractères ou de tokens, vous effacez en premier ce que votre agent a eu le plus de mal à apprendre. Résumez ou compactez à la place. C'est le changement au meilleur rapport effort/gain dans la plupart des boucles d'agent.
  • Faites persister le raisonnement entre les tours si votre fournisseur le permet. Un agent qui oublie pourquoi il a agi le redérive, mal, à chaque tour. C'est exactement le mode d'échec du « ressassement d'actions isolées » — il coûte des tokens tout en dégradant la sortie.
  • Mesurez votre harnais, pas seulement votre modèle. Avant de changer de modèle pour cause de mauvais résultats, relancez la même tâche avec persistance du raisonnement et compaction activées. Dans certaines boucles, un facteur 5 est disponible gratuitement. Nos notes sur l'ingénierie de harnais en production vont plus loin.
  • Traitez les scores publiés comme conditionnés au harnais. Un score est une affirmation à propos d'une configuration. Quand un fournisseur en cite un, la bonne question est : quelle boucle l'a produit ? C'est le même scepticisme que nous appliquions aux benchmarks de code cassés.
  • Un contexte plus long n'est pas la solution. La compaction a battu la troncature en consommant six fois moins de tokens. Le gain vient du fait de garder les bonnes choses, pas d'en garder davantage. C'est de l'ingénierie du contexte, pas de l'achat de capacité.

La conclusion qui dérange

ARC-AGI-3 a été conçu pour tester si un agent sait explorer un monde inconnu, s'en construire un modèle et agir dessus sur un long horizon. Il s'avère qu'une bonne part de ce qui ressemblait à une capacité manquante était en réalité une mémoire manquante — jetée par la tuyauterie située entre le modèle et l'environnement.

Cela devrait vous rendre un peu plus optimiste sur les modèles de pointe, et nettement moins confiant sur votre propre boucle d'agent. La plupart des agents en production aujourd'hui tronquent au lieu de compacter, et redémarrent chaque tour depuis une transcription vidée de son raisonnement.

Si vous accusiez le modèle, vérifiez d'abord le harnais. C'est moins cher à corriger, et ce mois-ci cela valait trente points.


Sources : ARC Prize — ARC-AGI-3, OpenAI — How two settings tripled our ARC-AGI-3 scores, The Decoder, Guide Compaction OpenAI