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.