Skip to content
Bot Framework provides the most comprehensive experience for building conversation applications
Python Roff
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Bot Framework SDK

Click here to find out what's new with Bot Framework

Bot Framework SDK

The Bot Framework SDK v4, part of the Bot Framework, provides the most comprehensive experience for building conversation applications. With the Bot Framework SDK, developers can easily model and build sophisticated conversation using their favorite programming languages. With the Bot Framework SDK, you can build bots that converse free-form or your bot can also have more guided interactions where it provides the user choices or possible actions. The conversation can use simple text or more complex rich cards that contain text, images, and action buttons. You can add natural language interactions and questions and answers, which let your users interact with your bots in a natural way.


The Bot Framework SDK v4 is an open source SDK that enable developers to model and build sophisticated conversation using their favorite programming language.

C# JS Python Java
Stable Release 4.5.0 4.5.0 4.5.0b2 (preview) 4.0.0a6 (preview)
Docs docs docs
Samples .NET Core, WebAPI Node.js , TypeScript, es6 Python

Bot Framework SDK v4 - (New! - version 4.6 preview)

  • Adaptive Dialog | docs | C# samples :: Adaptive Dialogs enable developers to build conversations that can be dynamically changed as the conversation progresses. Traditionally developers have mapped out the entire flow of a conversation up front, which limits the flexibility of the conversation. Adaptive dialogs allow them to be more flexible, to respond to changes in context and insert new steps or entire sub-dialogs into the conversation as it progresses. Additionally as with other SDK V4 concepts, we have defined adaptive dialogs such that they can be defined via declarative that are interpreted at runtime; which allows us to have tooling on top of this and integrate with services.

  • Language Generation | docs | C# samples :: Learning from our customers experiences and bringing together capabilities first implemented by Cortana and Cognition teams, we are introducing Language Generation; which allows the developer to extract the embedded strings from their code and resource files and manage them through a Language Generation runtime and file format. Language Generation enable customers to define multiple variations on a phrase, execute simple expressions based on context, refer to conversational memory, and over time will enable us to bring additional capabilities all leading to a more natural conversational experience.

  • Common Expression Language | api :: Both Adaptive dialogs and Language Generation rely on and use a common expression language to power bot conversations.

Channels and Adapters

There are two ways to connect your bot to a client experience:

  • Azure Bot Service Channel - Language and SDK independent support via Azure Bot Service
  • Bot Framework SDK Adapter - A per language Adapter component written by community
Client Azure Channel C# Adapter JS Adapter
Microsoft Teams Azure
Skype Azure
Exchange Azure
Direct Line Azure
Web Chat Azure Botkit
Cortana Azure
Facebook Azure Botkit
Slack Azure Botkit
Kik Azure
Telegram Azure
Line Azure
GroupMe Azure
Twilio (SMS) Azure Botkit
Alexa Community Community
Google Home Community Community
Google Hangouts Community Botkit
WebEx Botkit
Console Community

Community Extensions

Adapters and plugins from the open source community are available to extend your bot application.

C# JavaScript Python Java
botbuilder-community C# JavaScript Python Java
Botkit JavaScript

Questions and Help

If you have questions about Bot Framework SDK or using Azure Bot Service, we encourage you to reach out to the community and Azure Bot Service dev team for help.

Join the conversation on Gitter.

See all the support options here.

Issues and feature requests

We track functional issues and features asks for and Bot Builder and Azure Bot Service in a variety of locations. If you have found an issue or have a feature request, please submit an issue to the below repositories.

Item                    Description Link               
SDK v4 .NET core bot runtime for .NET, connectors, middleware, dialogs, prompts, LUIS and QnA File an issue
SDK v4 JavaScript core bot runtime for Typescript/Javascript, connectors, middleware, dialogs, prompts, LUIS and QnA File an issue
SDK v4 Python core bot runtime for Python, connectors, middleware, dialogs, prompts, LUIS and QnA File an issue
SDK v4 Java core bot runtime for Java, connectors, middleware, dialogs, prompts, LUIS and QnA File an issue

Prior releases

  • Bot Builder v3 SDK has been migrated to the Bot Framework SDK V3 repository.
  • Botkit SDK is a popular SDK which joined the Microsoft Bot Framework family and is built on top of the Bot Framework SDK V4.


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

Reporting Security Issues

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) at 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.

Copyright (c) Microsoft Corporation. All rights reserved.

You can’t perform that action at this time.