baf38f484d
* JS - Update samples and ARM templates to support latest LTS Node version * Use Node 20 as default in ARM templates * Update default value for Stack en linux * Update README files * Update botbuilder version in JS samples * Fix Node version in linux templates --------- Co-authored-by: Ivan K Berlot <ivanberlot@gmail.com> |
||
---|---|---|
.. | ||
echo-skill-bot | ||
simple-root-bot | ||
README.md |
README.md
simple-bot-to-bot Echo Skill
Bot Framework v4 Skills Echo sample.
This bot has been created using Bot Framework, it shows how to create a simple RootBot that sends message activities to a SkillBot that echoes it back.
Prerequisites
-
Node.js version 18 or higher
# determine node version node --version
Key concepts in this sample
The solution includes a parent bot (simple-root-bot
) and a skill bot (echo-skill-bot
) and shows how the parent bot can post activities to the skill bot.
simple-root-bot
: 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 dictionary that creates and maintains conversation IDs used to interact with a skill
- A SkillsConfiguration class that can load skill definitions from
.env
- An AllowedSkillsClaimsValidator class that is used to authenticate that responses sent to the bot are coming from the configured skills
- An index.js class that shows how to register the different skill components. This file also reigisters a
skillEndpoint
that is used to handle responses sent from the skills
- 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
echo-skill-bot
: 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
- A sample EchoBot that shows how to send
To try this sample
-
Clone the repository
git clone https://github.com/microsoft/botbuilder-samples.git
-
(Optionally) Create a bot registration in the azure portal for the
echo-skill-bot
and update echo-skill-bot/.env with theMicrosoftAppId
andMicrosoftAppPassword
of the new bot registration -
(Optionally) Create a bot registration in the azure portal for the
simple-root-bot
and update simple-root-bot/.env with theMicrosoftAppId
andMicrosoftAppPassword
of the new bot registration -
(Optionally) Update the
SkillAppId
variable in simple-root-bot/.env with theAppId
for the skill you created in the previous step -
(Optionally) Add the
simple-root-bot
MicrosoftAppId
to theAllowedCallers
comma separated list in echo-skill-bot/.env -
In a terminal, navigate to
samples\javascript_nodejs\80.skills-simple-bot-to-bot\echo-skill-bot
cd samples\javascript_nodejs\80.skills-simple-bot-to-bot\echo-skill-bot
-
Install npm modules and start the bot
npm install npm start
-
Open a second terminal window and navigate to
samples\javascript_nodejs\80.skills-simple-bot-to-bot\simple-root-bot
cd samples\javascript_nodejs\80.skills-simple-bot-to-bot\simple-root-bot
-
Install npm modules and start the bot
npm install npm start
Testing the bot using Bot Framework Emulator
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.9.0 or greater from here
Connect to the bot using Bot Framework Emulator
- Launch Bot Framework Emulator
- File -> Open Bot
- Enter a Bot URL of
http://localhost:3978/api/messages
, theMicrosoftAppId
andMicrosoftAppPassword
for thesimple-root-bot
Deploy the bots to Azure
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.