J'ai arrêté d'utiliser Grep et mon agent est devenu 10 fois plus rapide

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Il existe un plugin MCP appelé Claude Context qui indexe l'intégralité de votre base de code
00:00:06dans une base de données vectorielle, ce qui permet à votre agent de codage d'obtenir rapidement
00:00:11le code exact dont il a besoin, sans deviner avec grep ou glob en espérant trouver le bon fichier.
00:00:15Il analyse même votre code avec des AST et utilise une approche de recherche hybride,
00:00:20combinant vecteurs sémantiques et recherche par mots-clés, ce qui réduit le contexte de 40%.
00:00:24Mais il nécessite un compte cloud Zilliz et une clé OpenAI pour les embeddings, même si vous utilisez le code de Claude.
00:00:30Alors, l'effort et le coût supplémentaires en valent-ils la peine pour économiser des jetons ?
00:00:34Abonnez-vous et découvrons-le.
00:00:35D'accord, donc Claude Context, pas sûr du nom, est créé par Zilliz, une entreprise
00:00:43fondée par les créateurs de Milvus, une base de données vectorielle très performante.
00:00:47Il se connecte à votre agent via MCP, ce qui signifie qu'il peut fonctionner avec n'importe quel harness d'agent
00:00:52et pas seulement avec Claude Code.
00:00:54Mais il effectue trois tâches assez complexes pour rendre votre code facilement trouvable.
00:00:58D'abord, il utilise TreeSitter pour parcourir tout le code, créant des blocs de fonctions
00:01:03et de classes, ce qui prend en charge neuf langages, dont TypeScript, Python, Rust et Go.
00:01:08Ensuite, il utilise un Merkle DAG personnalisé pour hacher chaque fichier avec des instantanés JSON, ce qui signifie qu'il ne réindexe
00:01:15que les fichiers modifiés et non l'ensemble de la base de code.
00:01:18Et lorsque vous voulez réellement rechercher dans le code, il effectue deux types de recherches
00:01:22simultanément : une recherche vectorielle pour trouver la signification sémantique du code et un index BM25
00:01:29pour une correspondance exacte par mots-clés.
00:01:31Tout cela permet de réduire le contexte jusqu'à 40%, ce qui est énorme pour les grandes bases de code.
00:01:37D'ailleurs, voyons cela en action en le testant sur la base de code de VS Code, qui compte
00:01:42environ 1,5 million de lignes de code.
00:01:44Dans le dépôt cloné de VS Code, je vais utiliser Open Code avec GPT-4 Turbo parce que
00:01:50je ne veux pas épuiser mes limites hebdomadaires de Claude Pro.
00:01:53Et pour configurer le serveur MCP, que vous pouvez voir ici, j'ai déjà ajouté
00:01:58les informations pertinentes à mon fichier JSON Open Code.
00:02:01Pour ces informations ici, vous pourriez exécuter Milvus localement, mais j'ai utilisé le cloud Zilliz.
00:02:06J'ai donc récupéré ma clé API et créé un cluster.
00:02:10C'est un cluster AWS et j'ai obtenu les points de terminaison publics ici.
00:02:14Puisque nous parlons de clusters, j'ai essayé d'utiliser la version gratuite d'abord, mais j'ai eu
00:02:19des problèmes de timeout.
00:02:20J'ai donc dû prendre une version serverless, qui est payante, mais qui a beaucoup mieux fonctionné.
00:02:25Une fois le serveur MCP configuré, assurez-vous d'utiliser une version de Node inférieure
00:02:28à 24, mais supérieure ou égale à 20.
00:02:31J'utilise actuellement la version 22 pour ce projet.
00:02:34Cela vous donnera accès à quatre outils MCP : indexer le code, rechercher dans le code, vider l'index et obtenir
00:02:39l'état de l'index.
00:02:40La première chose à faire est d'indexer la base de code, et nous pouvons le faire avec cette invite.
00:02:44Mais avant de valider, regardons combien d'argent nous avons déjà dépensé en embeddings
00:02:48via OpenAI : juste un centime, pour tester une base de code de 23 000 lignes.
00:02:53Nous pouvons également voir dans notre cluster que nous avons déjà des informations de la base de code indexée.
00:02:58Si nous indexons cette base de code maintenant, cela prend du temps et commence l'indexation en
00:03:02arrière-plan.
00:03:03À ce stade, je ne recommande pas d'effectuer de recherches.
00:03:05Comme il s'agit d'une grande base de code, l'indexation sera longue.
00:03:09Je reviendrai donc plus tard, une fois l'indexation terminée.
00:03:11Après environ 50 minutes, l'indexation est terminée et nous voyons que nous avons un nouveau bloc
00:03:16dans notre cluster avec plus de 223 000 entrées chargées.
00:03:21À titre de référence, le code que j'ai testé avec 23 000 lignes de code compte environ
00:03:271 000 lignes d'entrées et a pris moins d'une minute à indexer.
00:03:32Quant à notre utilisation d'OpenAI, nous sommes passés d'un centime à 1,06 $, ce qui est beaucoup, mais je ne
00:03:38pense pas que les gens parcourent régulièrement 1,5 million de lignes de code.
00:03:42Okay, voyons la vitesse de recherche.
00:03:45Ici, nous avons une instance d'Open Code utilisant le serveur MCP Claude Context, et ici
00:03:49nous en avons une sans serveurs MCP.
00:03:52Elle utilisera donc les outils réguliers grep et glob pour fouiller dans le code.
00:03:56Nous lui donnerons comme consigne d'utiliser Claude Context pour trouver le point d'entrée au moment où ce projet
00:04:00démarre.
00:04:01Voyons combien de temps cela prend.
00:04:02D'accord, il utilise l'outil d'indexation, puis l'outil de recherche.
00:04:06Le tout a pris environ 19 secondes pour parcourir ce projet complet et trouver
00:04:10le fichier main.ts.
00:04:11Maintenant, nous donnons à cet Open Code une instruction similaire et il trouve la réponse
00:04:15en 14 secondes.
00:04:16Pour cette requête, utiliser simplement l'outil classique est beaucoup plus rapide.
00:04:20Lançons une nouvelle session.
00:04:21Je vais lui donner une nouvelle instruction : quelle fonction ouvre un nouveau document sans titre ?
00:04:26Celle-ci a pris un peu plus de temps, 40 secondes, pour trouver la fonction principale avec le numéro de ligne
00:04:30et a utilisé environ 23 000 jetons.
00:04:32L'autre instance l'a fait en 12 secondes et a utilisé 18 000 jetons, mais il semble qu'elle ait trouvé
00:04:37un fichier différent.
00:04:38En fait, Claude Context donne beaucoup plus d'informations en montrant le code et d'autres fichiers liés à
00:04:44l'ouverture de l'éditeur.
00:04:45Je vais donc leur demander de me montrer le code exact.
00:04:48Claude Context répond en 23 secondes avec le code, et l'instance Open Code sans Claude Context
00:04:52répond en 49 secondes, soit près du double du temps.
00:04:56Et elle arrive exactement au même code que Claude Context, ce qui me donne une idée.
00:05:00Je vais lui donner une instruction plus large et généralisée : regarde dans le code et explique-moi
00:05:04comment ce projet fonctionne.
00:05:06Claude Context termine en 49 secondes avec 41 000 jetons, et l'autre instance termine
00:05:11plus rapidement et consomme moins de jetons.
00:05:13Mais si nous examinons le résultat produit, nous voyons qu'il y a beaucoup plus de détails de la part de Claude
00:05:17Context, avec l'architecture en couches et même des informations sur l'application Electron
00:05:22et les processus qu'elle utilise.
00:05:23L'option sans Claude Context donne aussi des informations sur l'architecture, mais elles ne sont
00:05:28pas aussi détaillées que les autres.
00:05:30En fait, je dirais que Claude Context est très performant pour obtenir
00:05:34des informations sur le code de manière rapide et très détaillée.
00:05:37Regardez ça.
00:05:38Suite à cette instruction, j'ai posé une question de suivi pour obtenir plus d'informations sur le processus
00:05:43principal de l'application Electron, comme indiqué ici.
00:05:47Après cette instruction, cela a pris environ 1 minute et 47 secondes, mais regardez tous ces
00:05:52détails.
00:05:53Cela a commencé par la séquence de démarrage, puis la phase un, la création et
00:05:58l'initialisation du service.
00:05:59Et nous avons beaucoup plus pour la phase deux, l'application de code, avec toutes les références
00:06:04aux fichiers pertinents.
00:06:05Nous avons app.ts à la ligne 185, et nous pourrions continuer encore et encore.
00:06:10Alors que sans Claude Context, OpenCode parcourt toujours tous les fichiers en utilisant plusieurs
00:06:15sous-agents.
00:06:16C'est trompeur, car nous ne pouvons pas voir exactement combien de jetons chaque sous-agent
00:06:21utilise.
00:06:22Mais si nous attendons un peu et revenons, après environ cinq minutes, OpenCode
00:06:26répond avec beaucoup d'informations sur le processus Electron, mais ce n'est pas autant
00:06:31que ce que Claude Context a fourni, et cela a pris cinq fois plus de temps.
00:06:34Peut-être qu'en utilisant un modèle plus intelligent comme Opus 4.7 avec un effort élevé, il obtiendrait
00:06:40plus d'informations, mais cela prendrait toujours beaucoup de temps et utiliserait beaucoup de jetons.
00:06:44Ce sont ces différences (cinq minutes contre une minute) que j'observais quand
00:06:48je testais avant d'enregistrer avec la base de code de 23 000 lignes.
00:06:51Au final, difficile de dire qui est le vainqueur incontestable.
00:06:54Claude Context a toujours fourni plus de détails, mais ce n'était pas toujours le plus rapide
00:07:00ni le plus efficace en termes de jetons.
00:07:01Et pour les grandes bases de code, l'indexation prenait beaucoup de temps.
00:07:05Cependant, pour les bases de code de taille moyenne (20 à 30 000 lignes), l'indexation
00:07:10est vraiment rapide.
00:07:11Et la différence de détail dans les résultats est très apparente.
00:07:14En fait, je préférerais largement utiliser Claude Context pour des bases de code de taille moyenne
00:07:20plutôt que sur de très grandes bases.
00:07:22C'est donc à prendre en compte.
00:07:23Mais honnêtement, c'est plus un excellent outil de vente pour Zilliz, car avant d'utiliser Claude
00:07:27Context, je n'avais jamais entendu parler d'eux, et maintenant ils ont un nouveau client payant.
00:07:31Même si cela a pris du temps à configurer et que l'indexation de grandes bases de code a pris un
00:07:36très long moment.
00:07:37En tant que personne qui examine régulièrement des bases de code open source et pose des questions, je pense
00:07:42que c'est un outil que je vais utiliser beaucoup plus souvent.
00:07:44Pour une base de code de taille moyenne, le forfait serverless n'est pas trop cher
00:07:49et les embeddings d'OpenAI ne coûtent pas trop cher non plus.
00:07:52Je suis donc prêt à accepter le coût.
00:07:53En parlant de récupération de données et d'IA.
00:07:55Si vous voulez apprendre à construire un très bon système RAG à partir de zéro qui fonctionne
00:07:59réellement, alors regardez cette vidéo d'Andrej.
00:08:02Et si vous êtes fan de Star Wars, vous aimerez tout particulièrement cette vidéo.

