Может ли чат-бот персонажа признать, что чего-то не понял?
Да. Когда чат-бот персонажа не уверен в том, что имеет в виду пользователь, он может прямо сказать об этом, назвать конкретную неясность, задать один прицельный вопрос и продолжить сцену после получения ответа. Полезный навык заключается не в том, чтобы задавать больше вопросов по умолчанию, а в том, чтобы исправить недопонимание именно в тот момент, когда оно грозит увести диалог в тупик. В этом руководстве рассматриваются три ситуации: неясная отсылка, неоднозначное действие и исправление ошибки после того, как бот уже ответил неверно.
Как выглядит удачное исправление?
Удачное исправление делает неясность заметной и простой для разрешения. Оно указывает на непонятное слово, отсылку или цель; предлагает предварительную интерпретацию, если это уместно; и задает конкретный вопрос, ответ на который повлияет на дальнейшие действия персонажа. Как только пользователь вносит ясность, бот принимает исправление и возвращается к сюжету.
Например:
Пользователь: Мара отдает это ему. Бот: Я не совсем понимаю, о ком речь под словом «ему» — о Джоне или о стражнике? Я пока повременю с передачей, пока ты не выберешь. Пользователь: Стражнику. Бот: Понял. Мара незаметно опускает ключ в ладонь стражника, пока Джон караулит у двери.
Бот не делает вид, будто с самого начала знал, о ком идет речь. Он ставит на паузу лишь ту часть сцены, которая зависит от ответа, а затем использует полученное уточнение для продолжения сюжета.
Такой подход согласуется с исследованиями в области исправления диалоговых ошибок, хотя они и не тестируют напрямую чаты с художественными персонажами. В [исследовании «исправления в третьей позиции» в диалоговых вопросно-ответных системах за 2023 год](https://aclanthology.org/2023.sigdial-1.52/) Балараман и коллеги изучают случай, когда человека не понимают, он видит ошибочный ответ и затем исправляет его. В [исследовании уточняющих вопросов в совместных задачах за 2024 год](https://aclanthology.org/2024.eacl-long.16/) Тестони и Фернандес рассматривают ситуации, когда системам следует задавать уточняющие вопросы. Вместе эти работы дают релевантные проектировочные ориентиры по работе с неопределенностью и исправлениями, но не доказывают универсальных эффектов и не утверждают, что определенные формулировки однозначно улучшают ролевую игру.
Ситуация 1: У слова или отсылки несколько вероятных значений
Если местоимение, имя, предмет или фраза могут указывать на разные вещи, процитируйте или выделите двусмысленный фрагмент. Не стоит просить пользователя переписывать реплику целиком, если проблему решает один простой выбор.
Пользователь: Она кладет это рядом с другим. Бот: Что именно означает «это» — карту или фонарь?
Краткая предварительная версия может помочь, если один вариант кажется вероятным, но уверенности нет:
Бот: Я предположил, что под «старым» имеется в виду первая найденная вами карта. Вы имели в виду эту карту или пожилого персонажа?
Такую догадку должно быть легко скорректировать. Если вероятны оба варианта, перечислите их; если требуется открытый ответ, прямо спросите о недостающей детали. Не стоит описывать сюжетное действие с серьезными последствиями, оставляя двусмысленность неразрешенной. Если неясность затрагивает лишь незначительную деталь, бот иногда может продолжить, сделав явное, обратимое допущение — но ему следует четко обозначить это допущение, а не выдавать его за намерение пользователя.
Ситуация 2: Запрашиваемое действие неоднозначно
Иногда слова понятны, но неясна цель. Фраза «Сделай более драматично» может означать усиление реакции персонажа, смену обстановки или изменение стиля повествования. Задайте вопрос о конкретном выборе, определяющем следующую реплику.
Бот: Ты хочешь, чтобы сцена стала более напряженной за счет диалога, или в обстановке должно произойти что-то новое?
Вопрос должен быть ограниченным. Длинный список возможных толкований может стать для пользователя отдельной утомительной задачей. Если контекст явно указывает на один вариант, озвучьте его как гипотезу и просите подтверждения только в том случае, если ошибка существенно изменит сцену:
Бот: Я могу сделать диалог острее, если капитан ответит холоднее. Ты такое напряжение имел в виду?
Если бот может безопасно внести небольшое, легко обратимое изменение, он может сделать это и затем спросить, куда двигаться дальше. Однако ему не следует заявлять, что он понял цель, если она объективно остается неясной. Ключевое решение здесь — необходим ли ответ до продолжения: задавайте вопрос, если догадка уведет сцену по совершенно иному пути; в противном случае сделайте аккуратный, открыто обозначенный выбор, который можно будет скорректировать.
Ситуация 3: Пользователь исправляет неверный ответ
Когда пользователь говорит, что бот его не понял, процесс исправления состоит из двух шагов: признать несовпадение и обновить сцену. Не нужно защищать свою прошлую интерпретацию, незаметно переписывать историю задним числом или вынуждать пользователя повторять исправление снова.
Бот: Курьер отдает письмо Илье. Пользователь: Нет, я имел в виду, что письмо предназначается Нере. Бот: Ты прав — я отправил его не тому человеку. Курьер разворачивается и передает письмо Нере.
Если само исправление оставляет важную деталь неясной, задайте один прицельный уточняющий вопрос. Например, если пользователь говорит «Нет, другой», но подходящих предметов три, бот может перечислить оставшиеся варианты. В противном случае просто примите исправление и перенесите его в следующую реплику. Работа Баларамана и коллег здесь особенно показательна: их исследование посвящено исправлению после того, как недопонимание проявилось в ошибочном ответе (это называется «исправлением в третьей позиции»). Их контекстом были вопросно-ответные диалоговые системы, поэтому перенос этой идеи на художественные сцены — это дизайн-вывод, а не результат, проверенный ими непосредственно в ролевой игре.
Как сделать так, чтобы уточнения не вызывали раздражения
Уточнение полезно тогда, когда оно меняет дальнейшие действия бота. Оно начинает утомлять, если бот задает дежурные вопросы по привычке, хотя информации для продолжения достаточно, или отвечает длинными рассуждениями не по теме вместо устранения неясности. У игрового персонажа, бесконечно повторяющего один и тот же вопрос о квесте, проблема иного рода: само по себе повторение не объясняет, что именно бот не понял, и не помогает отреагировать на исправление пользователя.
Используйте эту быструю последовательность решений:
Вопрос вроде «Можешь уточнить?» уместен при широкой неопределенности, но он дает пользователю мало ориентиров. По возможности указывайте на конкретную недостающую деталь: «Когда ты говоришь „туда“, ты имеешь в виду башню или двор?» Тогда пользователь сможет ответить одним словом или короткой фразой, а бот — продолжить действие без перезапуска всего диалога.
Практический шаблон для авторов и разработчиков
Компактное исправление может строиться по такой схеме: «Я не уверен насчет [конкретный элемент]. Ты имеешь в виду [вариант А] или [вариант Б]?» После ответа: «Понял — [применить исправление]. [Продолжить сцену]». Адаптируйте формулировки под характер персонажа, но сохраняйте прозрачность функции. Персонаж может звучать официально, игриво или сухо, продолжая при этом точно называть неясность и следовать полученному ответу.
Этот шаблон — практическое применение исследований по исправлению диалогов, а не универсальный безотказный рецепт. Проверяйте его в сценах, где неясное местоимение, неточный запрос или ошибочный ответ привели бы к явно различным дальнейшим действиям. Цель состоит в коротком, честном уточнении, которое оставляет управление за пользователем и дает вымышленной сцене понятный путь вперед.
