Webex Assistant Skills Overview
Webex Assistant skills are applications that integrate with the Webex assistant to enhance its functionality. These skills can be created by Cisco, our partners, our customers, or our developer community.
Developers may choose to publish their Skills, which means that all Webex organizations can use them, or to keep them private. If your organization creates a private Skill, no other organizations can use it.
anchorWhat is the Difference Between the Webex Assistant and a Skill?anchor
The Webex Assistant comes out-of-the-box with a wide array of functionality. The Assistant can join meetings, orchestrate calls, control your device, and manage the room's calendar among a wide array of other native functionality. A Skill is a custom piece of functionality that is chosen and enabled by the org administrator for that organization's devices.
Additionally, whereas all native Assistant functionality is invoked with the standard
Ok Webex, <command>, all Skills have a name and matching invocation pattern that indicates the user's intent to engage with them specifically. The Skill invocation pattern follows a structure like
Ok Webex, tell <Skill Name> <command>, or
Ok Webex, ask <Skill Name> to <command>.
anchorWhat Can You Build?anchor
Developers can create unique, voice-driven applications that relay audio and web content back to Cisco Webex Room Kit, Cisco Webex Board, and Cisco Webex Desk Pro devices. Assistant Skills can also be used to give a voice to existing functionality already provided by current applications and integrations.
Consider the following functional examples:
- Jarvis Room Controls Skill: This example video showcases a home automation Skill that controls various, real-life IoT connected device.
- Google Assistant Skill: This example video shows a Webex Assistant Skill powered by Google Assistant. Using the Skills API, Google Assistant can be enabled on Webex endpoints.
- Hermes Personal Assistant Skill: This example video showcases the Hermes Skill. The Skill extends the functionality of Webex Assistant and adds personal messaging and reminders.
- 2048 Game Skill: This example video shows a Webex Assistant Skill that brings the popular 2048 puzzle game to Webex devices.
Developing a Skill requires a developer account. Get one here https://www.webex.com/team-collaboration.html.
anchorHow Should a Skill Behave?anchor
Please refer to the User Experience Design Guide for Webex Assistant Skill Developers for a comprehensive guide for the Skills user experience.
anchorSkills Architecture Overviewanchor
In order to better understand what we are doing in this guide, we'll start with a high level overview of how the Webex Assistant Skills platform works within the Webex Assistant architecture. The following image is an overview of the architecture:
We'll start defining the different pieces of the system:
- Actor: A user invoking a Skill using the Webex Assistant.
- Webex Client: A supported client that can run the Webex Assistant.
- Assistant Dialogue: This is what gets the request and decides how to handle it.
- Assistant NLP: This is the part of the system that performs machine learning (ML) to analyze the Actor's query. In the case of Skills though, this is not used. It's only shown here for the purpose of completeness.
- Assistant Skills: This is a cloud service that manages Skills created by third party developers like yourself.
- Third Party Skill: This is a cloud service developed by a third party. It's a service of its own, but it's registered with the Assistant Skills service in order to be used by the Webex Assistant.
The flow works as follows:
- The Actor wakes up Webex Assistant and requests the use of a Skill. For example, the Actor can say: OK Webex, tell Echo hello.
- The Webex Client then forwards that request to the Assistant Dialogue service.
- The Assistant Dialogue services analyzes the query and determines the Actor is trying to call a third party Skill. Continuing the example, the Actor invoked Echo with the query hello.
- The Assistant Dialogue checks with the Assistant Skills service to verify if this particular user has access to the Echo Skill.
- If the Actor has access to the given Skill, the request goes to the Assistant Skills service for further processing.
- If the requested Skill is not available for the Actor, then the request goes to Assistant NLP for handling instead.
- The Assistant Skills service encrypts and signs the request and sends it to the Third Party Skill service hosted by a third party developer.
- The Third Party Skill service handles the request and produces a final response, which is then passed back via the same pipeline in reverse to the client.