How deep should a story be written?

As a concrete example from the demo bot,

* affirm
    - utter_great
    - utter_anything_else

When the bot replied with ‘Do you have anything else to help with’ (utter_anything_else), the following stories can potentially be written as a follow-up with ‘affirm’, namely, be written in the same story as ‘affirm’, or be written in a different story. What’s the guiding principe of determining the length or depth of a story?

Hi there, this is a really good question, and there is no definite answer to it. In general, the more training data you generate, the better – and this can mean having many stories as well as growing them deeper.

In your particular case, however, it makes more sense to write the continuation as part of the original story, because the user’s 2nd affirm could mean anything without the conversation history, but it means something very specific in this context (namely, it means that the bot should ask what exactly it can help the user with next).

It would make sense to split the story into 2 only if the 2nd part didn’t depend on the history (the 1st part). Even in such case, however, it might be worth to include the story in your training data both as a whole, and as the 2 separate pieces – generating more data in this way can help the Core learn better.

Does this answer your question? By the way, the upcoming Rasa summit is a cool opportunity to meet Rasa contributors, developers and users, and discuss tricky question like yours into much more detail :slight_smile:

Hi, @SamS that kind of answered my question, and I think it needs more experiences and experiments to write better stories. Also, could you describe the story training algorithm in a layman language that should be helpful in guiding how the stories should be written.

There is no single story training algorithm. The Core will use whichever algorithms (policies) you tell it to in your config.yml. I suggest you read more about the individual policies in the docs and feel free to ask questions if you don’t understand something.