Поиск для AI-агентов без лишних токенов

XERJ — локальный AI-поиск с автоматической индексацией любой папки: coding-агент перестаёт читать файлы по одному и вместо этого получает именно тот фрагмент кода, который нужен. В контролируемом исследовании инструмент сократил расход output-токенов агента в 2,7 раза при том же показателе решаемости задач — 16 из 16, а пользователи сообщают о примерно пятикратной экономии в повседневной работе. Проект появился в GitHub Trending, впервые достигнув позиции #13 7 октября 2026 года.


Проблема: grep пожирает контекст

Агент, использующий grep, затягивает целые файлы в контекст — в одном из измерений это составило до 1,06 млн входных токенов — и всё равно вынужден их читать. Агент с XERJ получает конкретный пассаж.

Вот как выглядят результаты контролируемого теста (8 задач, 4 языка, 16 запусков на каждый вариант, реальные счётчики токенов claude -p):

ПодходOutput-токеныСтоимостьРешено
Только из памяти модели260 916$11,1811/16
Агент на grep26 477$3,2716/16
XERJ9 982$1,5816/16

Это в 2,7 раза меньше output-токенов, чем у grep, и в 26 раз меньше, чем при работе только из памяти модели — при одинаковой точности. На одной задаче на Java разница достигла 278 раз.

⚠ Важный нюанс
XERJ выигрывает на приватном, внутреннем или нишевом коде и на коде, выпущенном после даты обучения модели. На популярных публичных библиотеках, которые модель уже знает, эффект нейтрален или даже отрицателен.

Reference coding — главный сценарий

Основной сценарий — reference coding: агент получает задачу, скачивает ближайшие по смыслу open-source репозитории, индексирует их и переиспользует чужие решения, прежде чем писать собственный код.

Этого достаточно, чтобы более дешёвая модель обогнала более дорогую, работающую из памяти, — и вы проводите меньше времени в петлях исправлений.

💡 Быстрый старт

Запустить XERJ можно одной командой:

curl -fsSL https://xerj.org/get | sh
xerj --insecure --data-dir ./data &
xerj init          # подключить к Claude Code/Cursor через MCP
xerj autoindex ~/my-project
xerj search "how do we rotate the WAL segment"

Что умеет autoindex

xerj autoindex <folder> заставляет агента «знать» корпус вместо того, чтобы грепать его. Одна команда индексирует код, документацию, логи, PDF, SQLite и CSV в типизированные индексы — без схемы и без пайплайна.

Поддерживаются форматы CSV, JSON, JSONL, XML, YAML, SQLite, PDF, DOCX, HTML, почтовые файлы (.eml и mbox, включая экспорт Google Takeout) и распространённые форматы логов.

XERJ сам определяет тип каждого файла и создаёт отдельный индекс на каждый найденный датасет. Код поступает вместе с символами и номерами строк через tree-sitter — не как плоский текст.

Сценарии использования


graph TD
    A[xerj autoindex папка] --> B{Тип данных?}
    B --> C[Код → индекс с символами tree-sitter]
    B --> D[PDF/DOCX → текстовый индекс]
    B --> E[Логи → типизированный индекс]
    B --> F[SQLite/CSV → табличный индекс]
    C --> G[xerj search / xerj def]
    D --> G
    E --> G
    F --> G
    G --> H[Агент получает точный фрагмент]

  • Reference coding — индексируем OSS-репозитории и ищем, как они решили аналогичную задачу
  • Codebase Q&A и RAG — задаём вопрос о кодовой базе, получаем ответ с указанием file:line
  • Security audits — в аудите безопасности WordPress агент обработал 1 492 PHP-файла примерно за 26 000 токенов — около половины процента от всего дерева
  • Анализ логов — смешанные форматы превращаются в типизированные индексы с агрегациями
  • Долгосрочная память агента — /_memory/{namespace} хранит то, что агент узнал, и воспроизводит по смыслу в следующей сессии

Технические детали

XERJ — это open-source поисковый движок, написанный на Rust и поставляемый как единый статический бинарный файл. Никаких JVM и зависимостей. Собранные версии доступны для Linux, macOS и Windows на архитектурах x86-64 и arm64.

Под капотом XERJ реализует Elasticsearch REST API — индексы, документы, bulk, поиск, агрегации, маппинги, kNN, scroll и _cat-эндпоинты — так что существующие Elasticsearch-клиенты и Kibana подключаются к нему без изменений.

Тот же бинарник выступает и как MCP-сервер, предоставляя инструменты для полнотекстового, семантического, векторного и гибридного поиска, а также для долгосрочной памяти агента через /_memory/{namespace}.

В бенчмарке против Elasticsearch 8.13.4 последний закрытый прогон зафиксировал 55 побед, 26 ничьих и 4 поражения, включая 1,72× бо́льшую пропускную способность при записи и в 1,61× меньший размер на диске.

ℹ Лицензия и сообщество
Проект распространяется под лицензией Apache-2.0. Вступить в сообщество просто: запусти XERJ и отправь один короткий field report — PR с markdown-файлом в user-feedback/. Отчёты освобождены от CLA (лицензионного соглашения участника).

Почему это важно

Инструмент меняет базовую экономику работы AI-агентов с кодом: вместо «читать всё» — «найти нужное».

Rust-экосистема давно лидирует в создании эффективных инструментов для разработчиков, и XERJ продолжает эту традицию. Ключевое отличие от конкурентов — не просто индексирование, а совместимость с Elasticsearch без изменения существующей инфраструктуры. Это снижает порог входа до нуля: существующие дашборды, клиенты и пайплайны работают без правок.

Для команд, активно использующих AI-агентов в разработке, инструмент предлагает реальную денежную экономию: по данным теста, стоимость решения той же задачи падает с $3,27 (grep) до $1,58 (XERJ) при идентичном качестве результата.