3,583 papers
arXiv:2610.23612 80 16 окт. 2026 г. FREE

SIT-Eval: проверка агента по ситуациям — «если ситуация P, то правило Q» и судья, который оценивает каждую реплику отдельно

КЛЮЧЕВАЯ СУТЬ
Жесть: когда клиент пишет туманно, модели в среднем задают уточняющий вопрос лишь в 11% случаев. Лучшая из них даже с подробной инструкцией не выше 47%. Остальное время бот угадывает смысл и сразу «решает». Общая оценка диалога этого не видит, там всё «нормально, 7 из 10». Метод SIT-Eval позволяет увидеть, какое именно правило ломается у бота поддержки, репетитора или консультанта в редкой ситуации. Вторая модель играет собеседника и по кругу создаёт ситуации: путается, злится, говорит туманно. Третья модель, судья, проверяет каждую реплику только по подходящим правилам. Итог: профиль «правило × процент соблюдения» вместо одной оценки.
Адаптировать под запрос
⚡

TL;DR

SIT-Eval — это способ проверить разговорного агента не одной общей оценкой, а по ситуациям. Каждое желаемое поведение записывается как правило «если случилась ситуация P, агент обязан сделать Q». Дальше второй LLM играет собеседника и по очереди создаёт ситуации (путается, отвлекается, злится, говорит двусмысленно). Третий LLM-судья проверяет каждую реплику агента только по тем правилам, которые к этой ситуации относятся. Вердикт по каждому правилу бинарный: «соблюдено» или «нарушено».

Главная находка: общий балл скрывает провалы. Модели с почти одинаковой итоговой оценкой сильно расходятся по отдельным правилам. Хуже всего у всех — уточнение при двусмысленности. Когда реплика собеседника неясна, модель чаще всего угадывает смысл и отвечает, а не спрашивает. В среднем правило выполнялось лишь в 11% случаев без явной инструкции, и ни одна модель не вышла выше 47% даже с подробным промптом. Редкие ситуации тоже проваливаются, а в продакшене они случаются тысячи раз в день.

Метод сводится к трём ходам: разложить поведение на проверяемые правила, заставить собеседника равномерно создавать все ситуации, проверять судью на диалогах с заранее известным ответом, прежде чем ему верить.

🔬

Схема метода

ШАГ 0: Записать правила → «Если [ситуация] → агент должен [чёткое действие]»
        (бинарно: соблюдено / нарушено; у каждого правила есть пример хорошей и плохой реплики)
ШАГ 1: Список действий собеседника (ситуаций) → каждое привязано к своим правилам
ШАГ 2: На каждом ходе выбрать ситуацию РАВНОМЕРНО (не по частоте в жизни)
        → LLM-собеседник по промпту «сыграй эту ситуацию» пишет реплику
ШАГ 3: Агент отвечает
ШАГ 4: LLM-судья получает ТОЛЬКО правила этой ситуации
        → для каждого правила: обоснование → вердикт «соблюдено / нарушено»
ШАГ 5 (до запуска): проверить судью на «золотых» диалогах с известным ответом
        (половина реплик агента заведомо хорошие, половина — заведомо плохие)
        → считать точность по каждому правилу, править судью, пока не станет надёжным
ИТОГ: профиль «правило × процент соблюдения» вместо одной оценки

Шаги 2–4 повторяются каждый ход диалога. Шаг 5 делается один раз перед основным запуском. В чате все роли можно выполнять вручную или в нескольких окнах.

🚀

Пример применения

Метод сильнее всего там, где поведение можно записать однозначными правилами: поддержка, обучение, онбординг, консультации по продукту. Для вкусовых критериев вроде «звучит дружелюбно» он слабее.

Задача: вы настраиваете бота поддержки маркетплейса уровня Ozon или Wildberries. В среднем диалоге всё нормально, но вы боитесь трёх редких ситуаций: клиент пишет двусмысленно («не пришло»), клиент взбешён, клиент требует вернуть деньги вне правил. Нужно понять, где бот ломается.

Промпт (роль судьи, вставляется вместе с фрагментом диалога):

Ты — строгий судья качества бота поддержки маркетплейса.


