Skip to main content

Skills Overview

Skills are modular conversation components that can be added to a Digital Person to give it specific conversational capabilities.

The purpose of a Skill is to take some natural language input and produce a natural language output. The output must always include a natural language response for the Digital Person to speak, but may also include visual content in the form of Content Cards or shared conversation context in the form of Memories.

Skills must be designed so that they may be used alongside other Skills, and are able to function within an ecosystem of multiple sources of conversational content.

A Skill may be designed to achieve any of the following:

  • Send and receive conversational content from a third-party NLP platform
  • Provide a conversational interface for a third-party API or service
  • Generate conversational content for the Digital Person to speak
  • Manipulate conversational content generated by another Skill

Some examples of Skills:

  • A YouTube Skill that returns a YouTube video whenever the user asks for a video
  • A Jokes Skill that tells a joke when the user asks for a joke
  • A Wikipedia Skill that returns relevant information when the user asks for a fact

A Skill may hook into one or more points in the conversation's turn-taking lifecycle. Each Skill will need to implement different lifecycle hooks depending on the intended purpose of the Skill.

Skills Availability

Please note that Skills are not supported for all Digital People at this time.

  • Skills can only be used with [HumanOS 2.2](HumanOS 2.2 Digital People) or higher Digital People.
  • Skills can only be used with English-language Digital People.
  • Skills can only be developed using the Soul Machines Skill SDKs or the specific third-party platforms listed under NLP Platforms below.

Skill Development

A developer may choose to program a Skill using the Skill SDK in NodeJS or Python, or alternatively develop the Skill using one of the NLP platforms where Skills support has been enabled.

The Skill SDK is recommended for complex Skills, while using an NLP Platform may be easier to get started when developing basic conversational Skills.

Skill SDK

Programming a Skill using the Skill SDK provides full access to all features of the Skills platform. Developers familiar with creating serverless functions, REST APIs or developing Webhooks may prefer this method.

Using this method, your Skill will need to provide its own Natural Language Processing support in order to derive intent from the user's input.

Skill SDKs are provided for the following languages:

NLP Platforms

Creating a Skill using an existing NLP Platform may be more familiar for conversational engineers familiar with these products, but not all features of Skill development are supported for these platforms.

Using this method, the NLP Platform will provide NLP functionality and intent matching for you, which may make development easier for some use cases.

Skills may be developed using the following NLP Platforms:

Next Steps

Getting Started with Skills Development

Skills in DDNA Studio