"Si les LLMs modernes peuvent gérer 200k tokens, pourquoi ne pas simplement envoyer le diff avec le contexte pertinent et laisser le modèle comprendre ? Quel est l'intérêt de toute cette complexité d'agents ?"
Un prompt ne peut voir que ce que vous lui envoyez. Pour une revue de code significative, vous avez besoin de contexte provenant de toute votre base de code — imports, dépendances, fichiers connexes, tests, conventions.
La recherche prouve que déverser plus de contexte dans les LLMs nuit activement à la performance. C'est ce qu'on appelle la "dilution de contexte".
10-20%
baisse de performance avec trop de documents
Courbe en U
l'info au milieu est "perdue"
60-80%
taux de faux positifs dans les outils à déversement de contexte
Les agents ne se contentent pas de "lire les prompts mieux". Ils enquêtent activement votre base de code :
Récupérer uniquement les fichiers pertinents à la demande, ne pas tout déverser d'avance
"Je suspecte une incompatibilité de type" → rechercher les appelants → confirmer avec l'analyse statique
Suivre les pistes à travers les fichiers, creuser plus profondément quand quelque chose semble suspect
Exécuter des linters, vérificateurs de types et analyseurs pour vérifier les résultats avec de vraies données
Un prompt voit ce que vous lui donnez.
Un agent trouve ce dont il a besoin.
La différence entre une revue utile et du bruit n'est pas la quantité de contexte que vous avez — c'est d'avoir le bon contexte
Avant que la revue ne commence, nous construisons une carte de la façon dont les fichiers se connectent — imports, exports, définitions de types et chaînes d'appels
Chaque agent reçoit uniquement le contexte pertinent pour sa tâche — l'agent de sécurité obtient les flux d'authentification, pas le style UI
Les agents récupèrent du contexte supplémentaire uniquement quand nécessaire — suivant les pistes sans surcharge initiale
Le contexte central (diff, types) reste résident ; le contexte environnant (appelants, tests) chargé au besoin
200k tokens de tout — diff, fichiers complets, dépendances aléatoires...
Morceaux ciblés — diff + dépendances directes + patterns pertinents
Un seul appel LLM révisant du code a des limitations fondamentales
Limité au diff que vous fournissez
Pas d'itération ou de vérification
Aveugle aux dépendances et au contexte
Aucun moyen de valider les affirmations
Attention dispersée sur toutes les préoccupations
"Assurez-vous que les appelants sont mis à jour"
Navigue dans tout votre projet
Suit les pistes, creuse plus profond
Comprend les imports et dépendances
Exécute des analyseurs statiques pour confirmer
Chaque agent se spécialise dans un domaine
"3 sites d'appel ont des incompatibilités de type aux lignes 45, 89, 112"
La différence est entre spéculation et enquête.
Un agent est un système IA qui peut penser, agir et vérifier
Lire des fichiers, rechercher du code, exécuter des analyseurs statiques
Choisir quoi enquêter en fonction des résultats
Suivre les pistes, vérifier les hypothèses, creuser plus profond
Valider le raisonnement contre de vraies données
Quand diffray révise votre PR, les agents ne se contentent pas de "regarder le diff"
Suivre les imports pour comprendre comment le code modifié affecte tout le système
Examiner les tests, configs et documentation pour le contexte
Exécuter l'analyse statique pour confirmer que les problèmes suspectés existent réellement
Rechercher les définitions de types, contrats API et conventions
Considérez un changement de signature de fonction dans une PR :
"Ceci change le type de retour, assurez-vous que les appelants sont mis à jour"
Conseil générique. Pas de spécificités.
→ "Trouvé 3 changements cassants : src/api/users.ts:45, src/hooks/useAuth.ts:89, src/utils/validate.ts:112"
Pour vraiment comprendre les changements, vous devez voir comment ils s'intègrent dans toute la base de code
Nouvelle fonction formatUserName() ajoutée
Semble syntaxiquement correcte
Pas de bugs évidents dans ces 20 lignes
Verdict : "LGTM" — mais manquant complètement la vue d'ensemble
Cette fonction duplique utils/names.ts:formatName()
La fonction existante gère des cas limites que celle-ci manque
3 autres fichiers utilisent déjà l'utilitaire existant
Ceci brise la convention de nommage dans /docs/CONVENTIONS.md
Verdict : "Envisagez d'utiliser formatName() existant de utils/names.ts"
Le développeur réinvente-t-il la roue ? Une solution similaire existe-t-elle déjà dans la base de code ?
Ces changements suivent-ils les patterns établis ? Ou introduisent-ils une approche conflictuelle ?
Comment ces changements affectent-ils le reste du système ? Qu'est-ce qui dépend du code modifié ?
Les conventions d'équipe et les standards documentés sont-ils suivis ?
Un diff vous montre ce qui a changé. Le contexte complet de la base de code vous montre si cela aurait dû.
Des fondations puissantes permettant une vraie collaboration multi-agents
Chaque revue passe par un pipeline multi-phases, chaque phase optimisée pour son but
Clone
Récupérer le repo & checkout de la PR
Préparation
Construire le graphe de dépendances
Résumé
LLM résume les changements
Triage
Router les fichiers vers les agents
Règles
Charger & filtrer les règles
Revue
Analyse parallèle des agents
Dédupe
Fusionner & renoter
Validation
Vérifier & renoter
Rapport
Générer les commentaires PR
Clone
Récupérer le repo & checkout de la PR
Préparation
Construire le graphe de dépendances
Résumé
LLM résume les changements
Triage
Router les fichiers vers les agents
Règles
Charger & filtrer les règles
Revue
Analyse parallèle des agents
Dédupe
Fusionner & renoter
Validation
Vérifier & renoter
Rapport
Générer les commentaires PR
Le résultat
Un système multi-agents qui combine le raisonnement IA avec l'analyse concrète du code — fournissant des résultats précis et vérifiés au lieu de spéculation.
Insights basés sur les données de 50+ sources de recherche. Pourquoi les développeurs passent 5-6 heures hebdomadaires sur la revue, pourquoi le code généré par IA nécessite plus de vigilance, et comment implémenter des outils IA en lesquels les développeurs ont vraiment confiance.
Voyez comment l'enquête bat la spéculation. Essayez diffray gratuitement sur votre prochaine PR.