I am in the process of designing a bot using PVA for a large and complex business with a huge number of potential topics. Is it better to have one bot with hundreds of Topics, or is it better to build several skills bots and have them connect into the Master bot? Any other hints and tips on architecture would be much appreciated.
Thanks legends 🙂
How do you intend to have users navigate this bot? Are the topics distinct or overlapping? PVA can support hundreds of topics, but you should take care in designing the conversational flow so users can ask the right questions.
Topics are distinct AND overlapping. Sorry to demonstrate my ignorance, but I'm not quite sure how to answer the first question. What are the key points in to consider in designing the conversational flow?
When designing a bot there are two major choices to make at the top:
Will my bot try to make free-form conversation, or will it have a series of menus to navigate? I would recommend a mix of the two, where the greeting prepares the user for what types of questions it is good at, and perhaps a sample menu of the most popular groupings of topics.
For your large list of topics, are most single question-answer pairs? You might want to combine the really common ones into a single dialog and have a menu in there for the user to select the topics. In either case, you will want to build everything in a single PVA bot, currently PVA cannot call another PVA bot as a skill. Once you get into the building of the bot, you will want to enable some of our advanced AI features, like overlap detection, to craft training phrases that will prevent the close topics from triggering incorrectly. You can read more about this here:
Are there any plans for a PVA bot to be able to call another PVA bot as a skill? It seems a bit limiting that they can't.
I would prefer free-form conversation combined with menus where it makes sense. There will be a mixture of free-form conversation and menus to navigate where it makes sense to do so.
We have had discussions, and one thing we want to understand better is WHY our customers want to use skills in a PVA first bot. We have customers that have hundreds of topics in a bot, with a mix of casual conversation and menus when it's a complex and related group of topics.
It is useful coming from the Bot Framework side, especially if you want to use a custom recognizer (and this is something you might consider for your project if overlap becomes too great).
We have recently added support for PVA as a skill, so you could set up an SDK bot to call many PVA bots, which is helpful for stuff like complex integrations and separating bots for different authors in an organization.
Thanks for asking. I am a citizen developer, i guess, but an evangelist in that i have introduced the power platform to a number of different workplaces and have some understanding of back end processes. In my circumstance, i don't have access to any other bots or bot software. I currently work for a very large government department with lots of very distinct divisions. I can see some value in creating a separate bot for each area that those areas can maintain and a 'Master Bot' that sits on top as as single point of access and can call on each of those those PVA bots as skills when required. This may be demonstrating my limited understanding of bot architecture and how things should be built work, but I feel like it would be much less unwieldy to manage. Keen to hear your thoughts, or better alternatives.
That is a common use case and only currently possible with setting up a bot framework bot as the master bot, and having it delegate it to many PVA bots via skill, as you surmised.
Thank you for the feedback I'll add it for inclusion on expanding this functionality for pva-to-pva bot routing.