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 work 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 ANLP: This is the part of the system that performs ML to analyze the user's query. In the case of Skills though, this is not used. It's only shown here for completeness purposes.
- 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 user wakes up the assistant and requests the use of a Skill, for example by saying: 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 finds the user is trying to call a third party Skill called Echo with the query hello.
- Assistant Dialogue checks with the Assistant Skills service to verify if this particular user has access to the Echo Skill.
- If the user 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 user, then the request goes to Assistant ANLP for further processing.
- 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.