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 Dialogflow Skill that connects to a 3rd party conversation platform
- A Generative Conversation Skill that orchestrates a RAG model with GPT
- A Content Cards Skill that replaces URLs in responses with the website, images, or videos that they point to
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:
- Microsoft Azure Bot Service
- Google Dialogflow ES
- Google Dialogflow CX
- IBM Classic Watson Assistant
- IBM New Watson Assistant
- Amazon Lex
- Kore AI
Next Steps
Getting Started with Skills Development
- Getting Started
- Skill Types
- Write an NLP Adapter Skill
- Write a Base Conversation Skill
- Write an Intent Matching Skill
- Skills Webhook REST API
- Skills Async API
Skills in DDNA Studio
- Learn how to create a Digital Person using Digital DNA Studio
- Learn how to integrate a NLP platform with Digital DNA Studio
- Learn how skills work and how to add skills to Digital DNA Studio