Key Takeaway

L'utilisation de Claude Context avec une base de données vectorielle Zilliz améliore significativement la précision et la rapidité des agents de codage en remplaçant les recherches traditionnelles par une approche hybride sémantique et par mots-clés.

Highlights

  • Le plugin Claude Context indexe le code dans une base de données vectorielle Zilliz pour éviter les recherches imprécises via grep ou glob.

  • L'approche de recherche hybride combinant vecteurs sémantiques et index BM25 réduit le contexte nécessaire de 40 %.

  • L'indexation de 23 000 lignes de code prend moins d'une minute, tandis qu'une base de 1,5 million de lignes nécessite environ 50 minutes.

  • L'utilisation de Claude Context permet d'obtenir des réponses détaillées sur l'architecture logicielle 5 fois plus rapidement que les méthodes classiques sur de grandes bases de code.

  • Le coût des embeddings OpenAI pour indexer 23 000 lignes de code s'élève à seulement un centime, contre 1,06 $ pour 1,5 million de lignes.

Timeline

Fonctionnement technique de Claude Context

  • Claude Context utilise TreeSitter pour structurer les fonctions et classes dans neuf langages, incluant Python, Rust et TypeScript.
  • Un système Merkle DAG assure l'efficacité du processus en réindexant uniquement les fichiers modifiés plutôt que l'ensemble du projet.
  • La recherche hybride combine vecteurs sémantiques et index BM25 pour une précision accrue.

