Sverklo, un serveur de recherche de code hébergé localement, permet désormais aux développeurs d'inspecter chaque étape d'une requête – de la découverte de fichiers au raisonnement par graphe de symboles – avant qu'un agent d'IA n'agisse sur le résultat.
Pourquoi les agents de codage actuels échouent
La plupart des outils de génération de code traitent un dépôt comme un amas de texte géant. Ils intègrent des extraits, effectuent une recherche de similarité et renvoient le fragment ayant le score le plus élevé. Lorsque le fragment est obsolète, hors de propos ou n'est qu'un simple nom de fichier, l'agent ne peut pas indiquer sa source. Le mode de défaillance n'est pas un mot manquant ; c'est une couche de contexte manquante qui indique à un humain d'où provient l'information et si elle est toujours applicable.
Le modèle de vérification à quatre couches de Sverklo
Sverklo se positionne comme un serveur d'« hypothèse d'ingénierie » qui superpose la recherche traditionnelle à l'analyse structurelle :
- Découverte de fichiers – L'index lit le fichier
.gitignoreet les autres fichiers d'exclusion. Avant de faire confiance à un résultat, vous pouvez interroger l'index pour voir quels chemins ont été réellement scannés. - Structure du code – Les symboles résident dans un graphe qui enregistre les définitions, les imports et les relations d'appel. Une recherche renvoie l'objet symbole, et pas seulement un chemin de fichier, afin que vous puissiez confirmer que la surface de l'API référencée est la bonne.
- Livraison du contexte – Lorsque vous définissez un budget de tokens, Sverklo renvoie une carte des extraits ayant contribué à la réponse. La carte inclut un champ
found_byqui vous indique si la correspondance provient d'une recherche par mots-clés BM25, d'embeddings générés par ONNX ou du graphe de symboles classé par PageRank. - Registre de mémoire – Le serveur journalise chaque décision. Si un fichier change, le registre marque l'entrée mémoire correspondante comme obsolète, indiquant si la réponse mise en cache est toujours valide.
Comment fonctionne la pile de récupération
Sverklo ne repose pas uniquement sur les embeddings. Il utilise un moteur de mots-clés BM25 classique pour les correspondances exactes, augmente ces résultats avec des embeddings vectoriels basés sur ONNX pour la similarité sémantique, puis applique un algorithme PageRank sur le graphe de symboles pour faire remonter les définitions à fort impact. En exposant la méthode ayant produit chaque résultat, les développeurs peuvent repérer les divergences — par exemple, un résultat BM25 que le modèle d'embedding juge non pertinent — et choisir le signal auquel faire confiance.
Cas d'utilisation pratiques
- Explorer des bases de code inconnues – Passez du nom d'une fonction à tous ses appelants sans utiliser manuellement
grep. - Cartographier les graphes de dépendances – Visualisez les chaînes d'importation qui s'étendent sur plusieurs packages.
- Estimer l'impact d'un refactoring – Voyez quels symboles seraient affectés si un fichier donné change.
- Répondre à des questions sémantiques – Demandez « que fait cet utilitaire ? » et obtenez un extrait concis et sourcé.
Pièges à surveiller
- Fraîcheur des données – Un réindexage peut se terminer alors que l'horodatage de l'index reste ancien. Interrogez toujours l'endpoint
index-statusau lieu de supposer que la dernière exécution est à jour. - Enregistrement du projet – Lors de la désinscription d'un projet, utilisez le nom de projet interne fourni par Sverklo, et non le chemin absolu du système de fichiers, sinon l'opération échouera silencieusement.
- Particularités du nommage des outils – Les hôtes MCP préfixent parfois deux fois le nom du projet, produisant des identifiants tels que
sverklo_sverklo_impact. Vérifiez bien le nom avant d'invoquer un outil.
À essayer ensuite
- Clonez un dépôt jetable et lancez Sverklo localement.
- Effectuez une recherche de symbole simple et inspectez le champ
found_by. - Modifiez un fichier source et relancez la recherche ; notez comment le registre de mémoire marque l'entrée comme obsolète.
- Intégrez la vérification de l'état de l'index (
index-status) dans votre script de build pour détecter automatiquement les index obsolètes.
À retenir
Sverklo transforme un moteur de recherche de code en une chaîne de preuves auditable. En obligeant les développeurs à vérifier la couverture des fichiers, l'exactitude des symboles, la méthode de récupération et la fraîcheur de la mémoire, il leur permet de décider si une suggestion pilotée par l'IA est digne de confiance avant qu'elle n'atteigne la production.
