February 14, 2018Shiraz Datta
We’re always looking for ways to increase skill dialog accuracy for Alexa. In that pursuit, today we announced an update to Alexa Skills Kit (ASK) dialog management features. This update lets you use the built-in Yes/No intents side-by-side with dialog management (slot elicitation, slot confirmation, and intent confirmation), which was not previously supported. This allows you to create more natural conversations with your users.
Now with improved dialog management features, you can take advantage of contextual awareness during multi-turn interactions with your user. You can now use dialog to simplify the handling of yes and no responses. Within a dialog, you can choose to interpret “yes” or “no” responses as confirming a slot, confirming an intent, or even filling a slot with the value of “yes” or “no.” Further, you can use AMAZON.YesIntent and AMAZON.NoIntent within the same skill to handle “yes” and “no” responses outside of a dialog. These contextual benefits go beyond just “yes” and “no” responses—you can use them to improve contextual accuracy for the next response from your user.
You can also use "single slot" sample utterances to trigger intents. This was a common design approach before the introduction of the dialog directives. Alexa can now distinguish between a response like "Seattle" spoken during slot elicitation in a dialog, and "Seattle" spoken outside the context of a dialog to trigger a custom intent. Single-slot utterances provide a natural way for users to converse with your skill.
As an example, here’s a use case where we are considering a skill for planning trips that uses a dialog model for the PlanMyTrip intent. This dialog collects slot values for the starting city (fromCity), destination city (toCity), date (travelDate), and other variables. The dialog is configured to require slot confirmation for the fromCity slot.
This skill could also include AMAZON.YesIntent and AMAZON.NoIntent to get yes/no responses completely outside of the dialog:
User: Ask Plan My Trip to start a new trip leaving from Seattle. (This invokes the PlanMyTrip intent and fills the fromCity slot with the value “Seattle”.)
Alexa: You said you are leaving from Seattle, right? (Confirmation prompt for the fromCity slot.)
User: Yes. (Because the user is in a dialog currently requesting slot confirmation, this “yes” response is used to confirm the fromCity slot value.)
…(additional steps within the dialog to collect and confirm the remaining slots for the PlanMyTrip intent. Once the dialog is complete, the skill fulfills the user’s request by sending the final response for PlanMyTrip.)
Alexa: I’ve saved your trip. Do you want to create another trip? (Since the previous dialog was complete, the user’s response to this question is outside the dialog and not related to the PlanMyTrip intent.)
User: Yes. (Since the user is not within a dialog at this point, this response invokes AMAZON.YesIntent.)
Skill handles AMAZON.YesIntent appropriately…
These improvements let you take advantage of the code simplifications offered by dialogs without giving up useful design features like the Yes/No intents.
Learn more about how you can incorporate these features for greater dialog accuracy in your skill. And connect with the Alexa community on our developer forums as you get started. We can't wait to see what you build.