Well, you can say a good bot behaves more like a human.
While there could be many other factors, the ones listed here are believed to be primary.
Since this sort of conversation is highly ambiguous and a difficult model to simulate lets first take the case of professional interactions which are more structured and so easy to simulate.
The number of interactions in a professional conversation can be around 10–20.
This looks similar to recommendation engine which works behind the scenes in amazon website — When you buy a book, your footprints are captured, translated into a vector and the recommendations are derived by looking at parallel vectors.
In a similar fashion, as the user is interacting with the bot, it has to identify conversation vector, look for parallel vectors and accordingly predict the next possible intent or intents and drive the conversation.
One which is applicable often is intent clustering.
The slots which have the same name within a cluster carry the same value.Specific test cases are designed exclusively for the bot. Context handling is one important way to make sure bots are smart.