Home

Awesome

PRE-ARCHIVE NOTICE:

This project is no longer actively maintained and will be archived in January of 2025. Functions of this project were superseded by Microsoft Copilot Studio

Bot Framework Components

This repository contains components published by Microsoft for bots built on the Azure Bot Framework technology stack. They are part of the component model for building bots with re-usable building blocks. The model is built on a configurable adaptive runtime, that can be extended by adding your own code, importing packages of functionality or connecting to other bots as skills. Getting started templates provide dynamic code scaffolding, helping users get started quickly based on their scenario.

Using Components

You'll primarily use components through Bot Framework Composer - our visual bot authoring canvas for developers. From Composer you can add and remove packages from your bot, and the creation process creates bots built from the templates here.

Creating your own components

You can also create your own packages and templates for use from Composer. We document creating components here. You can also check out our samples.

Index of Content

Templates

Templates are pre-built bot projects designed for specific scenarios. We use yeoman generators for scaffolding our templates.

NamenpmDescription
Empty Botnpm versionA simple bot with a root dialog and greeting dialog.
Core Bot with Azure Language Understandingnpm versionA simple bot with Azure Language Understanding (LUIS) and common trigger phrases used to direct the conversation flow.
Core Assistant Botnpm versionA bot with Azure Language Understanding (LUIS) and common trigger phrases used to direct the conversation flow and help customers accomplish basic tasks. Designed to be extended with skills.
Enterprise Assistant Botnpm versionA Core Assistant Bot with Calendar & People as skills.
Enterprise Calendar Botnpm versionA bot with the ability to interact with M365 Calendar using Microsoft Graph.
Enterprise People Botnpm versionA bot with the ability to search for people within Azure Active Directory using Microsoft Graph.
Adaptive Bot Generatornpm versionUsed by other generators to scaffold web app or functions project.

Packages

Packages are bits of bots that you can add to your bot project. They can contain coded extensions like custom actions, adapters, or triggers, and declarative assets like dialogs, language generation or language understanding files.

NameTypeNuGetnpmDescription
WelcomeDialogsNuGet Badgenpm versionDeclarative assets supporting scenarios that welcome new and returning users.
HelpAndCancelDialogsNuGet Badgenpm versionDeclarative assets supporting scenarios for "help" and "cancel" utterances.
GraphCustom ActionsNuGet BadgeCustom actions for working with calendars and people through the MS Graph API.
TeamsTriggers ActionsNuGet BadgeTriggers and actions for working with Microsoft Teams.

Virtual Assistant skills (Legacy)

Skills built to work with the Virtual Assistant template. You can find the list of Virtual Assistant skills here.

Need Help?

Please use this GitHub repository issue to raise any issues you encounter consuming these components, or feature requests you'd like to see added.

Contributing

We welcome contributions to this repository! Please see our wiki for details on how to contribute.

If you'd like to contribute a completely new package or template, please use our community repo and we can help publish them for you, or feel free to blaze your own trail and publish them independently.

Reporting Security Issues

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) at secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.

License

MIT License

Copyright (c) Microsoft Corporation.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.