Провалы ИИ

Шесть провалов ИИ-менеджера на отладке: что он натворил, почему и какой тест теперь это ловит?

6 провалов ИИ-менеджера на отладке

ИИ-менеджер ошибается — и чаще всего смешно: понимает правило буквально, берёт график не той службы, прощается в начале разговора. Все шесть историй ниже — настоящие, из журналов отладки и тестов нашего проекта, с заменой деталей и без признаков клиента. У каждой — что сделал ИИ, почему он так решил, что поменяли и какой тест теперь это ловит. Мы показываем их не вопреки доверию, а ради него: ИИ-менеджер, который прошёл прогон по набору тестовых диалогов, лучше того, про которого говорят, что он не ошибается.

Как ИИ открыл пункт выдачи в воскресенье?

Клиент: «Можно забрать завтра? Завтра воскресенье.»

ИИ-менеджер: «Да, конечно! Пункт выдачи работает, приезжайте с десяти.»

Пункт выдачи в воскресенье не работал. Работал чат: ИИ-менеджер отвечает в нём по выходным, и в его настройках стояло «выходные — рабочие». Он взял график, который видел ближе всего, то есть свой собственный. И честно сообщил его клиенту как график пункта выдачи. Дальше хуже: проверяющий ИИ, который перечитывает ответы перед отправкой, тоже смотрел на тот же флаг и считал ответ верным.

Что поменяли. У пункта выдачи появился свой график, отдельный от графика чата. ИИ-менеджер, проверяющий и инструмент «когда можно забрать» получают два разных флага: «менеджеры сейчас работают» и «пункт выдачи сейчас открыт».

Какой тест это ловит. Диалог в субботу вечером с вопросом «заберу завтра?» — ответ обязан содержать ближайший рабочий день пункта выдачи, а не «да, конечно».

Как проверяющий исправил правильный ответ на неправильный?

Клиент: «Сколько будет доставка до меня?»

ИИ-менеджер (черновик): «До вашего города — столько-то, по условиям транспортной компании.»

Проверяющий ИИ: «Ответ неверный, перепиши: доставку считает менеджер.»

У нас два ИИ: один пишет ответ, второй его придирчиво читает и может вернуть на доработку. Задумано, что второй ловит выдумки. В этот раз второй не знал, что у первого появился инструмент расчёта доставки, и переписал верный ответ на осторожный «уточнит менеджер». Клиент получил хуже, чем мог.

Что поменяли. Проверяющий видит те же факты и инструменты что и пишущий: прайс, условия доставки, график. Ему запрещено спорить с результатом расчёта — только с тем, чего в расчёте нет.

Какой тест это ловит. Диалог с вопросом о доставке в известный город: итоговый ответ обязан содержать цифру из расчёта а не «уточнит менеджер».

Как ИИ отправил клиента ждать «рабочего времени» в разгар рабочего дня?

Клиент: «А скидку на пять штук дадите?»

ИИ-менеджер: «Этот вопрос решает менеджер, он ответит вам в рабочее время.»

Был вторник, два часа дня. Менеджеры сидели за соседними столами.

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

Что поменяли. Фраза «в рабочее время» теперь только вне рабочего времени. Днём ИИ-менеджер говорит «передал менеджеру, он ответит в ближайшее время» и ставит задачу с пометкой «клиент ждёт сейчас».

Какой тест это ловит. Диалог в будний день с вопросом о скидке: в ответе не должно быть слов «в рабочее время».

Как ИИ так старался посчитать большой заказ, что упал?

Клиент: «Посчитайте, пожалуйста, вариант на очень большой объём, с нестандартными параметрами.»

ИИ-менеджер: (молчание)

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

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

Какой тест это ловит. Три тестовых заказа на заведомо большие объёмы: расчёт либо укладывается в лимит времени и памяти, либо честно передаёт заказ человеку. Молчание — провал теста.

