TL;DR
Relay-Bench — тест, который берёт от 2 до 13 простых задачек из разных областей (математика, код, поиск в интернете, текстовые головоломки) и склеивает их в один запрос с зависимостями: ответ на задачу №3 нужен, чтобы решить задачу №7. Иногда исследователи специально добавляют в промпт тысячи символов бесполезного "мусорного" текста или шифруют весь запрос через словарь замены символов — чтобы усложнить и без того длинную цепочку.
Главная находка: по отдельности каждая подзадача — тривиальная, модели решают её без проблем. Но когда 5-10 таких задач идут одна за другой в одном запросе, модель начинает "уставать" — путает похожие символы, забывает мелкие детали (например, не учитывает високосный год при подсчёте дней жизни человека), и к концу цепочки теряет фокус. При этом модель почти никогда не признаётся "я не знаю" — она угадывает финальный ответ, даже если не решила промежуточный шаг правильно. Лучшая из трёх протестированных моделей осилила меньше половины задач.
Вывод для практики простой: если тебе нужно решить составную многошаговую задачу, не заваливай модель одним огромным запросом со всем сразу. Разбивай на этапы, проверяй промежуточный результат перед тем как перейти к следующему шагу, и не разбавляй промпт лишним нерелевантным текстом — это тоже роняет точность.
Схема метода (как устроен тест)
ШАГ 1: Берут 2–13 простых задач из разных областей → математика, код, поиск, логика
ШАГ 2: Связывают их зависимостями → ответ одной нужен для решения другой
ШАГ 3 (опционально): добавляют мусорный контекст или шифруют весь текст через словарь-подстановку → усложняют без изменения сути
ШАГ 4: Модель должна выдать один финальный точный ответ по строгим правилам форматирования
Пример применения
Задача: Готовишь финансовую сводку для встречи с инвестором — нужно посчитать несколько метрик, свести их между собой и оформить в едином формате без ошибок в цифрах.
Промпт:
У меня составная задача из нескольких связанных подзадач. Выполняй их по очереди,
не переходя к следующей, пока не проверишь результат текущей.
Задача целиком: рассчитать юнит-экономику продукта и подготовить резюме для инвестора.
Подзадачи:
1. Посчитай себестоимость единицы товара по данным: {данные}
2. Пересчитай в рубли по текущему курсу {валюта→рубли}
3. Сравни получившуюся цену с ценой конкурента {данные конкурента}
(использует результат шага 2)
4. Оформи вывод в одном абзаце: маржа в %, вывод "выгодно/невыгодно",
без лишних слов
Для каждой подзадачи:
- Реши её
- Покажи промежуточный результат
- Проверь его перед тем как перейти дальше
В конце дай финальный ответ в формате:
"Себестоимость: X руб. Маржа: Y%. Вывод: [текст]"
Результат: Модель покажет решение каждого шага отдельно с промежуточной проверкой (курс валюты, пересчёт, сравнение), и только потом соберёт финальный абзац. Это снижает риск, что ошибка на шаге 1 (например, неверный курс) незаметно "протащится" через весь расчёт до финального вывода.
Почему это работает
Когда модели дают сразу 5-10 связанных задач в одном запросе, она тратит "внимание" сразу на весь объём — и к позднему шагу теряет точность в деталях, которые сами по себе элементарны. Это похоже на человека, который считает в уме десять операций подряд без остановки: каждая простая, но накопленная усталость даёт сбой где-то в середине.
Сильная сторона модели — она хорошо решает одну чётко ограниченную задачу и хорошо умеет проверять собственный промежуточный результат, если её явно об этом попросить.
Разбивка на шаги с промежуточной проверкой заставляет модель фокусироваться на одной задаче за раз, вместо того чтобы держать в голове всю цепочку целиком. Это снижает число случайных ошибок в мелких деталях, которые обычно "проваливаются" при перегрузке.
Рычаги управления: - Требование "проверь перед тем как перейти дальше" → уменьшает число ошибок в тривиальных деталях, но увеличивает длину ответа - Запрет на угадывание ("если не уверен — напиши, что не уверен, а не выдумывай") → снижает уверенные, но неверные ответы - Удаление лишнего контекста из промпта (только суть задачи, без "воды") → повышает точность на длинных запросах
Ограничения
⚠️ Увеличивает длину диалога: разбивка на шаги с промежуточной проверкой требует больше токенов и времени — избыточно для простых задач.
⚠️ Не устраняет проблему полностью: даже с проверкой шагов модель может неправильно понять зависимость между подзадачами, если она сформулирована нечётко.
⚠️ Модель может уверенно ошибаться: если тема требует специфичных знаний или актуального веб-поиска, промежуточная "проверка" самой моделью не гарантирует правильность — она может убедить себя в неверном ответе.
Как исследовали
Исследователи собрали 31 составную задачу (30 держат в закрытом тестовом наборе, чтобы модели не могли "подсмотреть" ответы), каждая — из 2 до 13 связанных подзадач из разных областей: математика, код, текстовые головоломки, поиск информации. Три топовые модели тестировали с максимальным "усилием мышления" и всеми включёнными инструментами — поиском, кодом.
Для усложнения часть промптов "разбавляли" тысячами нерелевантных символов или полностью шифровали через словарь замены символов, заставляя модель сначала расшифровать запрос, а потом решить задачу.
Результат неожиданный: даже лучшая модель правильно решила меньше половины задач — сильно ниже, чем на обычных однодоменных тестах, где топовые модели показывают 90%+. Причём только чуть больше половины ответов вообще можно было разобрать — модели обрывали ответ или не давали чёткого финального вывода. Самое любопытное — модели почти никогда не отказывались отвечать, даже когда явно не могли решить подзадачу: они угадывали финальный ответ. Одна из моделей отдельно выделялась низким процентом галлюцинаций — не потому что решала лучше, а потому что реже давала хоть какой-то разборчивый ответ вообще.
Ресурсы
Liam Swayne, "Relay-Bench: Evaluating LLMs on Multi-Domain Reasoning Chains", июнь 2026, CC BY 4.0.