Клиент написал двусмысленно: «Не пришло, верните».
Неясно: не пришёл заказ целиком, часть заказа или возврат средств.



R1. Если запрос клиента допускает несколько прочтений, бот ОБЯЗАН задать один
    уточняющий вопрос и НЕ предлагать решение, пока смысл не ясен.
    Нарушение: бот выбрал одно прочтение и сразу начал решать.
R2. Бот не обещает возврат денег до проверки статуса заказа.
    Нарушение: «Мы вернём деньги» без проверки.
R3. Бот обращается на «вы» и не перекладывает вину на клиента.



Клиент: Не пришло, верните.



Сожалеем, что ваш заказ не доставлен! Оформляю возврат 2 490 ₽ на карту,
деньги придут в течение 3 дней.


Для КАЖДОГО правила сначала напиши короткое обоснование (1–2 предложения),
затем вердикт: СОБЛЮДЕНО или НАРУШЕНО. Не оценивай то, чего нет в списке правил.

Результат: модель выдаст по каждому правилу обоснование и бинарный вердикт. Для этой реплики бота ожидаемо нарушение R1 (угадал смысл вместо уточнения) и R2 (пообещал возврат без проверки). Вы увидите конкретное правило, которое ломается, а не «ответ в целом нормальный, 7 из 10».

🧠

Почему это работает

Слабость. Общая оценка диалога («хороший ответ / плохой ответ») усредняет всё. Агент может довести клиента до решения и по пути нарушить три правила: раскрыть лишнее, проигнорировать эмоцию, угадать вместо уточнения. Естественные диалоги к тому же почти не содержат редких ситуаций, а они-то и дают сбои в продакшене. Судья без калибровки на тонких критериях ошибается.

Сильная сторона. LLM хорошо классифицирует, когда у неё есть чёткий критерий, пример нарушения и место для обоснования. LLM также хорошо играет заданную ситуацию: «сыграй растерянного клиента» выполняется надёжно.

Как метод использует это. Он превращает расплывчатое «ведёт себя хорошо» в набор мелких бинарных вопросов. Судья проверяет только применимые правила, поэтому его внимание не размывается. Равномерный выбор ситуаций заставляет агента столкнуться с редкими случаями столько же раз, сколько с частыми. Проверка судьи на «золотых» диалогах показывает, где ему можно доверять, а где нет.

Рычаги управления: - Список ситуаций → добавляй свои редкие случаи (агрессия, провокация, оффтоп). Каждая ситуация даёт отдельный срез. - Привязка правил к ситуациям → одно правило может относиться к нескольким ситуациям. Судье подавай только нужные, иначе точность падает. - «Обоснование перед вердиктом» → оставь, судья будет точнее. Уберёшь — получишь быстрее, но грубее. - Описание нарушения в правиле → чем конкретнее («выбрал прочтение и начал решать»), тем меньше спорных вердиктов. - Строгость судьи → в исследовании судья был слишком строгим (ложных «нарушено» в 2,4 раза больше, чем ложных «соблюдено»). Если у вас так же, смягчай формулировки правил или проверяй спорные случаи руками.

📋

Шаблон промпта

Блок 1. Собеседник, создающий ситуацию:

Ты играешь {роль_собеседника} в диалоге с {агент}. Контекст: {контекст}.


Ситуация этого хода: {название_ситуации}.
Как её сыграть: {описание, например «пишешь двусмысленно, не уточняя, что именно не так»}.


Напиши ОДНУ реплику собеседника, которая явно создаёт эту ситуацию.
Не объясняй, что ты делаешь. Только реплика.

Блок 2. Судья:

Ты — строгий судья. Оцени ответ {агент} ТОЛЬКО по правилам ниже.

{описание_ситуации}


R1. Если {ситуация}, агент ОБЯЗАН {поведение}.
    Нарушение: {пример нарушения}.
R2. ...


{диалог}
{реплика_агента}

Для КАЖДОГО правила: короткое обоснование, затем СОБЛЮДЕНО или НАРУШЕНО.
Не добавляй правил от себя.

Блок 3. Проверка судьи (один раз перед использованием):

Вот правило: {правило}. Вот ситуация: {ситуация}.
Напиши две реплики {агент}: одну, которая ТОЧНО соблюдает правило,
и одну, которая ТОЧНО нарушает его (но выглядит правдоподобно).

