Что проверял эксперимент и почему это не очередной бенчмарк
Узкое место агентного поиска на открытых моделях — обвязка, а не модель. Это главный вывод эксперимента, в котором агент искал HR и AI/ML-специалистов крупной российской компании. Дешёвые открытые модели находили почти всех нужных людей, но приносили лишних, а внешний фильтр отсекал шум лучше, чем усложнение поисковых навыков агента.
Задача формулировалась так: какой минимальный технологический стек нужен, чтобы агент нашёл конкретную информацию с проверяемым источником и не выдумал ссылку. Бюджет — около 20 долларов: 10$ на OpenRouter и 10$ на Ollama. Описание эксперимента и его условия опубликованы в разборе на Habr.
Контекст: публичных бенчмарков на кодинг и агентские цепочки много, а материалов об автоматизации поиска мало. Тестов на генерацию кода хватает, на поиск проверяемых фактов почти нет. Поиск людей выбран как задача, где результат легко проверить, а цена ошибки видна сразу: ссылка либо подтверждает роль человека в компании, либо нет.
Если вы сравниваете модели под свою задачу, пригодится чек-лист оценки новых AI-моделей: качество рассуждений, контекст, скорость, стоимость и доступность.
Почему в качестве задачи выбран поиск HR и AI/ML-специалистов
Объектом стал Сбер. Компания крупная, у неё есть ИИ-продукты, а штат отдела найма большой. Этого достаточно, чтобы в публичной выдаче накопился объём следов, по которым можно проверять находки агента.
Поиск людей сложнее поиска статей. Одного упоминания мало: нужно подтвердить роль человека в компании, отнести его к категории (HR, AI/ML-специалист, другая роль или агентство) и проверить, работает ли он там сейчас. Модель легко выдаёт правдоподобную ссылку, которая на деле ничего не подтверждает, и именно на такой проверке видно разницу между обычной генерацией и агентным поиском.
Что считается успехом: проверяемый источник, а не просто ссылка
Результат засчитывался, если источник подтверждал роль человека в компании. Ссылка без подтверждения результатом не считается. В обычном поиске вы сами открываете выдачу и решаете, что в ней правда; агенту нужен критерий приёмки внутри цикла, иначе он будет отчитываться о выдуманных находках.
Персональные данные, ФИО и почты в материале не публикуются. Есть подход и обезличенные цифры результатов — их достаточно, чтобы повторить схему, не раскрывая людей.
Стек эксперимента: SearXNG с Яндексом, Hermes, Ollama и OpenRouter
Стек собран из независимых слоёв, и это ключевое решение. Обвязка отделена от модели: модели можно менять по одной, не переписывая поиск и фильтрацию.
| Компонент | Роль в стеке |
|---|---|
| SearXNG с Яндексом | свой поисковый прокси, источник результатов |
| Hermes | агент с инструментами: поиск, открытие страниц, запись результатов |
| Ollama | локальный провайдер моделей, бесплатный облачный тариф |
| OpenRouter | маркетплейс моделей: платные модели и запросы к JEV |
| Grok bot | оркестрация агентов и управление проектом |
| JEV | модель-судья, фильтрация кандидатов |
Почему SearXNG с Яндексом, а не готовый поисковый API
Поиск шёл через свой прокси: сначала Яндекс через SearXNG. Свой прокси даёт контроль над источником результатов и снимает зависимость от одного платного поискового API. Выдача Яндекса закрывала русскоязычные компании и людей, а сам прокси остаётся заменяемым звеном: если качество выдачи упадёт, меняется бэкенд, а не агент.
Роль Grok bot: оркестрация, а не поиск
Grok bot — агентная система от X/Cursor. Она управляла проектом и оркестрировала других агентов, а не искала людей. На её облаке развернули Ollama, Hermes и SearXNG, что упростило проведение эксперимента. Отсюда видно, что обвязка бывает многоуровневой: один слой ставит задачу, второй выполняет поиск, третий фильтрует.
Модель-судья JEV: внешний фильтр, который оказался полезнее усложнения поиска
JEV — маленькая модель-судья. Она ничего не ищет: получает результат поиска и решает, принять человека или отклонить. Роли разделены намеренно: если та же модель и ищет, и оценивает свои находки, у неё появляется мотив считать их удачными.
Три вопроса JEV и пороги принятия
Судья задаёт три вопроса и решает по порогам:
| Вопрос | Формат ответа | Порог принятия |
|---|---|---|
| Подтверждает ли источник роль в Сбере | число от 0 до 1 | не ниже 0,70 |
| К какой категории относится человек | HR / AI/ML-специалист / другая роль / агентство | совпадает с задачей |
| Работает ли он там сейчас | число от 0 до 1 | не ниже 0,55 |
Числовые оценки дают управляемый порог вместо бинарного «да / нет». Порог 0,70 по подтверждённости и 0,55 по актуальности — компромисс между полнотой и точностью. Снизите планку, и в список поплывут кандидаты со слабым подтверждением; поднимете, и начнёте терять реальных людей. Пороги подобраны под конкретную задачу, а не выведены как универсальные.
Логика внешнего судьи изучена неплохо: разбор оценки агентских отчётов через LLM-as-judge показывает, что измеримая оценка результата отдельной моделью работает, но требует калибровки. Слишком мягкий судья пропускает мусор, слишком строгий режет полезное.
Почему фильтр важнее усложнения поисковых навыков
Усложнение поисковых навыков агента не решало проблему лишних кандидатов. Дешёвые открытые модели находили почти всех нужных людей, но приносили и тех, чья роль не подтверждается. JEV отсекал шум на отдельном шаге. Наращивать число поисковых приёмов внутри агента оказалось дороже и менее результативно, чем добавить внешнюю проверку. Практический вывод: если агент уже что-то находит, вкладывайтесь в этап проверки, а не в новый поисковый навык.
Бесплатные против платных моделей: цена не коррелирует с качеством
Сравнивались шесть бесплатных моделей (через Ollama, на бесплатной квоте, плата за сами модели — ноль) и семь платных (через OpenRouter). Цена не коррелировала с качеством: дешёвые модели обходили дорогие. Разброс результата между прогонами достигал двух раз.
Разброс между прогонами до двух раз: что это значит на практике
Один прогон не даёт надёжной оценки модели. Если та же модель на той же задаче выдаёт результат с двукратным разбросом, вывод по одному запуску — это шум. Нужен либо набор прогонов с усреднением, либо внешний фильтр, который стабилизирует итог. Второй вариант дешевле, и в этом эксперименте он сработал.
Почему дешёвые модели обходили дорогие
Для этой задачи разница в цене не давала преимущества. Поиск людей упирается не в глубину рассуждений, а в качество выдачи и проверку источника, а эти слои вынесены за пределы модели. Оговорка важна: вывод про отсутствие корреляции цены и качества получен на одном сценарии, одной компании и бюджете около 20 долларов. Там, где нужна сложная генерация или многошаговые рассуждения, картина может отличаться; сравнение открытых LLM в 2026 году показывает, насколько итог зависит от версии, условий запуска и способа измерения.
Веб-режим против терминального: что дал curl
Помимо веб-режима проверялся терминальный поиск через curl. Он дал больше подтверждённых рекрутеров, но не превзошёл веб-режим на AI/ML-специалистах.
Где curl выиграл: подтверждённые рекрутеры
Терминальный режим принёс больше подтверждённых рекрутеров. Прямой запрос к страницам с меньшим числом промежуточных слоёв выглядит вероятным объяснением, но разбора причин в материале нет, так что считать это доказанным свойством curl не стоит.
Где веб-режим остался лучше: AI/ML-специалисты
На AI/ML-специалистах терминальный режим не превзошёл веб-режим. Универсального режима нет: результат зависит от категории цели. Обвязка должна позволять переключать режим поиска под задачу, а не фиксировать один навсегда. Похожий принцип работает в структурированном поиске: SQL-подход к веб-поиску даёт воспроизводимые запросы, но не гарантирует полноту выдачи.
Как правильно читать результат: поиск, проверка источника, подтверждение актуальности
Итог агентного поиска нельзя оценивать одной цифрой. В эксперименте качество терялось на разных этапах, и смешивать их в общую метрику значит не понимать, где именно проседает схема.
| Этап | Что проверяется | Чем закрывается |
|---|---|---|
| Поиск | кого удалось найти | модель с инструментами поиска через SearXNG |
| Проверка источника | подтверждает ли источник роль в компании | JEV, порог подтверждённости 0,70 |
| Подтверждение актуальности | работает ли человек там сейчас | JEV, порог актуальности 0,55 |
Этап поиска: полнота важнее точности
На этом этапе лучше найти больше, даже с лишними, чем пропустить нужных. Дешёвые открытые модели с этим справляются. Точность добавляет следующий этап, поэтому требовать её от поисковика заранее невыгодно: вы либо переплатите за модель, либо получите тот же результат.
Этап проверки источника: где работает JEV
Судья оценивает, подтверждает ли источник роль в компании, и ставит числовую оценку. Порог 0,70 отсекает слабые подтверждения. Это отдельный этап, и усложнение поиска его не заменяет: модель, которая сама себя проверяет, склонна подтверждать свои находки.
Этап подтверждения актуальности: работает ли человек там сейчас
Второй числовой вопрос JEV — «работает сейчас», порог 0,55. Это защита от устаревших данных: без такой проверки на выходе окажется подтверждённый, но уже неактуальный человек. Требование звучит очевидно, однако именно оно отделяет поиск действующих контактов от инвентаризации старых страниц.
Кому подходит такой подход и какие у него ограничения
Схема рассчитана на поиск проверяемой информации с подтверждением источника: рекрутинг, исследование рынка, сбор контактов, мониторинг упоминаний. Собирается она из бесплатных и дешёвых компонентов, а вклад модели в итог меньше, чем кажется на старте.
Когда обвязка важнее модели, а когда нет
В этом эксперименте обвязка оказалась важнее модели, потому что задача требовала проверки источника и фильтрации, а поисковая часть справлялась на дешёвых моделях. Для длинных рассуждений, генерации кода или нестандартных форматов вес модели выше, и переносить вывод механически нельзя. Проверяйте на своей задаче, своём наборе источников и своём бюджете.
Ограничения тоже стоит держать в голове: бюджет около 20 долларов, один сценарий поиска людей в одной компании, разброс между прогонами вплоть до двукратного. Результат зависит от качества поискового бэкенда, а разные категории специалистов лучше ищутся разными режимами.
Этика и персональные данные
Автор не публикует ФИО и почты: только подход и обезличенные цифры. При повторении схемы разумно держать границу между сбором данных и их публикацией. Собирать публичные упоминания можно, выкладывать персональные данные людей — нет, а автоматизация лишь повышает скорость, с которой нежелательное действие можно совершить.
Начните с одной задачи, где ответ легко проверить: конкретный человек, конкретная роль, конкретная страница-подтверждение. Если модель уже находит нужных, следующий доллар выгоднее вложить в фильтр и пороги, а не в более дорогую модель.