grep pokonał metody wyszukiwania wektorowego w testach pamięci agenta, a wybór narzędzi miał tak samo duże znaczenie.
Badanie 116 pytań z LongMemEval wykazało, że grep przewyższa metody odzyskiwania wektorów, ale sposób wykorzystania narzędzi wpływa na dokładność w równym stopniu co same metody odzyskiwania. Co z tego wynika.
Systemy wzbogacone o mechanizmy wyszukiwania od dawna opierają się na jednym przekonaniu: wyszukiwanie wektorowe jest lepsze od wyszukiwania według słów kluczowych, ponieważ uwzględnia znaczenie. Zapytanie o „dokumenty dotyczące kwartalnych wyników finansowych” znajduje „raport o przychodach za Q3”, mimo że obie frazy nie zawierają żadnych wspólnych słów, ponieważ przestrzeń embeddingów traktuje je jako bliskie siebie. To przekonanie doprowadziło do ogromnych wydatków na infrastrukturę, od Pinecone i Weaviate po Chroma i Qdrant. Wcześniejsze badania nad wyszukiwaniem gęstych tekstów pokazały, że jest ono skuteczniejsze od rzadkiego algorytmu BM25 w zadaniach związanych z odpowiadaniem na pytania w otwartych domenach; branża przyjęła te wyniki, a wyszukiwanie wektorowe stało się standardem.
W badaniu z 2026 roku przeprowadzono inny eksperyment. Agentom zadano zadanie wyszukiwania z frameworka LongMemEval, standardu oceny, w którym agent musi odpowiadać na pytania poprzez przeszukiwanie długich historii rozmów. W teście porównywano zwykłe dopasowywanie ciągów znaków z narzędziem grep z wyszukiwaniem wektorowym. Eksperyment przeprowadzono przy użyciu kilku różnych narzędzi do obsługi agentów: dostosowanego rozwiązania o nazwie Chronos oraz narzędzi linii poleceń dostarczanych przez poszczególne platformy – Claude Code, Codex i Gemini CLI.
W głównym zestawieniu grep okazał się skuteczniejszy od wyszukiwania wektorowego pod względem dokładności, i to we wszystkich narzędziach, a nie tylko w jednym.
Wersja skrócona
- Zestawienie: 116 pytań z LongMemEval, porównanie grep z wyszukiwaniem wektorowym, cztery narzędzia, identyczne dane rozmów.
- Główny wynik: przy prezentacji wyników bezpośrednio w tekście, grep przewyższył wyszukiwanie wektorowe pod względem dokładności we wszystkich przetestowanych przypadkach.
Dlaczego grep nadaje się do pytań dotyczących pamięci
Mechanizm jest łatwy do wyjaśnienia. LongMemEval pyta na przykład o to, jakie restauracje ktoś określił jako swoje ulubione w danej rozmowie w określonej dacie, lub o tytuł książki, którą dana osoba poleciła. Każda odpowiedź to konkretny ciąg znaków znajdujący się gdzieś w historii rozmów.
Metoda odzyskiwania wektorów polega na umieszczeniu pytania, znalezieniu fragmentów rozmowy o zbliżonych wektorach reprezentacyjnych i ich zwróceniu. Problem polega na tym, że bliskość znaczeniowa nie jest równoznaczna z posiadaniem dokładnego faktu. Fragment dotyczący jedzenia w ogóle znajduje się w pobliżu wyrażenia „ulubiona restauracja” w przestrzeni wektorowej. Choć może w ogóle nie wymieniać nazwy restauracji, nadal uzyskuje wysoką pozycję, a nie zawiera żadnej odpowiedzi.
Poszukiwanie za pomocą grep słowa „restaurant” zwraca wszystkie fragmenty, które zawierają to słowo, w tym ten, w którym wspomniano o ulubionej restauracji. grep działa dokładnie, natomiast metoda odzyskiwania wektorów jest przybliżona, więc przy poszukiwaniu dokładnych faktów przybliżenie tylko dodaje szum.
Vector retrieval: high recall on semantically related segments
lower precision on exact-fact queries
noise from semantically similar but fact-absent segments
grep: perfect precision on string matches
lower recall on paraphrased or implicit facts
no noise from semantic neighbors
Pytania w tym teście są sformułowane tak, aby wymagać dokładnego przywołania informacji, dlatego rozkład ocen faworyzuje dokładne dopasowanie ciągów znaków. To nie jest dowód na to, że grep jest lepszy od wyszukiwania wektorowego w ogólności. Pokazuje to jedynie, że to rozkład zadań decyduje o tym, który metodę wybieramy. Pytanie, na które warto odpowiedzieć, brzmi: jaki jest rzeczywisty zestaw zadań wyszukiwania w implementacjach agentów produkcyjnych i która metoda przewyższa pozostałe w tym zestawieniu.
Efekt harness
Najważniejszym odkryciem nie jest użycie grep do przeszukiwania wektorów. Chodzi o narzędzie do obsługi danych. Przy tym samym sposobie wyszukiwania, tych samych danych i tych samych pytań dokładność znacznie się zmienia w zależności od wybranego narzędzia. Podane liczby pokazują skalę różnic: model Claude Opus osiąga 93,1% przy użyciu Chronos, a 76,7% przy użyciu Claude Code, więc zmiana narzędzia wpływa na wyniki mniej więcej tak samo, jak zmiana narzędzia wyszukiwania w ramach danego narzędzia. Największa różnica pomiędzy grep a metodami opartymi na wektorach wystąpiła przy użyciu Chronos i Gemini 3,1 Flash-Lite – 86,2% w porównaniu z 62,9%.
Narzędzie do obsługi danych pełni cztery funkcje:
- Wysyła zapytanie do narzędzia wyszukiwania.
- Otrzymuje wyniki wyszukiwania.
- Przedstawia te wyniki modelowi.
- Model na ich podstawie formułuje odpowiedź.
Dla danego sposobu wyszukiwania kroki pierwszy, drugi i czwarty są wszędzie takie same. Trzeci krok się różni, a sposób prezentacji wyników wpływa na to, co model z nimi robi. Możliwe opcje prezentacji to:
- Format: lista uporządkowana, jeden najlepszy wynik lub połączenie wszystkich wyników.
- Kontekst: czy każdy wynik zawiera swoje źródło, datę i otaczający tekst.
- Wyodrębnianie: czy istotna część jest zaznaczona, czy model musi ją szukać wewnątrz.
- Filtrowanie: czy wyniki o niskiej pewności są pomijane, czy pokazywane wszystkie.
Nikt nie ustandaryzował tych opcji, a interfejsy wiersza poleceń poszczególnych dostawców są różne. Okazało się, że sposób dostarczania wyników ma ogromne znaczenie. Przekazywanie wyników bezpośrednio w tekście faworyzowało narzędzie grep, natomiast przekazywanie ich jako plików, dzięki czemu model mógł je odczytać osobno, zmieniło wyniki porównania – metodę wyszukiwania wektorowego przewyższyło grep w około połowie par zestawów harness i modeli. Jeden z ustawień Codex spadł z 93,1% przy użyciu grepa w formie bezpośredniej na 55,2%, gdy wyniki grepa były przekazywane jako pliki.
Jeśli tak jest, badania porównujące metody wyszukiwania przy stałych warunkach zestawu harness mogą mierzyć złą zmienną. Lepszy narzędzie wyszukiwania w gorszym zestawie może przegrać z gorszym narzędziem w lepszym zestawie.
Mieszanie elementów rozpraszających
W drugim eksperymencie wykorzystano poprawne fragmenty rozmów i stopniowo dodawano do nich coraz więcej niepowiązanego historii rozmów, następnie obserwowano spadek dokładności w miarę wzrostu tego zamieszania.
Oba metody tracą dokładność w miarę wzrostu liczby elementów rozpraszających, co jest spodziewane. Kurwy jednak się różnią – przy zapytaniach opartych na dokładnych faktach grep degraduje się bardziej stopniowo. Gdy istotny fragment zawiera ciąg znaków z zapytania, grep go znajduje, niezależnie od tego, ile elementów rozpraszających go otacza, ponieważ te elementy nie odpowiadają temu ciągowi i nigdy nie pojawiają się w wynikach.
W przypadku wyszukiwania wektorowego spadek jakości następuje szybciej. Elementy rozpraszające, które semantycznie przypominają zapytanie, faktycznie pojawiają się w wynikach, więc udział użytecznych wyników w czołowych rezultatach zmniejsza się w miarę wzrostu ilości szumów, a model musi szukać odpowiedzi w bardziej zanieczyszczonym zbiorze.
Accuracy = f(retrieval_precision × harness_quality)
grep retrieval precision: high for exact facts, stable with distractors
vector retrieval precision: moderate, degrades with semantically similar distractors
Dla agentów pracujących z dużymi, zróżnicowanymi zbiorkami danych o długiej historii rozmów, zawierającymi różne typy dokumentów o nierównym stopniu istotności, ta odporność na rozpraszacze stanowi rzeczywistą praktyczną przewagę przy zadaniach wymagających dokładności faktów.
Co to oznacza dla literatury dotyczącej wyszukiwania
Artykuły porównujące metody gęstego i rzadkiego wyszukiwania, modele embeddingowe lub strategie ponownego sortowania zazwyczaj ustalają narzędzie pomocnicze i zmieniają sam mechanizm wyszukiwania, traktując to narzędzie jako stałą wartość. Wyniki badań pokazują jednak, że nie jest to stała – ma ono wpływ na metodę wyszukiwania. Narzędzie dostosowane do wyszukiwania wektorowego może słabo radzić sobie z wynikami uzyskanymi metodą grep, a odwrotnie też jest prawdą.
Możliwe jest, że metody wyszukiwania były dostosowywane do narzędzi, które przypadkowo faworyzują podejścia wektorowe. Porównania bezwzględne mogą nadal być trafne, natomiast rankingi względne – nie.
W praktyce zespoły tworzące systemy agentic RAG poświęcają wiele wysiłku na wybór modeli do embedowania, dostawców baz danych wektorowych oraz metryk podobieństwa. Niewielu poświęca porównywalną ilość wysiłku na narzędzia, które pokazują modelowi wyniki wyszukiwania. Wyniki te wskazują, że narzędzia te zasługują przynajmniej na tyle samo uwagi inżynierskiej co same mechanizmy wyszukiwania, ale praktyka inżynierska jeszcze tego nie dostrzegła.
Uważne analizowanie wyników
Ten obszar pracy prawdopodobnie nie otrzyma uwagi, na którą zasługuje, i to nie dlatego, że wyniki są słabe. Są one niewygodne dla branży opartej na wyszukiwaniu wektorowym, ponieważ czasami lepsze okazują się metody typu grep, a projektowanie narzędzi jest niedoceniane.
Należy je nadal czytać uważnie. LongMemEval ma specyficzny podział zadań, który faworyzuje wyszukiwanie dokładnie ustalonych faktów, a przewaga grep w tym obszarze nie oznacza, że zwycięża we wszystkim. Wyszukiwanie semantyczne radzi sobie lepiej w zadaniach wymagających parafrazowania, w wyszukiwaniu międzyjęzykowym oraz przy zapytaniach na poziomie pojęć. Badanie analizowało również dowody w postaci dosłownych rozmów wielo sesyjnych, a hybrydowe metody wyszukiwania czy silniejsze bazy leksykalne nie były w nim uwzględnione.
Wniosek nie polega na używaniu grep. Należy dopasować metodę wyszukiwania do charakteru zadań, a także tak samo starannie zaprojektować narzędzie pomocnicze jak sam mechanizm wyszukiwania. Żadna z tych praktyk nie jest jeszcze standardem, choć obie powinny nim być.
Pytania dotyczące własnego systemu
W zadań wyszukiwania opartych na agentach w Twoim systemie produkcyjnym, jaka część wymaga dokładnego odzyskiwania faktów, a jaka część wymaga dopasowywania pojęć semantycznych? I kiedy ostatnio sprawdziłeś, w jaki sposób Twoje narzędzie prezentuje wyniki, z taką samą starannością, z jaką dobierałeś model embeddingów?