Ce système MCP (Model Context Protocol) s'intègre à divers agents de codage. Il repose sur l'indexation par blocs de code et des instantanés JSON pour optimiser la gestion des mises à jour dans le code source.

Performance et coûts d'indexation

  • L'indexation d'une base de 1,5 million de lignes de code prend 50 minutes via un cluster Zilliz serverless.
  • Les coûts des embeddings OpenAI varient d'un centime pour 23 000 lignes à 1,06 $ pour 1,5 million de lignes.
  • La configuration exige une version de Node.js comprise entre 20 et 24.

Le processus d'indexation nécessite des ressources serveur, préférablement via des solutions payantes pour éviter les timeouts rencontrés sur les versions gratuites. Une fois indexée, la base de données permet un accès rapide aux informations contextuelles lors des requêtes ultérieures.

Comparaison des résultats de recherche

  • Claude Context produit des réponses plus détaillées sur l'architecture, incluant les processus Electron et les dépendances de fichiers.
  • Sur des tâches complexes, Claude Context répond en moins de 2 minutes là où les méthodes classiques prennent 5 minutes.
  • La méthode classique basée sur grep reste parfois plus rapide pour des requêtes simples ou très spécifiques.

Les tests montrent que si les outils standards sont parfois plus véloces pour localiser un fichier précis, l'approche vectorielle surpasse largement les méthodes classiques lorsqu'il s'agit d'expliquer le fonctionnement global ou les séquences de démarrage d'un projet.

Évaluation et recommandations

  • Claude Context est idéal pour des bases de code de taille moyenne, entre 20 000 et 30 000 lignes.
  • La complexité de la configuration initiale est compensée par la qualité et la profondeur des réponses fournies par l'agent.

Pour les utilisateurs qui manipulent régulièrement du code open source, l'outil représente un gain net en termes de compréhension architecturale malgré le coût et le temps de mise en place initial.

Community Posts

View all posts