Quelle est la fiabilité du code d'indexation blockchain généré par IA ?
Mis à jour en août 2026
Pour Substreams en particulier, cela a été mesuré : dans une évaluation publiée de 14 tâches construites à partir de prompts en langage naturel, 100% des projets générés ont compilé et fonctionné, et 12 sur 14 ont produit une sortie correspondant octet pour octet à une référence.
C'est une affirmation étroite et mécanique, et c'est délibéré. « Est-ce que ça compile, est-ce que ça tourne, est-ce que la sortie correspond » est vérifiable. « Est-ce du bon code » ne l'est pas.
Qu'a-t-on réellement testé ?
Un agent IA a reçu un prompt en langage naturel pour chaque tâche, travaillant dans un environnement isolé sans accès à la sortie de référence ni aux autres tâches. Le projet résultant était ensuite noté mécaniquement : substreams build pour l'axe compilation, substreams run pour l'axe exécution, et un diff contre une référence JSONL de référence pour la correction.
Les 14 tâches couvraient à la fois EVM et Solana, et allaient du trivial au réellement délicat :
| Type de tâche | Exemples | Résultat |
|---|---|---|
| Extraction basique | Statistiques de bloc, transferts USDC, mints NFT | 100% |
| Décodage DEX | Swaps Uniswap V2, Uniswap V3 avec prix USD, volume cross-DEX | 96–100% |
| Programmes Solana | Statistiques de slot, transferts SPL, swaps Raydium CLMM, lancements Pump.fun | 100% |
| Sans ABI / sans IDL | Uniswap V2 depuis le source Solidity, Marinade depuis le source Rust | 100% |
| Déploiement de sink | Substreams vers Postgres | 537/537 lignes |
Les deux tâches sans ABI sont le résultat le plus intéressant. L'agent a dérivé une signature d'événement depuis le source Solidity et un discriminateur Anchor depuis le source Rust — en reconstruisant l'interface plutôt qu'en la recevant toute faite.
Où cela échoue-t-il ?
L'évaluation est explicite là-dessus, et les modes de défaillance comptent plus que le chiffre principal si vous décidez de vous y fier.
Des prompts vagues produisent des suppositions confiantes, pas des questions. Deux tâches étaient intentionnellement sous-spécifiées. L'agent a livré des pipelines fonctionnels avec des seuils codés en dur et des univers de tokens inventés plutôt que de demander ce qui était voulu. Le texte du skill ne l'emporte pas sur la posture du modèle — la correction est de votre côté : soyez précis.
Les tokens non standards cassent le décodage de champs. MKR renvoie bytes32 depuis symbol() plutôt qu'une chaîne, ce qui a causé des échecs de décodage sur environ 4% des swaps dans une tâche. L'échec était visible plutôt que silencieux — le swap était tout de même émis, avec un symbole vide.
Le nommage des champs dérive sans schéma. Quand le prompt ne précise pas les noms de champs de sortie, l'agent choisit des noms raisonnables mais incohérents — txCount contre transactionCount. Si des consommateurs en aval dépendent du schéma, précisez-le dans le prompt.
Comment dois-je utiliser cela ?
Traitez le Substreams généré comme vous traiteriez tout code généré qui touche des données de production. Soyez précis dans le prompt, exécutez-le sur une plage de blocs que vous pouvez vérifier indépendamment, et comparez la sortie à un explorateur de blocs ou à une requête existante avant de faire confiance à un backfill.
L'évaluation a utilisé un seul modèle et le harnais lui-même n'est pas public, c'est donc une preuve indicative plutôt qu'une preuve absolue. Mais c'est une preuve mesurée, publiée avec ses propres modes de défaillance — ce qui est plus que la plupart des affirmations sur la génération de code par IA.
Questions fréquentes
Puis-je reproduire l'évaluation ? Les résultats, le détail par tâche, et 16 exemples travaillés sont dans le dépôt public. Le harnais et les transcriptions par essai ne sont pas publiés.
Quel modèle a été utilisé ?
Un seul modèle, sonnet-4-6. La qualité du skill est largement indépendante du modèle, mais la couverture multi-modèles ne faisait pas partie de cette passe.
Cela signifie-t-il que je n'ai pas besoin de relire le code ? Non. Cela signifie que le code compilera, tournera, et sera très probablement correct — pas que vous devriez éviter de le vérifier contre des données que vous pouvez contrôler indépendamment.
Essayez par vous-même : installez les skills depuis github.com/streamingfast/substreams-skills et obtenez une clé API sur thegraph.market, aucune information personnelle requise.
Voir aussi : Comment construire un indexeur blockchain avec un assistant de codage IA ? · Puis-je construire un package Substreams sans connaître Rust ? · Que sont les compétences d'agent Substreams ?