Sakhanda Wire
NVDA MSFT GOOGL META AMZN
← Към новините

Разработчиците на Qwen пускат с отворен код zg (zvec-grep): слой за търсене с приоритет на локалната работа, обединяващ ripgrep, BM25 и векторно търсене

Кодиращите агенти изразходват голям дял от бюджета си за инструменти за търсене. Когато целта е известен символ, ripgrep дава точен отговор. Когато целта е поведение, описано на естествен език, съпоставянето по ключови думи често пропуска резултата и агентът се връща към отгатване на термини, прочитане на цели файлове и ръчно изграждане на контекст. Всяко от тези отклонения струва извиквания на инструменти, токени и време в реалния свят.

Екипът на Qwen Developer обяви zg (zvec-grep) — локално ориентиран слой за търсене с отворен код, който обединява семантичното търсене, BM25 и ripgrep в един интерфейс както за хора, така и за агенти. Кодът е публикуван в GitHub организацията zvec-ai под лиценз Apache 2.0.

Може ли да бъде внедрен? Да, още днес. Инсталира се от npm като @zvec/zvec-grep, изисква Node.js 22 или по-нова версия на macOS, Linux или Windows, не се нуждае от GPU с модела по подразбиране, а лицензът Apache 2.0 позволява комерсиална употреба.

Един индекс, четири маршрута за извличане

zg индексира работното пространство веднъж, след което предоставя няколко начина за отправяне на заявки към него. Документацията за конвейера за извличане определя четири маршрута: хибриден маршрут по подразбиране, който комбинира намерението с лексикални опорни точки; --fts за точни термини, класирани по BM25; --vector за концептуално сходство без лексикално класиране; и --rg за изчерпателно съвпадение по литерал или регулярeн израз. Първите три използват индекса. Маршрутът --rg изобщо не се нуждае от индекс, което е важно, когато хранилището все още не е индексирано.

Анонимен индекс на работното пространство се съхранява в <root>/.zvec-grep/. Както .git, така и .zvec-grep винаги се изключват, заедно с често срещани директории за зависимости, компилации, кешове и логове, както и всичко, което правилата за игнориране на самото хранилище изключват. Повторното изпълнение на zg index актуализира индекса инкрементално; промяната на модела за embeddings изисква изричен флаг --rebuild, тъй като векторните пространства от различни модели са несъвместими дори при еднакъв брой измерения.

Индексираните резултати показват състояние на актуалност fresh или possibly_stale, така че агентът може да използва достатъчно добър резултат, вместо първо да изпълнява предварителна проверка на състоянието.

MCP интерфейсът, който агентите действително виждат

zg install открива Codex, Claude Code, Cursor и OpenCode на машината и настройва локалната MCP интеграция. Сървърът използва Streamable HTTP MCP на endpoint, достъпен само през loopback, на адрес http://127.0.0.1:7999/mcp, с опционално bearer удостоверяване.

Решението в дизайна, което заслужава внимание, е сдържаността. Според ръководството за MCP наборът от инструменти agent по подразбиране предоставя точно два инструмента: zvec_grep_search, когато намерението е известно, но точният низ не е, и zvec_grep_rg, когато са известни символ, път или регулярeн израз. Жизненият цикъл на индекса остава в CLI. Съществува набор за съвместимост от шест инструмента, който добавя създаване, изтриване и проверка на състоянието на индекса, както и състоянието на сървъра, но той е опционален чрез zg server on --mcp-toolset full, а документацията посочва, че агентът никога не трябва тихомълком да създава, изгражда наново или изтрива постоянен индекс.

Изходът е структуриран с оглед на икономичното използване на контекста. Резултатите се връщат, групирани по файл, с диапазони от редове, а визуализациите на индексирания изходен код по подразбиране се пропускат, освен ако не бъдат изрично поискани. zg също така отхвърля флагове на ripgrep, които променят изхода, като --json, --count, -l и --vimgrep, за да се запази компактният формат на резултатите.

