About skill bots


A skill is a bot that can perform a set of tasks for another bot. A skill can be consumed by another bot, facilitating reuse. In this way, you can create a user-facing bot and extend it by consuming your own or 3rd party skills. With minor modifications, any bot can act as a skill.

Skill bots:

  • Implement access restrictions via a claims validator.
  • As appropriate, check for initialization parameters in the initial activity's value property.
  • Send messages to the user as normal.
  • Signal skill completion or cancellation via an endOfConversation activity.
    • Provide the return value, if any, in the activity's value property.
    • Provide an error code, if any, in the activity's code property.

For more information, see the skills overview and about skill consumers.)

Skill actions

Some skills can perform a variety of tasks or actions. For example, a to-do skill might allow create, update, view, and delete activities that can be accessed as discrete conversations.

Skill manifests

A skill manifest is a JSON file that describes the actions the skill can perform, its input and output parameters, and the skill's endpoints. With v2.1 of the skill manifest schema, the manifest can also describe proactive activities the skill can send and dispatch models the skill uses.

For information about the skill manifest schema, see how to write a v2.1 skill manifest or write a v2.0 skill manifest.