Points Clés
- RepoReaper utilise un découpage conscient de l'AST et de la logique pour l'analyse de code.
- Il utilise une boucle ReAct pour récupérer JIT les dépendances de fichiers manquantes depuis GitHub.
- Le backend est entièrement AsyncIO et persiste l'état via ChromaDB.
- Il emploie une recherche hybride (BM25+Vector) et génère des diagrammes Mermaid.
Résumé Rapide
RepoReaper est un nouvel agent d'audit de code conçu pour relever le défi de la fragmentation du contexte dans les systèmes de Génération Augmentée par Récupération (RAG). Développé en utilisant Python et AsyncIO, il se distingue des outils de discussion standard avec les dépôts en simulant le workflow d'un ingénieur senior. L'outil se concentre sur le maintien d'un contexte complet lors de l'analyse de code.
Les capacités clés incluent l'analyse des Abrés de Syntaxe Abstraite (AST) de Python pour un découpage conscient de la logique et l'utilisation d'une boucle ReAct pour récupérer Just-In-Time (JIT) les dépendances de fichiers manquantes depuis GitHub. Il utilise un mécanisme de recherche hybride combinant BM25 et la recherche vectorielle, soutenu par ChromaDB pour la persistance de l'état. De plus, il génère des diagrammes Mermaid pour visualiser l'architecture, offrant un outil robuste pour les développeurs et les auditeurs.
Aborder la Fragmentation du Contexte RAG
RepoReaper a été créé pour résoudre un problème spécifique dans l'analyse de code assistée par IA : la fragmentation du contexte. Lorsque les outils RAG standard traitent de grands dépôts de code, ils perdent souvent le flux logique entre les différents fichiers et fonctions. Cela conduit à des réponses incomplètes ou inexactes. Le développeur a construit RepoReaper pour combler cette lacune en adoptant une approche plus sophistiquée pour l'ingestion et la récupération du code.
L'outil simule le processus cognitif d'un ingénieur senior. Au lieu de traiter le code comme des blocs de texte isolés, il comprend les relations structurelles au sein du dépôt. Cette approche garantit que lorsque l'utilisateur interroge le dépôt, l'IA a accès à l'image complète, y compris les dépendances nécessaires qui pourraient ne pas être immédiatement évidentes.
Les méthodes principales utilisées pour maintenir le contexte incluent :
- Analyse de l'AST : Analyse de la structure du code plutôt que du simple texte.
- Découpage conscient de la logique : Regroupement du code basé sur des blocs logiques.
- Recherche hybride : Utilisation de la recherche par mots-clés (BM25) et sémantique (Vectorielle).
Architecture Technique et Workflow 🏗️
L'architecture de RepoReaper repose sur des techniques avancées pour récupérer et traiter le code dynamiquement. Au cœur de son workflow se trouve la boucle ReAct, un cadre de raisonnement qui permet à l'agent de penser, d'agir et d'observer. Cette boucle permet à l'outil d'identifier lorsqu'il manque de contexte nécessaire et de déclencher une action de récupération pour extraire des fichiers spécifiques depuis un dépôt GitHub.
Une fois les fichiers récupérés, le système effectue un chargement JIT (Just-In-Time). Cela garantit que les dépendances ne sont récupérées que lorsque cela est nécessaire, optimisant ainsi les performances et réduisant le traitement des données inutiles. Le backend, construit sur AsyncIO, gère ces opérations de manière concurrente, permettant une analyse rapide et réactive même sur de grands dépôts.
De plus, le système persiste son état en utilisant ChromaDB. Cela permet à l'agent de se souvenir des interactions précédentes et de maintenir une compréhension cohérente du dépôt de code au fil des sessions. L'intégration de ChromaDB garantit que les connaissances acquises lors d'un audit sont conservées.
Visualisation et Déploiement
Au-delà de l'analyse textuelle, RepoReaper offre des informations visuelles sur le dépôt. Il génère automatiquement des diagrammes Mermaid pour visualiser l'architecture du code audité. Cette fonctionnalité est particulièrement utile pour comprendre les conceptions de systèmes complexes et les dépendances en un coup d'œil, fournissant une vue d'ensemble de haut niveau qui complète l'analyse détaillée du code.
L'outil est disponible en tant que projet open-source sur GitHub. Il a été partagé avec la communauté de développeurs pour recueillir des commentaires et des contributions. Le projet met en évidence le potentiel de la combinaison de l'analyse de l'AST avec la récupération dynamique des dépendances pour créer des assistants de codage plus intelligents.
Conclusion
RepoReaper représente une avancée significative dans l'audit de code automatisé. En abordant le problème spécifique de la fragmentation du contexte grâce à l'analyse consciente de l'AST et à la récupération dynamique des dépendances, il offre une alternative plus fiable aux outils existants. Sa capacité à simuler le workflow d'un ingénieur senior en fait un atout précieux pour les développeurs souhaitant comprendre ou auditer des dépôts de code Python complexes.
Avec des fonctionnalités comme la recherche hybride, la persistance de l'état via ChromaDB et la visualisation architecturale, RepoReaper fournit une suite complète d'outils pour l'analyse de code. À mesure que le projet évolue, il est susceptible de définir un nouveau standard pour la manière dont l'IA interagit avec les dépôts logiciels.