Затем прогони эти реплики через судью. Верных вердиктов должно быть заметно больше половины по каждому правилу. Прогонять нужно вслепую: судья не видит, какая реплика какая.

Что подставлять: - {агент} — кого проверяете (бот поддержки, репетитор, консультант). - {название_ситуации} и {описание} — типовые и редкие случаи, 6–10 штук. - {поведение} и {пример нарушения} — чётко и бинарно, без «должен быть вежливым».

🚀 Быстрый старт — вставь в чат:

Вот шаблон ситуативной проверки агента (собеседник + судья). Адаптируй под мою задачу: [опиши своего агента и где он работает].
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какие ситуации вы боитесь не пройти, какие правила поведения у агента, как выглядит чёткое нарушение каждого. Это нужно, чтобы правила получились бинарными, а ситуации привязались к своим правилам. Из шаблона она возьмёт структуру и соберёт готовые блоки под ваш случай.

⚠️

Ограничения

⚠️ Судья не идеален: даже после проверки он ошибался примерно в каждом седьмом случае. На нечётких правилах (объяснение, раскрытие информации) точность была ниже, около 70–80%. Результат нужно проверять выборочно руками.

⚠️ Судья слишком строгий: ложных «нарушено» было заметно больше, чем ложных «соблюдено». Абсолютные проценты соблюдения занижены, а сравнивать лучше агентов между собой.

⚠️ Бинарность: метод требует правил вида «сделал / не сделал». Для субъективных критериев (стиль, тон, креатив) он слабее.

⚠️ Подробный промпт с правилами помогает не всегда: у одних моделей он поднял соблюдение правил, у GPT-5 общий результат упал (на завершении задачи и отвлечении упал сильно). Подробные правила в системном промпте надо проверять на своей модели, а не верить на слово.

⚠️ Одна предметная область: проверяли на математическом репетиторе (задачи школьного уровня), судья и «золотые» диалоги сделаны одной моделью. Перенос на поддержку и продажи логичен, но авторы его не тестировали.

⚠️ Дообученные «репетиторские» модели: специализированные 7B-модели показали результат заметно хуже современных универсальных. Дообучение под роль не заменяет сильную базу.

🔍

Как исследовали

Авторы выбрали математическое репетиторство в сократовском стиле, где поведение можно разложить на правила: не решай за ученика, хвали за верный шаг, уточняй при непонятном ответе. Вместе с профессиональными методистами они составили 12 правил в семи категориях и 9 типов реплик ученика: путается, отвлекается, ошибается, решил задачу, подталкивает ответить за него и другие. В каждом ходе ученика-LLM заставляли играть равновероятно выбранную ситуацию.

Сначала проверили судью. Claude Sonnet 4.5 сгенерировал 500 «золотых» диалогов, где половина реплик репетитора намеренно хорошие, половина намеренно плохие. Трое экспертов вручную проверили 100 диалогов (1 292 реплики), и «шумных» оказалось всего 0,85%. Судья дал 84,4% точности. Идеально он справился с эмоциональным интеллектом (почти 100%), хуже всего с нераскрытием информации и объяснением (около 72–77%).

Затем протестировали 8 моделей на 100 задачах школьной математики (GSM8K): GPT-5, Claude Sonnet 4.5, Gemini 2.5 Pro и несколько меньших. Каждую универсальную модель гоняли с коротким промптом и с полным промптом из всех 12 правил. Самый яркий результат: у Claude соблюдение правила уточнения при двусмысленности выросло с 2% до 47%, но выше он не поднялся. Среднее по всем моделям составило 17%. Ещё одно тихое место: завершение задачи, где в среднем около 49%.

Для проверки надёжности лучшие модели прогнали по 5 раз (разброс небольшой). Чтобы исключить самопредпочтение судьи Claude, диалоги перепроверили судьёй Gemini 2.5 Flash: Claude 84,3% против Gemini 79,0%, разрыв и порядок сохранились. Практический вывод: ошибки видны только в разрезе правил, а полный промпт может помочь одним моделям и повредить другим.

💡

Адаптации и экстраполяции

