How the conversation engine thinks

Creating an architecture for your assistant is flexible in the OpenDialog platform.

In order to build robust applications, and to be able to troubleshoot your design, it is critical to understand how the conversation engine decides where to look for a next action.

Starting and open behavior

Starting components, for instance a turn that is a starting turn, are only considered when you join a level for the first time. After the first interaction, they are no longer considered.

Open turns are considered only after the starting turn is over. They are always considered from that time on.

Components can be both open and starting.

Because of these rules, it is very important for a designer to consider the behavior for any component.

Conversation engine at the start of an interaction

At the start of an interaction, the conversation engine

  • Explores all starting conversations, all the starting scenes within these conversations, all the starting turns within those scenes and any request intents associated with those starting turns will be considered as possible starting intents

  • Considers the incoming utterance and attempts to match it to one of the possible starting intents

  • If the match is successful the conversation state is updated to that intent and we are now in a fully defined conversation state down to the level of an intent.

During an interaction, these prioritization rules apply

  1. If the matching user intent defines a transition, the engine will follow that transition.

  1. If there is no transition, look for a matching app response intent within the turn.

  1. If there is no transition and no response intent is present in the turn, the engine will look for a next intent in another turn within the same scene.

  1. If an intent has ending behavior: after this intent is executed we go back up to the scenario level.

  2. If none of the rules in this section apply, then a no match is triggered, either local or global (scenario level).

Last updated