Как дожим начинался с «до свидания»?

ИИ-менеджер (через день после расчёта): «До свидания! Если появятся вопросы, пишите.»

Клиент: «???»

Дожим — напоминание клиенту, который замолчал после расчёта. Чтобы ИИ-менеджер не повторял одно и то же, ему предложили «продолжить с того места, где остановился разговор». Последней его фразой в прошлый раз было вежливое прощание. Он и продолжил — с прощания. Выглядело так, будто ИИ-менеджер зашёл в чат, что бы попрощаться ещё раз. Я, когда увидел это в журнале, сначала решил, что тестировщик шутит.

Что поменяли. У напоминания своя задача: коротко вернуться к сути расчёта и задать один вопрос. Прощальные фразы в напоминаниях запрещены отдельным правилом.

Какой тест это ловит. Сценарий «клиент молчит после расчёта»: первое напоминание не должно начинаться с прощания и должно содержать вопрос.

Как ИИ пообещал срок, которого нет в расчёте?

Клиент: «Когда сможете отгрузить?»

ИИ-менеджер: «Отгрузим в течение двух дней.»

В расчёте который ИИ-менеджер только что сделал, стоял срок изготовления в несколько раз длиннее. Но вопрос «когда отгрузите» он воспринял как общий и ответил из общих представлений о «быстро». Клиент получил обещание, которое компания не могла выполнить.

Что поменяли. Появился валидатор обещаний: перед отправкой ответ сверяется с расчётом: срок, цена, состав. Если в ответе есть срок, которого нет в расчёте, ответ возвращается на доработку с указанием, какой срок правильный.

Какой тест это ловит. Диалог с расчётом на заказную позицию и вопросом о сроке: срок в ответе обязан совпадать со сроком из расчёта.

Проверьте у своего бота

Вот что я бы спросил у любого ИИ-менеджера до запуска. У своего или у чужого, без разницы.

  • «Можно забрать завтра?» — в субботу вечером. Правильный ответ называет день когда пункт выдачи действительно откроется.
  • «Дадите скидку?» — в рабочий день днём. В ответе не должно быть «в рабочее время».
  • «Когда отгрузите?» - сразу после расчёта с долгим сроком. Срок в ответе должен совпасть с расчётом.

Если бот ответил на все три верно — хорошо. Если нет — вы только что нашли его первый провал, и это лучше, чем если бы его нашёл клиент. А во что обходится бот, который молчит вместо того чтобы ошибаться, покажет калькулятор потерянных заявок. У нас такие вопросы собраны в набор тестовых диалогов, который ИИ-менеджер проходит перед запуском и после крупных изменений. Что ещё входит в его работу и где он передаёт слово человеку, описано в словаре что такое ИИ-менеджер, а как он ведёт себя в чатах Авито — в инструкции про ИИ на Авито. Для ниш, где цена ошибки особенно высока, посмотрите десять задач ИИ в юридической фирме: там он только записывает и передаёт.

Частые вопросы

Это настоящие ошибки или придуманные для статьи?

Настоящие, из журналов отладки и тестов. Детали и реплики изменены, признаков компании нет. Придуманных историй в серии не будет: нет проверенного сюжета — нет эпизода.

Сколько таких ошибок доходит до клиентов?

Эти шесть поймали на отладке и в тестах, а не клиенты. Обещать, что до клиентов не дойдёт ничего, мы не будем: поэтому диалоги первых недель после запуска читают люди.

Что такое прогон по тестовым диалогам?

Набор сценариев — наличие, доставка, скидка, выходные, большой заказ, молчание клиента, — который ИИ-менеджер проходит перед запуском и после крупных изменений. Каждый сценарий проверяет конкретное поведение, а не «понравился ли ответ».

Можно ли проверить своего бота этими вопросами?

Да, три вопроса в конце статьи подходят для любого ИИ-менеджера. Задайте их в нерабочее время и днём и сравните ответы.