The Cortana Skills Kit is a suite of tools that help you build extensions (or skills) for Cortana that connect users to your custom services and solutions.
Cortana skills enable you to add value by governing how it responds to user requests. Cortana can delegate to bots built on Microsoft's Bot Framework.
The skills kit supports basic deep links to full integration of your services and solutions into the Cortana experience.
The Cortana Skills Kit is currently in public preview.
What can skills do?
Cortana skills let you provide functionality through Cortana in response to spoken input from a user.
The following table highlights the different ways to create skills for Cortana and when to use one development path over the other.
|Skill type||When to use this path|
|Bot Framework based skill||Recommended. Use this path when starting from scratch, when you have an existing bot you want to expose as a Cortana skill or when you want to be able to access Cortana specific features such as user profile and contextual information or rich card responses.|
The following are some key features of Cortana skills.
Supports natural language understanding
Cortana presents skills in response to user requests by employing an intent model. An intent model applies machine learning to detect utterances from a set of training data used to derive the user's intent from the request (along with entities, or specific data from the intent). Based on the request, this info is then passed to the skill, which enables Cortana to provide a suitably customized user experience.
You can create your own intents using Luis.ai, a Microsoft Cognitive Service, and connect it to your bot.
Conducts audio-visual conversations with users
Skills that invoke bot or service targets can use the Cortana user interface (also known as the Cortana canvas, or simply as the canvas) to host a conversation with the user through the microphone or keyboard. In addition, a skill can customize the canvas to augment the conversation and assist the user with relevant images, text, links, and so on. See Card Design Best Practices for more information.
For details on conversation experiences, see the Voice Design Best Practices guide.
Personalizes experiences using user insights
With permission, Cortana can access user profile and contextual information about the user at runtime, including their current location, cuisine preference, name, and so on. When creating a skill, you can request that Cortana pass this user data to your skill when invoked.
See User Profile & Contextual Information reference for more details on the user information that can be requested.
Add intelligence to your skill using Microsoft Cognitive Services
Microsoft Cognitive Services enables natural and contextual interaction with tools that augment users' experiences using the power of machine-based intelligence. Tap into an ever-growing collection of powerful artificial intelligence algorithms for vision, speech, language, and knowledge. Here are just some of the intelligent services that you can integrate into your Cortana skill:
- Language Understanding Intelligent Service (LUIS.ai) - Teach your apps to understand commands from your users.
- Linguistic Analysis API - Teach your apps to understand commands from your users.
- QnA Maker API - Distill information into conversational, easy-to-navigate answers.
- Recommendations API - Predict and recommend items your customers want.
- Text Analytics API - Easily evaluate sentiment and topics to understand what users want.
- Translator Text API - Easily conduct automatic text translation with a simple REST API call.
- Bing Image Search API - Search for images and get comprehensive results.
- Bing Maps API - Add location intelligence to your app.
- Bing News Search API - Search for news and get comprehensive results.
- Bing Video Search API - Search for videos and get comprehensive results.
- Bing Web Search API - Get enhanced search details from billions of web documents.
How users invoke skills
Users in the en-US locale can invoke skills by speaking to Cortana. No installation, or activation, is required.
Support for other locales is coming soon.
Users invoke skills by speaking an invocation phrase to Cortana. The invocation phrase includes an invocation name, which uniquely identifies the skill to invoke. For example, if a skill's invocation name is "Northwind Photo", a proper invocation phrase could include "Ask Northwind Photo to..." or "Tell Northwind Photo that...". See the Invocation Name Guidelines for a full list of invocation phrases.
Skills are available on all platforms that support Cortana. For details on code compatibility per platform, see the Cortana platform requirements reference.
How users interact with skills
When a user invokes your skill, Cortana sends a structured request to the service that powers your skill and waits for a response. There are two ways a user can have Cortana listen for a request. The first is to press the microphone button in the Cortana app or in the "Ask me anything" search box in Windows. The second is that users can enable Cortana to respond to "Hey Cortana". Here are a few examples of how users might interact with Cortana.
If a user asks Cortana about the weather, Cortana would likely trigger the built-in weather skill. For example:
User: "What is the weather like?" Cortana: "It is currently 58 degrees and mostly cloudy..."
If using Cortana on a device that has a screen, she will display a card with additional information in her canvas as well.
If a user wants to invoke a custom skill, they would simply need to use an invocation phrase which the skill supports. If for example a user wanted to use a skill called "Northwind Photo" to check the status of an order and make a change, the conversation might go something like this:
User: "Ask Northwind Photo what the status of my order of cat photos is." Cortana: "Your order of cat photos will be ready in an hour. Can I help you with anything else?" User: "What did I order?" Cortana: "3 copies of prints on glossy paper. Would you like to make a change?" User: "Make it matte paper." Cortana: "You would like to change the paper to matte. Is this correct?" User: "Yes" Cortana: "Your order has been updated."
Take a look at the following design guides to create engaging user experiences:
Have additional overview questions?
Ready to create a skill? Make sure your devices, as well as Cortana, are ready.