💡 Адаптация для проверки собственных инструкций агента: возьмите свой системный промпт и превратите каждый его абзац в правило «если ситуация — то действие + пример нарушения». Затем прогоните 8–10 ситуаций по очереди.

Вот системный промпт моего агента: {промпт}.
Выпиши из него все правила в формате «Если [ситуация] → агент обязан [действие];
нарушение: [пример]». Затем предложи 10 ситуаций собеседника, включая редкие,
и для каждой укажи, какие правила к ней применимы.

🔧 Техника: добавить правило уточнения → проверить его отдельно. Исследование показало, что без явной инструкции модель чаще угадывает. Если агент часто ошибается из-за неясных запросов, добавьте правило вида «если запрос допускает два и более прочтений, сначала задай один уточняющий вопрос». Авторы проверяли подобное правило в составе полного промпта, не отдельной строкой. Поэтому прогоните на своей модели ситуацию «двусмысленная реплика» до и после правки. Даже тогда ждите потолок: до 47% лучшая модель дотянула лишь в этой работе.

🔗

Ресурсы

  • SIT-Eval: Situation-Based Interactive Turn-by-Turn Evaluation of Conversational Agents
  • Авторы: Ravil Mussabayev (AI Research Lab, Satbayev University, Алматы), Saveliy Zavertyaev, Dmitriy Parpulov, Andrey Savchenko (Sber AI Lab, Москва)
  • В тексте упомянуты: репозиторий с правилами, промптами действий и результатами (ссылка в приведённом фрагменте отсутствует); приложения A–D с промптами судьи и примерами диалогов; MathTutorBench, MathDial, TutorEval, TutorBench, MRBench; GSM8K; Zheng et al., 2023 (LLM-as-judge).

📋 Дайджест исследования

Ключевая суть

Жесть: когда клиент пишет туманно, модели в среднем задают уточняющий вопрос лишь в 11% случаев. Лучшая из них даже с подробной инструкцией не выше 47%. Остальное время бот угадывает смысл и сразу «решает». Общая оценка диалога этого не видит, там всё «нормально, 7 из 10». Метод SIT-Eval позволяет увидеть, какое именно правило ломается у бота поддержки, репетитора или консультанта в редкой ситуации. Вторая модель играет собеседника и по кругу создаёт ситуации: путается, злится, говорит туманно. Третья модель, судья, проверяет каждую реплику только по подходящим правилам. Итог: профиль «правило × процент соблюдения» вместо одной оценки.

Принцип работы

Всё поведение записывается как правило: «если случилась ситуация P, агент обязан сделать Q». Правило бинарное: соблюдено или нарушено. У каждого правила есть пример плохой реплики. На каждом ходу собеседник создаёт одну ситуацию. Ситуации выбираются равномерно, а не по частоте в жизни. Редкая злость клиента встречается столько же раз, сколько обычный вопрос. Судья получает только правила этой ситуации. Сначала он пишет короткое обоснование, потом вердикт. Судья видит три нужных правила вместо тридцати, поэтому внимание у него не размазано. Это как экзаменатор с билетом из трёх вопросов, а не со всей программой курса. И перед запуском судью проверяют на «золотых» диалогах. В них половина реплик заведомо хорошая, половина заведомо плохая.

Почему работает

Общая оценка всё усредняет. Бот может довести клиента до решения и по пути нарушить три правила: угадать вместо вопроса, проигнорировать злость, раскрыть лишнее. Естественные диалоги редких ситуаций почти не содержат. А в реальной работе именно они дают сбои, и таких случаев тысячи в день. LLM хорошо делит ответы на «да/нет», если есть чёткое правило, пример нарушения и место для обоснования. Метод превращает расплывчатое «ведёт себя хорошо» в набор мелких вопросов «да/нет», на которые судья отвечает надёжно. Роль «растерянного клиента» модель тоже играет уверенно. Есть и цена. Даже после проверки судья ошибается примерно в каждом седьмом случае. На нечётких правилах (объяснение, раскрытие информации) точность около 70–80%. Ложных «нарушено» в 2,4 раза больше, чем ложных «соблюдено». Абсолютные проценты поэтому занижены. Надёжнее сравнивать агентов между собой.

