NEEDLE: открытый бенчмарк поиска для ИИ-агентов, обновляющий запросы каждый час

Как тестировать поисковый 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