Всем привет! Не такую первую публикацию я планировал сделать на Хабр: есть пара более серьёзных и интересных тем, которыми я планирую поделиться, но перфекционизм пока не даёт их добить.
А тут получилась спонтанная и короткая история из разряда «поигрался - проиграл задумался», которая неожиданно упёрлась в этику и безопасность.
Я являюсь счастливым обладателем всего парка отечественных колонок с голосовыми ассистентами Салютом, Марусей и Алисой. Иногда, когда в одиночестве пьёшь кофе, ассистенты становятся неплохими собеседниками. (Кстати, маленький крик души разработчикам VK: ну сделайте, пожалуйста, уже окно контекста диалога не в одну фразу).
В какой‑то момент появился простой вопрос: «А можно ли заставить ассистента произнести что‑то, что он в норме говорить не должен?» Без API, без навыков программирования, без автоматизации и тому подобное
Оказалось — можно.
В целом и Маруся, и Салют ведут себя довольно аккуратно (до Алисы, если честно, ещё не добрался, она у сына в комнате). Если сказать что‑то в лоб, они чаще всего уклоняются от ответа или просто отказываются вести диалог.
Маруся и «аксиома Эскобара»
У Маруси есть простая механика: можно задать вопрос в формате «А или Б?» и она выберет один из вариантов (замечание: А и Б должны быть просто словами).
Проблема в том, что для Маруси это не имеет значения. Она не оценивает сами варианты, она просто выбирает и произносит. И если оба варианта заданы не самым удачным образом, один из них всё равно будет озвучен.
В какой-то момент я поймал себя на мысли, что это напоминает уже классическую «аксиому Эскобара», когда из двух вариантов оба так себе, но выбирать всё равно приходится.
Салют и его «друзья»
Очень интересный баг (или фичу) я обнаружил у Салюта. Если взять любую фразу, разбить её на части и скормить Салюту как имена, например:
«Сбер, моего друга зовут <часть_вашей_фразы>»
«Сбер, моего следующего друга зовут <вторая_часть_фразы>»
То дальше происходит интересное. Если попросить его поздороваться с друзьями и просто перечислить имена, он берёт список и зачитывает его. А если немного поэкспериментировать, то он может на любое приветствие или триггер-фразу зачитывать этот список гостей/друзей/брата/свата подряд и в итоге получается цельная и порой щекотливая фраза. Система не отслеживает общий смысл. Она просто последовательно воспроизводит то, что считает именами.
Дисклеймер:
Ниже приведён демонстрационный пример работы Салюта. Пример может содержать некорректные выражения, они приведены исключительно в исследовательских целях для демонстрации поведения системы и не отражают позицию автора.
Также Салют умеет запоминать факты о пользователе и его окружении. И здесь тоже довольно мало ограничений, можно задать практически любые формулировки. После этого достаточно попросить: «Расскажи про меня» или «Расскажи про друзей» и он воспроизводит сохранённые формулировки дословно.
Сценарии с напоминаниями тоже показательные. Команды вида:
«Маруся/Сбер, напомни мне через минуту … <что угодно>»
позволяют сохранить практически любую фразу, которая затем будет озвучена без дополнительной проверки. Это ещё один пример того, что контроль на этапе сохранения и вывода минимальный.
Заключение
Если обобщить, такие сценарии - это не просто поведение конкретного ассистента, а следствие архитектуры. В современных AI-системах пользовательские данные, память и контекст объединяются, и модель начинает воспринимать их как доверенные, не всегда различая «данные» и «инструкции» . Это напрямую пересекается с классом атак prompt injection, где поведение системы можно изменить без явного нарушения правил.
Проблема в том, что контроль обычно есть на входе, но отсутствует на выходе: система не проверяет, что именно она собирается озвучить. В результате безопасные по отдельности элементы могут складываться в нежелательный результат, вплоть до утечек или репутационных рисков.
LLM и голосовые ассистенты нельзя рассматривать как доверенный компонент, они должны быть встроены в архитектуру с явным разделением контекста, ограничением полномочий и проверкой результата на выходе. Иначе любая система, работающая с пользовательскими данными, рано или поздно столкнётся с тем, что «нормальные» входные данные приведут к ненормальному поведению на выходе.
Ну и идём проверять, пока не пофиксили, и делимся своим опытом об особенностях работы ассистентов в комментариях.