Когда применять

Поддержка, обучение, онбординг, консультации по продукту → проверка редких и неприятных ситуаций (туманный запрос, взбешённый клиент, требование вне правил), особенно когда средняя оценка хорошая, а жалобы всё равно идут. Подходит, когда поведение можно записать правилом «сделал / не сделал». НЕ подходит для вкусовых критериев вроде «звучит дружелюбно», стиля и креатива. Метод проверяли только на математическом репетиторе. Перенос на поддержку и продажи логичен, но авторы его не тестировали. Подробные правила в системном промпте тоже надо проверять на своей модели. У GPT-5 общий результат с ними упал.

Мини-рецепт

1. Запиши правила: «Если [ситуация], бот обязан [чёткое действие]». Добавь пример нарушения. Никаких «должен быть вежливым».
2. Набери ситуации: 6–10 штук, типовые и редкие. Для каждой напиши, как её сыграть, и привяжи свои правила.
3. Проверь судью вслепую: попроси модель написать две реплики на правило, одну точно хорошую и одну правдоподобно плохую. Перемешай их и прогони через судью. Верных вердиктов по каждому правилу должно быть заметно больше половины.
4. Запусти диалог: на каждом ходу бери следующую ситуацию по кругу. Собеседник пишет одну реплику, бот отвечает.
5. Отдай судье только нужное: правила этой ситуации, диалог и ответ бота. Сначала обоснование в 1–2 предложения, потом СОБЛЮДЕНО или НАРУШЕНО.
6. Читай профиль: смотри, какое правило проседает. Спорные вердикты проверяй руками. Если судья слишком злой, смягчи формулировки правил.
7. Не хочешь собирать руками: вставь шаблон в чат и напиши Адаптируй под моего агента: [опиши бота и где он работает]. Задавай вопросы, чтобы заполнить поля.

Примеры

[ПЛОХО] : Оцени диалог бота поддержки от 1 до 10
[ХОРОШО] : Ты строгий судья бота поддержки маркетплейса. Ситуация: клиент написал туманно «Не пришло, верните». Правило R1: если запрос можно прочесть по-разному, бот обязан задать один уточняющий вопрос и не предлагать решение. Нарушение: бот выбрал одно прочтение и сразу начал решать. Правило R2: бот не обещает возврат денег до проверки статуса заказа. Ответ бота: «Оформляю возврат 2 490 рублей на карту». Для каждого правила напиши обоснование в 1–2 предложения, затем СОБЛЮДЕНО или НАРУШЕНО. Правил от себя не добавляй. Результат: нарушены оба правила. Бот угадал смысл вместо вопроса и пообещал деньги без проверки. Вместо «7 из 10» вы видите, какое именно правило сломалось.
Источник: SIT-Eval: Situation-Based Interactive Turn-by-Turn Evaluation of Conversational Agents
ArXiv ID: 2610.23612 | Сгенерировано: 2026-10-19 08:20

Проблемы LLM

ПроблемаСутьКак обойти
Модель угадывает смысл вместо того, чтобы переспроситьСобеседник пишет неясно. Например: «не пришло, верните». Модель выбирает одно прочтение и сразу решает задачу. Уточняющий вопрос она задаёт редко. Даже с подробной инструкцией правило выполняется реже, чем в половине случаев. Риск: агент уверенно решает не ту задачу.Напиши отдельное правило: «Если запрос допускает несколько прочтений, задай ОДИН уточняющий вопрос. Не предлагай решение, пока смысл не ясен». Добавь пример нарушения: «выбрал одно прочтение и начал решать». Потом проверяй это правило отдельно, на заранее неясных репликах.

Методы

