Lorsqu’un agent IA intervient sur un monorepo d’infrastructure ou une plateforme applicative de plusieurs centaines de fichiers, son réflexe par défaut est coûteux : multiplier les grep aveugles et ingérer des milliers de lignes dans sa fenêtre de contexte. Non seulement cela explose la latence et la consommation de tokens, mais cela dégrade la précision du modèle (effet Lost in the Middle).
C’est exactement le problème que résout Graphify (safishamsi/graphify) : un moteur open-source qui extrait l’arbre syntaxique abstrait (AST) de votre codebase pour construire un graphe de connaissances persistant (graph.json), interrogeable localement en quelques millisecondes.
1. Pourquoi un graphe AST bat la recherche vectorielle (RAG) sur du code
Contrairement à un RAG vectoriel classique qui découpe les fichiers en chunks arbitraires de 500 tokens et cherche par similarité cosinus, Graphify modélise les relations structurelles exactes du programme :
- Appels de fonctions et dépendances croisées (
caller -> callee) ; - Détection des God Nodes : identification immédiate des modules centraux à fort couplage ;
- Plus court chemin d’impact (
shortest_path) : savoir exactement quelle route FastAPI impacte quelle table SQLite/MongoDB ou quel composant WebView Android.
2. Souveraineté : exécution 100 % locale (--code-only)
Sur un environnement d’ingénierie souverain, la règle est stricte : aucun code source ni fichier de configuration ne doit transiter vers un service d’indexation tiers non maîtrisé. Graphify est donc configuré avec une règle impérative dans .agents/rules/graphify.md :
# Construction et mise à jour incrémentale purement locale (AST uniquement, zéro coût API)
graphify update . --code-only
# Trouver le chemin d'exécution entre deux composants
graphify path "api_router" "auth_middleware"
# Explorer un concept ciblé sans lire 40 fichiers bruts
graphify explain "token_validator"
3. Intégration dans le workflow des agents
Avant toute modification multi-composants, l’agent interroge d’abord graphify query ou graphify path pour obtenir le sous-graphe exact des appelants (callers) et des tests associés. Après chaque commit modifiant la structure du code, graphify update . maintient le graphe synchronisé en moins de 2 secondes.
Bilan opérationnel
- Réduction de 70 % des lectures de fichiers inutiles lors des phases d’investigation (
DEFINE) ; - Zéro oubli d’appelant lors des refactorings critiques (combiné avec la discipline Ponytail) ;
- Confidentialité totale : le graphe reste hors Git (
graphify-out/ignoré) et purement local au serveur.
Dépôt GitHub Officiel
- Graphify (AST Codebase Knowledge Graph) : https://github.com/safishamsi/graphify
