XERJ: локальный AI-поиск с автоиндексом и экономией токенов
XERJ — открытый поисковый движок для AI-агентов, сокращающий расход токенов в 2,7 раза по сравнению с grep при той же точности решения задач.
Поиск для 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,18 | 11/16 |
| Агент на grep | 26 477 | $3,27 | 16/16 |
| XERJ | 9 982 | $1,58 | 16/16 |
Это в 2,7 раза меньше output-токенов, чем у grep, и в 26 раз меньше, чем при работе только из памяти модели — при одинаковой точности. На одной задаче на Java разница достигла 278 раз.
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× меньший размер на диске.
user-feedback/. Отчёты освобождены от CLA (лицензионного соглашения участника).Почему это важно
Инструмент меняет базовую экономику работы AI-агентов с кодом: вместо «читать всё» — «найти нужное».
Rust-экосистема давно лидирует в создании эффективных инструментов для разработчиков, и XERJ продолжает эту традицию. Ключевое отличие от конкурентов — не просто индексирование, а совместимость с Elasticsearch без изменения существующей инфраструктуры. Это снижает порог входа до нуля: существующие дашборды, клиенты и пайплайны работают без правок.
Для команд, активно использующих AI-агентов в разработке, инструмент предлагает реальную денежную экономию: по данным теста, стоимость решения той же задачи падает с $3,27 (grep) до $1,58 (XERJ) при идентичном качестве результата.