In a previous series, I talked about the C = T + F + S formula for analyzing your Dialogflow chatbot.
As a quick reminder:
C = Candidate intents
T = Target intents
F = Fallback intents
S = Surplus Intents
An intent without an input context is always a candidate
If you remember from previous discussions, an intent which doesn’t have an input context set is always a candidate intent at every step in the conversation.
Let us call these entry intents. (E)
An intent which does have an input context set is only a candidate if that context is active at that point in the conversation.
Let us call these non-entry intents. (N)
Breaking down surplus intents into E and N type intents
In my definition, surplus intents are candidates that you don’t want to fire at a given point in the conversation.
Now entry intents, by their very nature, are going to remain the same through the whole conversation. That is, all entry intents are surplus at every step (except the very first step, when they are the target intents) in the conversation.
However, non-entry intents are those which are somehow active and shouldn’t really be.
A good example is when you fill your entire agent with the default context lifespan of 5. Now if you use the CTFS formula at each step, you will notice that you have plenty of non-entry surplus intents.
Now, obviously we need entry intents. Otherwise, how will the user even start the conversation?
Your goal should be to define sensible entry intents and avoid non-entry surplus intents.
I am planning to create a tool which will help you analyze your bot using the CTFS framework. This will make it much clearer how you can use the ideas presented here to make your bot work as you expect.