Introduction to Bot Framework Composer

APPLIES TO: Composer v1.x and v2.x

Bot Framework Composer, built on the Bot Framework SDK, is an open-source IDE for developers to author, test, provision, and manage conversational experiences. From Composer, you can test your bot and publish it to Azure.

Tip

For a list of Microsoft products and services for building bots, who they support, and a brief description of each, see Choose the right chatbot solution for your use case.

Composer supports the following resources that let you extend your bots with code for more complex tasks, such as system integration:

Composer is available as a desktop application for Windows, macOS, and Linux. If the desktop app isn't suited to your needs, you can build Composer from source or host Composer in the cloud.

Composer provides a visual authoring canvas for authoring dialog experiences. Composer lets you model conversational experiences where context switching, interruptions, and natural and dynamic conversation flows are important. For more complex activities—such as integrating with REST web services or other dependencies—that are best suited towards code, Composer provides mechanisms to extend your bots with code.

What you can do with Composer

Composer is a visual editing canvas for building bots. With Composer, you can:

Note

Azure QnA Maker will be retired on 31 March 2025. Beginning 1 October 2022, you won't be able to create new QnA Maker resources or knowledge bases. A newer version of the question and answering capability is now available as part of Azure AI Language.

Custom question answering, a feature of Azure AI Language, is the updated version of the QnA Maker service. For more information about question-and-answer support in Composer, see Natural language processing.

Note

Language Understanding (LUIS) will be retired on 1 October 2025. Beginning 1 April 2023, you won't be able to create new LUIS resources. A newer version of language understanding is now available as part of Azure AI Language.

Conversational language understanding (CLU), a feature of Azure AI Language, is the updated version of LUIS. For more information about question-and-answer support in Composer, see Natural language processing.

Beyond a visual editing canvas, you can use Composer to:

Note

The nightly builds include pre-release features and may change how some operations are performed. The Composer documentation supports the latest stable release of Composer, and some aspects of the nightly builds may not work as described in the documentation. For more information about nightly builds, see Application settings.

Under the hood, Composer harnesses the power of many of the components from the Bot Framework SDK. When building bots in Composer, developers will have access to:

Adaptive dialogs

Dialogs provide a way for bots to manage conversations with users. Adaptive dialogs and the event model simplify sophisticated conversation modeling enabling more natural, dynamic conversation flow, interruption, and context switching. They also help you focus on the model of the conversation rather than the mechanics of dialog management. Read more in the dialog concept article.

Language understanding

Language understanding is a core component of Composer that allows developers and conversation designers to train language understanding models directly in the context of editing a dialog. As dialogs are edited in Composer, developers can continuously add to their bots' natural language capabilities using the .lu file format, a simple Markdown-like format that makes it easy to define new intents and entities, and provide sample utterances. In Composer, you can use regular expression, LUIS, and Orchestrator recognizers. Composer detects changes and updates the bot's cloud-based natural language understanding model automatically so it's always up to date. Read more in the language understanding concept article.

Language generation

Creating grammatically correct, data-driven responses that have a consistent tone and convey a clear brand voice has always been a challenge for bot developers. Composer's integrated bot response generation allows developers to create bot replies with a great deal of flexibility, using the editor in the Bot Responses page or the response editor in the Properties pane. Read more in the language generation concept article.

With Language Generation, you can achieve previously complex tasks easily such as:

  • Including dynamic elements in messages.
  • Generating grammatically correct lists, pronouns, articles.
  • Providing context-sensitive variation in messages.
  • Creating Adaptive Cards attachments, as seen above.
  • Provide speech variations for each response, including Speech Synthesis Markup Language (SSML) modifications, which are key for speech-based experiences.

QnA Maker

Note

Azure QnA Maker will be retired on 31 March 2025. Beginning 1 October 2022, you won't be able to create new QnA Maker resources or knowledge bases. A newer version of the question and answering capability is now available as part of Azure AI Language.

Custom question answering, a feature of Azure AI Language, is the updated version of the QnA Maker service. For more information about question-and-answer support in Composer, see Natural language processing.

QnA Maker is a cloud-based service that enables you to extract question-and-answer pairs from existing FAQ-style documents and websites into a knowledge base that can be manually curated by knowledge experts. QnA Maker, once integrated into a bot, can be used to find the most appropriate answer for any given natural language input from your custom knowledge base of information.

Bot Framework Emulator

Emulator is a desktop application that allows bot developers to test and debug bots built using Composer. This tool allows for more advanced scenarios (like Authentication), which Composer's integrated Web Chat feature doesn't support at this time.

Advantage of developing bots with Composer

Some of the advantages of developing bots in Composer include:

  • Authoring dialogs using the visual canvas can be more conducive to a conversational design versus code and enables you to focus development efforts on more complex tasks such as system integration.
  • Design conversational experiences using a seamless blend of visual and code authoring.
  • Existing dialogs authored in code can be used by a Composer-based bot.
  • Language generation provides the ability to create more natural, personalized responses resulting in engaging conversational experiences.
  • Composer streamlines your bot project's codebase and provides a more accessible visual design surface that provides a unified canvas to author dialogs and responses, along with language and QnA resources.
  • Integrated testing within the Composer authoring experience.
  • Azure provisioning for dependent resources is streamlined as part of the overall Composer experience.

Apps created with Composer use the declarative dialog format, a JSON specification shared by many tools provided by the Bot Framework.

The Composer bot projects contain reusable assets in the form of JSON and Markdown files that can be bundled and packaged with a bot's source code. These can be checked into source control systems and deployed along with code updates, such as dialogs, language understanding training data, and message templates.

Skill bots and consumers can be used to combine different bots together.

Additional resources

Next steps