Welcome to the Bot Framework SDK for .NET repository, which is the home for the libraries and packages that enable developers to build sophisticated bot applications using .NET.
This release introduces a global flag called "Templates.EnableFromFile" that indicates whether the Adaptive Expression fromFile function is allowed in LG templates. If an application had previously made use of this function, it is now required to add the line "Templates.EnableFromFile = true;" to the Startup.cs code.
Includes the following bug fixes:
Includes the following bug fixes:
Welcome to the April 2021 release of the DotNet Bot Framework SDK. Orchestrator, a replacement for the Dispatch tool shipped in prior versions, is now generally available. BotComponent Registration has been improved with the introduction of BotComponent
and automatic discovery of package components within a new Adaptive Runtime. New activity types Command
and CommandResult
are introduced in support of the Telephony channel and further protocol extensibility. See also Other improvements. Refer to the change log and General SDK release notes for more SDK related updates.
Orchestrator recognizer has been released to General Availability! Since PREVIEW 3 release we have:
Command
activities communicate a request to perform a specific action. They are identified by a type value of command and specific values of the name field. specification
CommandResult
activities communicate the result of a command activity. specification
Adaptive Component registration has been updated to include BotComponent
and auto-discovery with the new Adaptive Runtime
Instructions for upgrading from the deprecated method to BotComponent
:
The deprecated method of component registration was accomplished through code in startup, and returning DeclarativeTypes
from GetDeclarativeTypes
of a custom ComponentRegistration
implementation.
Code: AdaptiveComponentRegistration:
public class AdaptiveComponentRegistration : ComponentRegistration, IComponentDeclarativeTypes
{
...
public virtual IEnumerable<DeclarativeType> GetDeclarativeTypes(ResourceExplorer resourceExplorer)
{
yield return new DeclarativeType<OnBeginDialog>(OnBeginDialog.Kind);
...
}
}
BotComponent
implementations will be loaded into the type system either
new MyBotComponent().ConfigureServices(services, configuration);
Code: AdaptiveBotComponent
public class AdaptiveBotComponent : BotComponent
{
public override void ConfigureServices(IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton<DeclarativeType>(sp => new DeclarativeType<OnBeginDialog>(OnBeginDialog.Kind));
}
}
DialogExtensions.RunAsync
so it fully supports AdaptiveDialogs
DialogManager
so it uses DialogExtensions.RunAsync
AdaptiveDialogBot
an IBot
implementation for running AdaptiveDialogs
, follows the pattern established with DialogBot<T>
used across the samples and uses DialogExtensions.RunAsync
to execute the Dialog
. It implements IBot
directly rather than deriving from ActivityHandler
. Significantly the implementation captures the TurnState
dependencies that an AdaptiveDialog
has.Microsoft.Bot.Builder.Dialogs.Adaptive.Runtime
. In the process the core ServiceCollectionExtensions.AddBotRuntime
was re-implemented to use the new AdaptiveDialogBot
class. It also now injects most of the key dependencies for the AdaptiveDialog
(now explicitly modeled in the AdaptiveDialogBots
constructor) with TryAddSingleton
so they act as replace-able defaults.CloudAdapter
.This release introduces a global flag called "Templates.EnableFromFile" that indicates whether the Adaptive Expression fromFile function is allowed in LG templates. If an application had previously made use of this function, it is now required to add the line "Templates.EnableFromFile = true;" to the Startup.cs code.
Welcome to the March 2021 release of the Bot Framework SDK.
Telephony Bot Framework Telephony channel is now available with samples in early preview.
Teams New and improved samples, Adaptive Card Tabs, Action.Execute (preview, C#) and Composer support (preview).
Cloud Adapter Cloud Adapter (preview 2, C#) has improved platform support with increased functionality.
Orchestrator Orchestrator (preview 3) now supports more languages, and documentation has been improved.
CLI Bot Framework CLI Tools LUIS applications neural training technology support, and more!
Azure Health Bot Microsoft Healthcare Bot service is moving to Azure, further empowering organizations to benefit from Azure’s enhanced tooling, security, and compliance offerings.
Power Virtual Agents PVA Bot creation, editing and publishing made easy!
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
The Telephony channel is a channel in Microsoft Bot Framework that enables a bot to interact with users over the phone. It leverages the power of Microsoft Bot Framework combined with the Azure Communication Services and the Azure Speech Services.
Note: Telephony Channel is currently in Public Preview, available broadly for the US-based Azure subscriptions. Get started building a Telephony Bot today: Botframework-Telephony
• Platform alignment improved with HttpClientFactory • User authentication improvements with UserTokenClient • Streaming protocol support integrated into Cloud Adapter • TurnContext, TurnState and ConnectorClient object lifetime is now properly handled by the SDK, disposing these objects after they are out of scope. • Cloud Adapter has been deprecated from WebApi
• Adaptive Card Tabs with samples • Adaptive Dialog responses with new Teams triggers and Actions (preview), available in the C# and JavaScript SDKs as well as the Composer nightly. • New and improved samples.
• Added support for LUIS applications neural training technology. • Enhancements and fixes to LU Parser to support special characters and name duplication on Intents and features. • Enable direct version publish in luis:build.
Orchestrator recognizer has been updated for preview 3 as follows: • Improved language recognition models and samples • New multilingual models for New multilingual models for Chinese, French, German, Italian, Portuguese and Spanish. • Updated CLI with support for dispatch migration scenarios. • Improved support of Composer scenarios. • Support for 32bit windows for limited scenarios. For production you must use 64bit. • Updated documentation
• Support for Adaptive Cards Action.Execute
is now available in the C# sdk.
• See also Universal Bot
• Add DialogManager support in python sdk • Fix DialogManager does not return EoC code when a dialog ends • Fixes in dotnet streaming library • Localization fixes and improved support for Composer scenarios
• Please see the detailed Bot Framework Composer release notes
The Health Bot Service is a cloud platform for developers, built on top of Microsoft Azure and uses Bot Framework under the hood. Health Bot Overview.
Introducing Azure Health Bot—an evolution of Microsoft Healthcare Bot with new functionality by Lili Cheng Corporate Vice President, Conversational AI
Power Virtual Agents (PVA) is part of Microsoft Power Platform. In PVA, chatbots can be created with a guided, no-code graphical interface - and without the need for data scientists or developers.
In the latest integration with Bot Framework SDK, Power Virtual Agents support for Teams channel Single Sign-on is available in preview.
PVA Teams SSO—Public Preview by Cleber Mori Senior Program Manager, Power Virtual Agents
This release introduces a global flag called "Templates.EnableFromFile" that indicates whether the Adaptive Expression fromFile function is allowed in LG templates. If an application had previously made use of this function, it is now required to add the line "Templates.EnableFromFile = true;" to the Startup.cs code.
Welcome to the November 2020 release of the Bot Framework SDK. We continue to focus on code quality, improving developer experience, customer requests, overall SDK improvements and partner support. We are previewing a new Cloud Adapter and other exciting things, including:
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
Continued improvements enabling features for creating bots and apps in Teams.
To reduce development friction, you can now run and test skills locally with the Emulator without needing an AppId and password.
Quality for skills is critical, and we're making large invements in automated testing. That work is (mostly) still in the design phase, and feedback is very welcome:
We're also continuing to bring features to skills to enable additional scenarios:
Code quality and testing infrastructure have continued to be a focus for the this SDK release.
Updates and improvements to existing documentation have continued.
The Cloud Adapter introduces an enriched configuration model and enables hosting a bot in any cloud environment.
Orchestrator is a Language Understanding arbitration (“dispatch”) technology to route incoming user utterances to an appropriate skill or to subsequent language processing service such as LUIS or QnA Maker.
The Health Bot Service is a cloud platform for virtual health assistants and health bots, Health Bot uses Bot Framework under the hood. With the latest upgrade to the Bot Framework SDK V4 foundation, Health Bot can be called as a Bot Framework skill or call subsequent custom Bot Framework skills. See more here: Health Bot Overview.
Power Virtual Agents (PVA) is part of Microsoft Power Platform. In PVA, chatbots can be created with a guided, no-code graphical interface - and without the need for data scientists or developers. In the latest integration with Bot Framework SDK, PVA can be extended to create custom solutions.
This release introduces a global flag called "Templates.EnableFromFile" that indicates whether the Adaptive Expression fromFile function is allowed in LG templates. If an application had previously made use of this function, it is now required to add the line "Templates.EnableFromFile = true;" to the Startup.cs code.
Welcome to the August 2020 release of the Bot Framework SDK. We are introducing some exciting Additional New Features with Updates and Enhancements. This milestone we focused on all-up quality and engineering debt, broken down across the following pillars:
Documentation Includes improvements to existing documentation and net new documentation centered on recurring issues and developer pain points.
Customer Supportability Improvements focused on developers seeking assistance using the Bot Framework, tools and SDKs.
Customer Ask Implemented enhancements and feature requests from the developer community and 3rd parties using the Bot Framework SDK and tools.
Code Quality Enforcement of code styling and format rules, increased testing code coverage, and functional tests.
Team Agility Improved validation of SDK code and integration with supporting libraries and environments. Continuous integarion and build pipleline improvements.
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
Following feedback from customers and the Bot Framework Support Team, a number of net new documents have been written as well as updates to existing documentation. These are helpful towards providing answers and information relating to recurring issues from bot developers.
Developers using the Microsoft Bot Framework have many avenues for getting help. See additional resources Internal tools have been improved to increase the responsiveness of the engineering team in areas of most interest to developers.
GitHub
repositoriesApplication Insights
integrationGit Hub
repositoriesConversationUpdate
CardAction
to support alt text for images on buttonsSkill Handler
to return Resource Response
Azure Blobs
storageEntity
Improvements have been made across SDK repositories towards decreased CI pipeline times, improved testing, including both functional integration and unit tests.
Lg
added as core plugin, publish preview builds to npm, other improvementsTypescript
samplesOAuthPrompt
now support Teams SSOAdaptive Dialog
support for Teams eventsChannelRestored
, TeamArchived
, TeamUnarchived
,TeamRestored
, TeamDeleted
, and TeamHardDeleted
InstallationUpdate
activity type supportLinkToMessage
added to MessageActionsPayload
Lg
added as BF-CLI core pluginlu
parserQnaMaker
support extendedbotframework-cli
to npmConversationUpdate
welcome message sampleTaskModule
samples now includes HTML/JavaScript task modules
Bot Framework Composer
.See Composer 1.1.1 Release Notes
Orchestrator: Transformer based solution that runs locally with your bot to dispatch across one or more Bot Builder Skills or LUIS applications or QnA Maker Knowledgebase.
Microsoft.Bot.Builder.Azure.Queues (preview) Enables more easily interacting with Azure Queues and ContinueConversationLater
Dialog. (Currently .NET only, coming soon to other languages)
Microsoft.Bot.Builder.Azure.Blobs BlobsStorage
and BlobsTranscriptStore
implementations replacing AzureBlobStorage
and AzureBlobTranscriptStore
. This library uses Azure.Storage.Blobs and is a replacement for the older Microsoft.Azure.Storage.Blob used by Microsoft.Bot.Builder.Azure. (Currently .NET only, coming soon to other languages)
This release introduces a global flag called "Templates.EnableFromFile" that indicates whether the Adaptive Expression fromFile function is allowed in LG templates. If an application had previously made use of this function, it is now required to add the line "Templates.EnableFromFile = true;" to the Startup.cs code.
Welcome to the May 2020 release of the Bot Framework SDK. There are a number of updates in this version that we hope you will like; some of the key highlights include:
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
Skills have been updated to work with adaptive dialogs, and both adaptive and traditional dialogs will now accept all types of activities.
The skill manifest schema has been updated to version 2.1. Improvements in this version include the ability to declare & share your language models, and define any type of activity that your skill can receive.
This release also includes authentication improvements with skills, including using SSO with dialogs, and OAuth without needing a magic code in WebChat and DirectLine.
We continue to focus on making sure all the Teams-specific APIs are fully supported across our SDKs. This release brings full support for Microsoft Teams APIs in the preview Java SDK, including samples.
The OnTeamsMemberAdded
event in the activity handler has been updated to use the get single member endpoint under the covers, which should significantly reduce latency and reliability of this event in large teams.
The TeamsChannelAccount
object has been updated to include userRole
(one of owner, member, or guest) and tenantId
(for the user's tenantId).
Bots now capture Page View events, native to Application Insights, whenever a dialog is started. This allows you to use the User Flows dashboard in Application Insights to see how users move through your bot, between dialogs and where they drop out.
Support was added for a new invoke named healthCheck
that allows a sender to verify if a bot is responding to requests, and if trust can be established between the sender and the bot. The bot also has the option of overriding the response to add additional health information in the response.
We’re also excited to make Adaptive Dialogs generally available in C# and as a preview release in JavaScript!
Adaptive Dialogs, which underpin the dialog design and management authoring features found in Bot Framework Composer, enable developers to dynamically update conversation flow based on context and events. This is especially useful when dealing with more sophisticated conversation requirements, such as context switches and interruptions. Bot Framework Skills can now also leverage Adaptive Dialogs.
Adaptive Dialogs also now support Telemetry. Data from Adaptive Dialogs, including triggers, actions and recognizers now flow into your Azure Application Insights instance.
CLI tools for Adaptive Dialogs, Language Generation, QnaMaker and Luis Cross-train - new ability to merge and validate adaptive schema assets, augment qna and lu files, create/ update/ replace/ train/ publish LUIS and or QnA maker application and Language Generation templates manipulation.
New CLI Tools were added for management of Adaptive Dialogs.
LG is Generally Available (GA) on both the C# and JS Platforms.
Language Generation (LG) enables you to define multiple variations of a phrase, execute simple expressions based on context, and refer to conversational memory. At the core of language generation lies template expansion and entity substitution. You can provide one-off variation for expansion as well as conditionally expanding a template. The output from language generation can be a simple text string or multi-line response or a complex object payload that a layer above language generation will use to construct a complete activity. The Bot Framework Composer natively supports language generation to produce output activities using the LG templating system.
You can use Language Generation to:
Language Generation is achieved through:
Adaptive Expressions are Generally Available (GA) on both the C# and JS Platforms.
Bots use expressions to evaluate the outcome of a condition based on runtime information available in memory to the dialog or the Language Generation system. These evaluations determine how your bot reacts to user input and other factors that impact bot functionality.
Adaptive expressions were created to address this core need as well as provide an adaptive expression language that can used with the Bot Framework SDK and other conversational AI components, like Bot Framework Composer, Language Generation, Adaptive dialogs, and Adaptive Cards.
An adaptive expression can contain one or more explicit values, pre-built functions or [custom functions. Consumers of adaptive expressions also have the capability to inject additional supported functions. For example, all Language Generation templates are available as functions as well as additional functions that are only available within that component's use of adaptive expressions.
We added support for single sign-on while using Expect Replies. This applies to SSO performed between a pair of bots: host and a skill.
For Bot Identification we've added the ability to specify sendx5c
parameter for certificate authentication. This feature was requested by customers and allows for more flexibility when using cert auth.
Additional Sovereign Clouds are supported.
The Bot Framework has a rich collection of conversational building blocks, but creating a bot that feels natural to converse with requires understanding and coordinating across language understanding, language generation and dialog management. To simplify this process and capture best practices, we've created the bf-generate plugin for the BotFramework CLI tool. The generated dialogs make use of event-driven adaptive dialogs with a rich and evolving set of capabilities including:
Adaptive tools is a brand new Visual studio code extension you can use to create/ validate .lu and .lg documents as well as debug declaratively defined adaptive dialogs. This extension provides rich authoring & editing capabilities for .lu and .lg file formats including syntax highlighting, auto-suggest and auto-complete.
We anticipate adding an early preview to the VS Marketplace shortly after this release.
During this release, the Bot Builder Community has further raised the bar by adding more features, more adapters, and fixing more bugs.
A revised C# Alexa Adapter and Google Home Adapter Re-built from the ground up, starting with Alexa, to allow the adapters to be consumed by Azure Bot Service and made available as channels. Improvements include better native activity type mapping, improved markdown rendering and support for more complex scenarios (such as merging multiple outgoing activities).
A new C# Zoom Adapter. Currently supports Zoom 1:1 and channel chat capabilities, being converted to native BF activity types. Also supports the subscribing to any event a Zoom as supports (translated into Event activities), with full support for Zoom interactive messages and rich message templates.
A RingCentral Adapter. The RingCentral Engage adapter allows you to add an additional endpoint to your bot for RingCentral Engage Digital Platform integration. The RingCentral endpoint can be used in conjunction with other channels meaning, for example, you can have a bot exposed on out of the box channels such as Facebook and Teams, but also integrated as an RingCentral Engage Digital Source SDK into RingCentral.
rc0
- this is our first release candidate for Adaptive Dialogs, Adaptive Expressions, & Language generation. We encourage folks to give this a try in development and non-critical scenarios.Expanded support for a number of scenarios in Skills, including
Added support for a new get single member endpoint, and expanded support for the get paged members endpoint.
Welcome to the 4.7 release of the Bot Framework SDK for .NET!
Welcome to the 4.6 release of the Bot Framework SDK for .NET!
The Bot Framework SDK v4.6 release fully integrates support for building Teams bots allowing users to use them in channel or group chat conversations. By adding a bot to a team or chat, all users of the conversation can take advantage of the bot functionality right in the conversation.
Create a reusable conversational skill to add functionality to a bot. Leverage pre-built skills, such as Calendar, Email, Task, Point of Interest, Automotive, Weather and News skills. Skills include language models, dialogs, QnA, and integration code delivered to customize and extend as required.
Adaptive Dialogs enable developers to build conversations that can be dynamically changed as the conversation progresses. It allows developers to dynamically update conversation flow based on context and events. This is especially handy when dealing with conversation context switches and interruptions in the middle of a conversation.
Language Generation enables developers to separate logic used to generate bot's respones including ability to define multiple variations on a phrase, execute simple expressions based on context, refer to conversational memory.
Common Expression Language allows you to evaluate the outcome of a condition-based logic at runtime information. We provide a common language that can be used across the Bot Framework SDK and conversational AI components, such as Adaptive Dialogs and Language Generation.
Changes in recognized utterances resulting from consuming different versions of Recognizers-Text through BotBuilder-DotNet. See the changes here.
The issues list can be viewed here.
This release adds:
C# SDK 4.5.3 release enables cert-based authentication of AAD apps. Currently we only support app id + password, but AAD also supports multiple client credential flows, such as using certificates.
This is the small first step towards using AppCredentials for AAD verifications, which currently supports Certs or Password, but as-is can simply be extended to support any of the 7 ADAL client flows.
The default paths still use ICredentialProvider and we are enabling AppCredentials for new scenarios. A second iteration will make AppCredentials be the default, but we want to stage that transition to minimize risk.
Welcome to the 4.5 release of the Bot Framework SDK for .NET!
Today, we are happy to announce the Bot Framework Emulator Channel Testing is generally available. This feature enables developers to debug and test your Bot Framework SDK v4 bots on channels like Microsoft Teams, Slack, Cortana, Facebook Messenger, Skype, etc. As you have the conversation, messages will be mirrored to the Bot Framework Emulator where you can inspect the message data that the bot received. Additionally, a snapshot of the bot state for any given turn between the channel and the bot is rendered as well. You can inspect this data by clicking on the "Bot State" element in the conversation mirror.
We also added capabilities for Unit Testing your bots. The Microsoft.Bot.Builder.Testing package simplifies the process of unit testing dialogs in your bot.
As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across other areas like Language, Prompts, Dialogs, State and Storage.
Review all changes that went into 4.5 in the detailed Change Log
NextAsync
. [PR 2037]
LuisRecognizer
to handle textless messages [PR 1566]