Как тестировать поисковый API, если тестируемая система может прочитать ответы? Агент поиска имеет инструмент для загрузки страниц: если эталонные ответы лежат в открытом датасете, агент может скачать их прямо во время оценки и вообще пропустить поиск. Аналогичная проблема возникает, когда ответы уже вшиты в параметрическую память модели: правильный ответ больше не доказывает, что веб-поиск сработал.
Компания Keenable AI предлагает решение — открытый бенчмарк NEEDLE. Его ключевая особенность в том, что набор запросов не зафиксирован: он постоянно пересобирается из свежих публичных источников. Новостные запросы генерируются каждый час из RSS-лент и Google Trends; финансовые, научные, юридические и редкие запросы обновляются ежедневно из SEC XBRL, arXiv, Europe PMC, CourtListener и публичных логов агентов.
Пятнадцать поисковых API прогоняются на одних и тех же текстах запросов по единому протоколу. Каждый результат оценивается относительно synthetic-oracle-движка ultimate, который показывает, что вообще смогло найти всё поле поисковых систем.
Что измеряет NEEDLE
Название NEEDLE расшифровывается как News, Everyday, Expert, Deep-tail и Legal Evaluation. Каждый вертикальный срез моделирует отдельный сценарий использования агента:
- News — самые свежие новости из ~124 курируемых RSS-лент и Google Trends, преобразованные в ключевые запросы.
- Finance — регистрационные факты из Wikidata и GLEIF, а также квартальные показатели 10-Q из SEC XBRL.
- Scholar — одна научная статья превращается в четыре стиля запроса: деградированный заголовок, деталь только из полного текста, подсказка на естественном языке и описание «вертится на языке» с оговорками.
- Deep-tail — редкие слова-запросы из публичных логов агентских траекторий, включая DeepResearchGym, OpenResearcher и LRAT.
- Legal — свежие решения CourtListener из 14 федеральных судов и разделы eCFR.
Оценка разделена по той же линии. Для новостей и deep-tail нет единственного правильного ответа, поэтому LLM-судья оценивает каждый результат от 0 до 4, а харнесс сообщает nDCG@5 со штрафом за дублирующиеся URL. Финансы оцениваются через answer-recall@5: дошёл ли факт до агента в топ-5 сниппетов. Scholar и legal — это known-item задачи, где результат определяется совпадением идентификатора.
Потолок — самая интересная часть
Каждый движок получает один и тот же текст запроса. Раннер выполняет по одному вызову за раз, поэтому перцентили задержки сопоставимы, и ни один движок не получает конкурентную нагрузку. Оценка идёт по собственной выдаче движка — заголовкам и сниппетам. Страницы никогда не загружаются, результаты не переранжируются. Улики обрезаются до 2 000 символов для всех, и судья не видит название движка.
Гораздо более интересная цифра — потолок ultimate. Для каждого запроса NEEDLE объединяет результаты всех движков в синтетический oracle-движок и упорядочивает этот объединённый набор по релевантности. Это создаёт эмпирический потолок на основе того, что смогло найти всё поле.
Разрыв до ultimate — верхняя граница качества агентного поиска на сегодняшний день. Большой разрыв означает, что лучшие результаты существовали, но каждый движок не смог их выдать или правильно ранжировать. Слабый результат ultimate означает другое: даже после объединения всех провайдеров бенчмарк нашёл мало сильных свидетельств. Иными словами, NEEDLE может отличить проблему ранжирования от проблемы поиска, общей для всего рынка.
Где сейчас находится поле
Ниже — опубликованные средние за 7 дней для окна, закончившегося 2026-08-28.
Финансы почти решены: Exa 0.910, Keenable 0.872, Perplexity 0.871, Google 0.847 при ultimate 0.965. Scholar показывает большой разброс — от Keenable 0.774 до Tavily 0.310 при потолке 0.869, потому что запросы по заголовкам отвечаемы из метаданных, а запросы по тексту — нет. Deep-tail — самый сложный и самый близкий к реальному агентскому трафику: Exa лидирует с 0.557 от ultimate, за ним Keenable с 0.470, Bing на 0.199. Разрыв между достигнутым и возможным качеством растёт по мере приближения запросов к тому, как агенты ищут на самом деле.
Задержка — тоже важная метрика, потому что агенты вызывают поиск десятки раз за задачу. За то же окно: Keenable-realtime 193 мс p50 / 284 мс p95, Exa 1 876 / 2 955, Bing 2 767 / 9 381.
Ключевые выводы
- NEEDLE перегенерирует запросы ежечасно для новостей и ежедневно для остальных четырёх вертикалей — фиксированного набора для переобучения нет.
- Пять вертикалей, 15 поисковых API, один протокол: один и тот же текст запроса, один лимит улик в 2 000 символов, по одному запросу за раз.
- Каждый лидерборд читается относительно
ultimate— объединённого oracle-движка, отмечающего потолок, которого достигло всё поле. - На редких запросах из реальных агентских логов лучший движок достигает 0.557 от потолка; в финансах большинство движков группируются между 0.77 и 0.91.
- Код распространяется под лицензией MIT, запускается в публичных GitHub Actions, артефакты каждого прогона публикуются в датасет Hugging Face.
Исходный код, живой дашборд, техническое описание и архивные артефакты доступны публично. Проект продолжает серию открытых инструментов для оценки ИИ: ранее Liquid AI представила бенчмарк Pipette для ИИ-моделей на устройствах, а Microsoft открыла агента для генерации и проверки юнит-тестов.
Как это устроено технически
NEEDLE — это Python CLI, устанавливаемый через uv sync и управляемый двумя подкомандами на каждый бенчмарк: generate и run. Для работы нужен ключ OpenRouter для судейства и по одному ключу API на каждый тестируемый движок. Инструмент запускается на ноутбуке или в CI. Он позволяет воссоздать все используемые потоки запросов в дополнение к оценкам качества ранжирования.
Частые вопросы
Чем NEEDLE отличается от обычных бенчмарков поиска?
Главное отличие — живые запросы. Новостные запросы пересобираются каждый час, остальные — ежедневно, поэтому набор не фиксируется и его нельзя «выучить» или подогнать под себя.
Кому нужен этот бенчмарк?
Разработчикам и исследователям, которые строят агентные системы с веб-поиском и выбирают поисковый API: NEEDLE позволяет сравнить 15 провайдеров на одних и тех же запросах по единому протоколу.
Что такое ultimate?
Это синтетический oracle-движок, который объединяет результаты всех тестируемых API для каждого запроса. Он показывает эмпирический потолок — что вообще смогло найти всё поле поисковых систем.
Почему deep-tail — самый сложный срез?
Запросы deep-tail берутся из реальных логов агентов и содержат редкие слова. Лучший движок достигает лишь 0.557 от потолка ultimate, что говорит о большом разрыве между реальным и возможным качеством.
Какие API уже протестированы?
В статье упоминаются Exa, Keenable, Perplexity, Google, Bing и Tavily — всего 15 поисковых API прогоняются по единому протоколу.
Насколько ресурсоёмок запуск NEEDLE?
Бенчмарк запускается на ноутбуке или в CI. Нужен ключ OpenRouter для судейства и по одному ключу API на каждый тестируемый движок.
Можно ли использовать NEEDLE для своего поискового API?
Да, проект открытый: код распространяется под лицензией MIT, а артефакты каждого прогона публикуются в датасет Hugging Face. Нужно лишь добавить свой API в конфигурацию.
Источник: marktechpost.com