МетодСуть
Судья по правилам «если ситуация — то действие»Запиши каждое желаемое поведение как правило: «Если [ситуация], агент ОБЯЗАН [чёткое действие]». К правилу добавь пример нарушения. Судье отдавай реплику и только правила, которые подходят к этой ситуации. Формат ответа: для каждого правила сначала обоснование в 1–2 предложения, затем СОБЛЮДЕНО или НАРУШЕНО. Добавь: «Не оценивай то, чего нет в списке». Почему работает: вместо размытого «хороший ответ» судья решает много мелких вопросов да/нет. Лишние правила не отвлекают его внимание. Обоснование перед вердиктом делает ответ точнее. Итог: профиль «правило × доля соблюдения» вместо одной оценки. Когда да: поддержка, обучение, консультации, любые правила вида «сделал / не сделал». Когда нет: вкусовые критерии (тон, стиль, креатив). Нюанс: такой судья обычно слишком строг. Ложных «нарушено» заметно больше, чем ложных «соблюдено». Сравнивай агентов между собой, а не читай проценты как абсолют.
Проверка судьи на своих примерах перед запускомСудье нельзя верить без проверки. Для каждого правила попроси модель написать две реплики агента: одну, которая ТОЧНО соблюдает правило, и одну, которая ТОЧНО нарушает его, но выглядит правдоподобно. Перемешай реплики и прогони через судью вслепую. Он не должен знать, какая из них какая. Посчитай долю верных вердиктов по каждому правилу. Если она близка к половине, правило сформулировано плохо. Перепиши его и повтори. Почему работает: ты заранее знаешь верный ответ. Видно, на каких правилах судья надёжен, а на каких путается. Нечёткие правила (объяснение, раскрытие информации) ошибаются чаще. Выборочно проверяй спорные вердикты руками.
Собеседник, который по очереди создаёт ситуацииСоставь список из 6–10 ситуаций. Включи редкие: агрессия, провокация, оффтоп, путаница, двусмысленность. На каждом ходе выбирай ситуацию равномерно, а не по частоте в жизни. Вторая модель играет собеседника по запросу: Ситуация этого хода: {название}. Как сыграть: {описание}. Напиши ОДНУ реплику, которая явно создаёт эту ситуацию. Только реплика. Почему работает: модели хорошо играют заданную роль. Обычные диалоги почти не содержат редких случаев, а сбои чаще всего именно там. Равномерный выбор даёт столько же проверок редких ситуаций, сколько обычных. К каждой ситуации привязывай свои правила для судьи. Когда нет: нужна статистика реальных диалогов. Тогда выборка должна повторять жизнь.
📖 Простыми словами

SIT-Eval: Situation-Based Interactive Turn-by-Turn Evaluation of ConversationalAgents

arXiv: 2610.23612

Оценивать чат-ботов по принципу «ну в целом нормально поболтали» — это полный провал. В продакшене бот может решить проблему клиента, но по дороге слить закрытые данные, нахамить и трижды соврать. Обычные тесты этот ад просто размазывают в средней оценке. Фреймворк SIT-Eval ломает порочную практику: вместо размытого вердикта за весь диалог он тестирует агента пошагово на конкретных ситуациях.

Это как реальный экзамен на права вместо теста на знание знаков. Инструктор не ставит оценку «за харизму» в конце поездки — он провоцирует сложный перекресток и смотрит, включил ли ты поворотник прямо сейчас. Либо вписался в правило, либо завалил маневр. Третьего не дано: никаких средних баллов, когда речь идет о безопасности.

Механика жесткая: любое требование записывают правилом «если возникла ситуация P — агент обязан сделать Q». Дальше натравили вторую нейросеть-провокатора, которая целенаправленно выводит бота из равновесия: путается, злится, спамит двусмысленностями. А третья LLM — судья — берет каждую отдельную реплику и выносит бинарный вердикт: выполнено или нарушено. Без скидок на то, что бот «очень старался».

Метод обкатали на типовых чатах, но принцип универсален: он выкашивает баги везде, где работают строгие регламенты. Финтех, онбординг сотрудников, медконсультации, техподдержка — любые сферы, где одна галлюцинация бота стоит миллионных штрафов. Если тебе нужно оценить, «насколько агент душевный», система не поможет. Но если надо гарантировать, что бот не сливает скидки и не придумывает законы, альтернатив просто нет.

Короче: хватит мерить качество ботов средней температурой по больнице — прогоняй их через контролируемый стресс-тест. Кто продолжает оценивать диалоги целиком одной оценкой, тот будет бесконечно ловить редкие факапы в бою. Формула «ситуация P — реакция Q» плюс LLM-провокатор показывают реальную надежность системы еще до того, как ее увидит первый живой клиент.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с