Bot Framework v4 skills echo sample.
This bot has been created using Bot Framework, it shows how to create a simple skill consumer (SimpleRootBot) that sends message activities to a skill (EchoSkillBot) that echoes it back.
This sample is a Spring Boot app and uses the Azure CLI and azure-webapp Maven plugin to deploy to Azure.
The solution includes a parent bot (SimpleRootBot
) and a skill bot (EchoSkillBot
) and shows how the parent bot can post activities to the skill bot and returns the skill responses to the user.
SimpleRootBot
: this project shows how to consume an echo skill and includes:- A RootBot that calls the echo skill and keeps the conversation active until the user says "end" or "stop". RootBot also keeps track of the conversation with the skill and handles the
EndOfConversation
activity received from the skill to terminate the conversation - A simple SkillConversationIdFactory based on an in memory
Map
that creates and maintains conversation IDs used to interact with a skill - A SkillsConfiguration class that can load skill definitions from
appsettings
- A SkillController that handles skill responses
- An AllowedSkillsClaimsValidator class that is used to authenticate that responses sent to the bot are coming from the configured skills
- A Application class that shows how to register the different skill components for dependency injection
- A RootBot that calls the echo skill and keeps the conversation active until the user says "end" or "stop". RootBot also keeps track of the conversation with the skill and handles the
EchoSkillBot
: this project shows a simple echo skill that receives message activities from the parent bot and echoes what the user said. This project includes:- A sample EchoBot that shows how to send EndOfConversation based on the message sent to the skill and yield control back to the parent bot
- A sample AllowedCallersClaimsValidator that shows how validate that the skill is only invoked from a list of allowed callers
- A sample skill manifest that describes what the skill can do
- Create a bot registration in the azure portal for the
EchoSkillBot
and update EchoSkillBot/application.properties with theMicrosoftAppId
andMicrosoftAppPassword
of the new bot registration - Create a bot registration in the azure portal for the
SimpleRootBot
and update SimpleRootBot/application.properties with theMicrosoftAppId
andMicrosoftAppPassword
of the new bot registration - Update the
BotFrameworkSkills
section in SimpleRootBot/application.properties with the app ID for the skill you created in the previous step - (Optionally) Add the
SimpleRootBot
MicrosoftAppId
to theAllowedCallers
list in EchoSkillBot/application.properties - Open the
SimpleBotToBot
project and start it for debugging - Open the
EchoSkillsBot
project and start it for debugging
Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel.
- Install the Bot Framework Emulator version 4.7.0 or greater from here
- Launch Bot Framework Emulator
- File -> Open Bot
- Enter a Bot URL of
http://localhost:3978/api/messages
, theMicrosoftAppId
andMicrosoftAppPassword
for theSimpleRootBot
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.