Активация и деактивация навыка

Разговор с навыком может начать только сам пользователь, сам навык может только отвечать на запросы. Чтобы начать разговор, пользователь должен сказать Алисе активационную фразу с именем нужного навыка.

В продуктах Яндекса передача контроля навыку может быть реализована одним из двух способов:

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

Алиса всегда запускает навык, если пользователь использует следующие активационные фразы:

  • «запусти навык [активационное имя]»;
  • «запусти чат с [активационное имя]»;
  • «давай поиграем в [активационное имя]».

Например, «давай поиграем в города».

Примечание. Иногда Алиса может понять, что пользователь хочет запустить навык, даже если используется другая фраза, например «запусти игру в города». Но не стоит рассчитывать на то, что такая фраза будет срабатывать каждый раз.
Активация навыка с командой

Некоторые навыки (например, справочные) может быть удобно запускать сразу с входными данными. Для этого нужно использовать специальные активационные слова:

  • «скажи [активационное имя] [команда]»;
  • «узнай у [активационное имя] [команда]»;
  • «попроси [активационное имя] [команда]»;
  • «спроси у [активационное имя] [команда]».

Например, «спроси Сбербанк где ближайшее отделение».

В протоколе взаимодействия для этого случая предусмотрено свойство request.command. При активации навыка в это свойство попадает весь текст, кроме активационной фразы. Если пользователь просто скажет спроси Сбербанк, свойство request.command в запросе будет пустым.

Деактивация навыка

Пользователь возвращается к обычному разговору с Алисой, если:

  • Навык возвращает пользователя Алисе. Когда разговор подошел к логическому концу, в ответе Яндекс.Диалогам правильно вернуть флаг "end_session": true.

  • Навык присылает ответ, не соответствующий формату, или не укладывается в 1,5 секунды, отведенные для ответа.
  • Пользователь произносит фразу «Алиса, вернись.» или нажимает кнопку Закончить ❌.