Инструменты3 сентября 2026 г., 03:16 МСК🤖 Auto

Qwen открыл zg: локальный поиск, объединяющий ripgrep, BM25 и векторы

Команда Qwen Developer выпустила zg (zvec-grep) — open-source слой поиска для агентов, объединяющий точный grep, семантику и BM25 в одном интерфейсе с экономией токенов до 50%.

Баннер новости 6637

Проблема: стоимость поиска для AI-агентов

Кодовые агенты (coding agents) тратят значительную часть своего бюджета инструментов на поиск. Если задача требует найти известный символ, ripgrep справляется мгновенно. Однако при поиске поведения, описанного естественным языком, ключевые слова часто не срабатывают, заставляя агента гадать, читать целые файлы и собирать контекст вручную. Каждый такой «детур» стоит вызовов инструментов, токенов и времени.

Решение — zg (zvec-grep) — это локальный слой поиска, который ставит семантический поиск, BM25 и ripgrep за один интерфейс. Проект опубликован под лицензией Apache 2.0 в организации zvec-ai на GitHub.

Технические детали: один индекс, четыре маршрута

zg индексирует рабочее пространство один раз и предоставляет четыре маршрута извлечения данных. Важно, что три из них читают индекс, а --rg работает без него, что критично для репозиториев, которые еще не были проиндексированы.

Режим Описание Требует индекса?
Hybrid (по умолчанию) Комбинирует намерение (семантику) с лексическими якорями Да
--fts BM25-ранжирование точных терминов Да
--vector Концептуальное сходство без лексического ранжирования Да
--rg Исчерпывающее буквальное или regex-совпадение Нет

Индекс хранится в <root>/.zvec-grep/ и обновляется инкрементально. Система отслеживает свежесть данных, маркируя результаты как fresh или possibly_stale, что позволяет агентам принимать решения без предварительной проверки статуса.

Интеграция с агентами: MCP и экономия контекста

Команда сделала ставку на сдержанность. По умолчанию в MCP-интерфейсе (Streamable HTTP на http://127.0.0.1:7999/mcp) доступны только два инструмента:

  • zvec_grep_search — когда намерение известно, но точная строка нет.
  • zvec_grep_rg — когда известен символ, путь или regex.

Управление жизненным циклом индекса оставлено за CLI. Агенты не могут молча создавать или удалять индексы. Выходные данные оптимизированы: результаты группируются по файлам с указанием строк, а превью исходников по умолчанию отключены для экономии контекста.

Производительность и бенчмарки

Встраивание (embeddings) работает локально по умолчанию. Стартовая модель local/potion-code-16m-v2 (Model2Vec, 256 измерений, 8192 токенов) не требует GPU. Доступны и более тяжелые локальные модели (например, qwen3-embedding-0.6b) и удаленные эндпоинты Qwen, но их использование требует явного разрешения (--allow-remote).

Результаты A/B тестов от разработчиков показывают существенную экономию ресурсов:

Метрика SWE-QA-Bench (20 вопросов) BrowseComp-Plus (80 вопросов)
Снижение вызовов инструментов > 50% 43.52%
Снижение входных токенов ~ 50% 37.56%
Снижение времени агента 38.58%
Точность (Accuracy) Рост Judge score на 1.50 98.67% → 99.00%

Также отмечено, что индексация репозитория Django (3 457 файлов) занимает менее 30 секунд на Apple M4 Pro. Стоит отметить, что выборка в бенчмарках небольшая, и независимая репликация результатов остается желательной.

Как установить

zg устанавливается через npm:

npm install @zvec/zvec-grep

Требования: Node.js 22+, поддержка macOS, Linux, Windows. GPU не требуется для работы с моделью по умолчанию.

Источник: MarkTechPost ↗