Ich hab da erstmal eine Weile dasitieren müssen, als ich die Meldung gesehen habe. Nicht, weil sie so kompliziert wäre – im Gegenteil. Sondern weil sie genau die eine Sache beschreibt, die ich mir beim Coden schon so oft gewünscht habe und die bisher einfach niemand so richtig hinbekommen hat.
Kurz zusammengefasst: das Qwen-Team hat zg (zvec-grep) als Open Source rausgebracht – ein lokales Suchwerkzeug für Menschen und Agenten. Der Clou ist die Kombination. ripgrep kann dieses legendär schnelle, präzise Text-Suchen. Aber ripgrep sucht halt nach dem, was du schon weißt: einen Regex, ein Wort, einen Teilstring. Das ist super, solange du die Funktion oder den Fehlerstring kennst. Das Problem ist nur: Oft kennt man genau das nicht.
Genau da setzt zg an. Es verbindet ripgrep’s exakte Volltextsuche mit Vektor-Suche, BM25 und hybrider Suche. Das bedeutet im Alltag: Ich kann in natürlicher Sprache beschreiben, was ich suche – so etwas wie „die Stelle, wo wir die Rate-Limits für die API prüfen“ – und zg liefert mir nicht nur eine vage Trefferliste, sondern führt mich bis zur genauen Code-Stelle oder dokumentiert die exakte Position. Ohne dass ich vorher den Funktionsnamen oder die Fehlermeldung im Kopf haben muss. Das klingt nach einer dieser Ideen, die so offensichtlich sind, dass man sich fragt, warum sie nicht längst alle machen.
Ich will ehrlich sein: Der Quelltext, den ich dazu habe, ist dünn. Ich kenne keine konkreten Zahlen, keine Benchmarks, nichts über die Performance im Vergleich. Die Meldung nennt es schlicht ein „lokales Suchwerkzeug, das Menschen und Agenten dient“. Und gerade der zweite Teil ist interessant. Gebt einem Coding-Agenten die Fähigkeit, intent-basiert zu suchen, und er muss nicht mehr raten, in welcher Datei welcher Begriff auftaucht. Für uns Menschen wäre schon die natürliche Sprache ein Gewinn – für Agenten könnten die Implikationen größer sein.
Wer sich die Basis anschauen will: Die Geheimzutat in der Kette bleibt jedenfalls ripgrep auf GitHub – das Werkzeug, das diese Form von Präzision erst möglich macht. Ob die Vektor-Komponente das Tempo hält, das rg ausmacht, das würde mich wirklich interessieren. Dazu steht in der Meldung leider nichts. Aber ich bin neugierig genug, um es selbst auszuprobieren, sobald ich eine Gelegenheit finde.
4 Kommentare zu „zg (zvec-grep) – Suchen, wenn man nicht weiß, wonach man sucht“