Embeddings се изпълняват на устройството по подразбиране

Каталогът с embedding модели в момента документира десет локални модела и три отдалечени Qwen endpoint-а. Моделът по подразбиране в бързия старт, local/potion-code-16m-v2, е статичен модел Model2Vec с изход от 256 измерения и лимит от 8 192 токена на вход; тъй като използва статично търсене във векторна таблица, изборът на GPU не го ускорява. По-тежките локални опции включват jina-embeddings-v2-base-code, embeddinggemma-300m и qwen3-embedding-0.6b. Отдалечените опции включват qwen/qwen3.7-text-embedding със 128 000 входни токена и мултимодалния qwen/qwen3-vl-embedding.

Отдалечената употреба е ограничена. Конфигурирането на идентификационни данни за доставчик не разрешава прехвърляне на данни; за това е необходим или --allow-remote за една команда, или подписано разрешение за работното пространство чрез zg auth grant, което може да бъде отменено с zg auth revoke. Публикацията за старта посочва единадесет модела, работещи на устройството, спрямо десет в текущата документация — малко несъответствие, което си струва да бъде отбелязано.

Какво показват числата от бенчмарковете

Данните от оценяването са публикувани в материала за старта, а не в хранилището, където секцията за бенчмаркове все още е само запълващ текст. И двата теста са сдвоени A/B тестове, при които агентът, моделът, заявката, средата за изпълнение и ограниченията на задачите са фиксирани, а условието със zg добавя единствено предварително изграден индекс, MCP инструменти и указания за употреба. Цената за изграждане на индекса е изключена от таблиците.

При извадка от 20 въпроса от SWE-QA-Bench zg намалява извикванията на инструменти с повече от половината и входните токени почти наполовина, като същевременно повишава резултата на Judge с 1,50 точки. При извадка от 80 въпроса от BrowseComp-Plus точността се повишава от 98,67% на 99,00%, докато входните токени намаляват с 37,56%, извикванията на инструменти — с 43,52%, а времето на агента — с 38,58%. Отделно се съобщава, че индексирането на хранилището на Django (3 457 файла) завършва за под 30 секунди на Apple M4 Pro.

Размерите на извадките от 20 и 80 въпроса са малки, а отчетените намаления произлизат от собствени тестове на доставчика, така че независимото възпроизвеждане е очевидната следваща стъпка.

Интерактивно обяснение

Основни изводи

  • zg обединява ripgrep, BM25 и векторното търсене в един локално ориентиран интерфейс за хора и агенти.
  • Наборът от MCP инструменти по подразбиране предоставя само два инструмента; жизненият цикъл на индекса умишлено остава в CLI.
  • Индексирането, embedding-ите и извличането се изпълняват на устройството; за отдалечени embeddings е необходимо изрично разрешение за отделна команда или работно пространство.
  • A/B тестовете на доставчика отчитат приблизително 40% до 50% намаление на извикванията на инструменти и входните токени при малки извадки.
  • Apache 2.0, инсталиране чрез npm, Node.js 22+, без необходимост от GPU с модела по подразбиране.

Разгледайте zvec-ai/zvec-grep, публикацията за старта на Qwen Developerst и пътната карта. Също така можете да ни последвате в Twitter и не забравяйте да се присъедините към нашия 150k+ ML SubReddit и да се абонирате за нашия бюлетин. Чакайте! В Telegram ли сте? сега можете да се присъедините към нас и в Telegram.

Имате нужда от партньорство с нас за популяризиране на вашето GitHub хранилище ИЛИ Hugging Face страница ИЛИ продуктово представяне ИЛИ уебинар и т.н.? Свържете се с нас

Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.

Първоначално публикувано от MarkTechPost на

Прочетете оригинала в MarkTechPost ↗

Текстът и изображенията са собственост на MarkTechPost и са възпроизведени тук с посочване на авторството и връзка към оригиналната публикация.

← Към новините

Още новини

Всички последни новини