Create, Configure, and Version Skills

Use the Skill Catalog, which you access by clicking Development > Skills in the side menu, to manage the life cycle of your skills. You can access most of the management tasks from a skill’s Options menu.

Note

When the Show Only Latest switch is turned on in the Skill Catalog, only the most recently updated version of each skill appears. Because the version values are free form, the page uses the date last updated to determine which is the latest version.

Description of bots_landing.png follows

Create from Scratch

You can create a skill by cloning a version of another skill or by importing one, or you can build one from scratch, as described here.

  1. Click icon to open the side menu to open the side menu, select Development > Skills, and click New Skill.

  2. In the Create Skill dialog, fill in the required fields.

  3. In the Platform Version field, optionally select a different platform version.

    This setting affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents. By default, this is set to the most recent platform version.

    If you specifically need the clone to behave like skills based on a different platform version, select the platform version used by those skills.

    See Platform Version.

  4. If you have selected platform version 20.12 or higher, from the Primary Language field, select the default language for your skill.

    If you plan to design the skill for multiple languages, consider your choice very carefully. In particular, if you want to support any languages other than the natively-supported languages, you need to scroll down to the Translation Service section of the dropdown and select English from there.

    See Languages and Skills for detailed information on designing your skills for your desired target languages.

    Note

    On platform versions 20.09 and lower, you don't specify a primary language. Instead a predominant language is automatically detected for the skill when you set it up with a translation service.
  5. Click Create.

After you create the skill, it appears in the Skill Catalog in draft mode.

Clone

If you want to create a skill that is similar to an existing skill, or if you want to reuse the artifacts of an existing skill, you can create the skill by cloning.

To clone a version of a skill:

  1. From the Skill Catalog, locate the version to clone from.

  2. Click the Options icon, and select Clone.

  3. Complete the dialog, paying particular attention to these fields:
    • Platform Version: The platform version affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.

      If you specifically need the clone to behave just like the base skill, select the platform version used by the base skill.

      See Platform Version.

    • Primary Language: (Appears only if the selected platform version is 20.12 or higher.) This determines both the default language for the skill and whether the skill will use native support for that language or rely on a translation service.

      If you plan to design the skill for multiple languages, consider your choice here very carefully. In particular, if you want to support any languages other than the natively-supported languages, you should scroll down to the Translation Service section of the dropdown and select English from there.

      See Languages and Skills for detailed information on designing your skills for your desired target languages.

      Note

      On platform versions 20.09 and lower, you don't specify a primary language. Instead a predominant language is automatically detected if you have set up the skill with a translation service.
Note

If the skill uses embedded component services, then the clone's usage of each of those services adds to the embedded component service count. If this would put your instance over the embedded component service limit (embedded-custom-component-service-count), then Digital Assistant won't create the clone. If you need to raise the limit, you can request an increase. For more information, see View Service Limits in the Infrastructure Console and Requesting a Service Limit Increase. Embedded component services in skills that are downloaded from the Skill Store are not counted.

Create by Import

You can create a skill by importing a version of a skill that was exported from another instance. The imported skill will be in draft mode, even if it was published in the source instance.

To import a version of a skill:

  1. From the Skill Catalog, click Import Skill.

  2. Upload the ZIP file that contains the exported skill.

  3. By default, Insights is disabled for imported skills. To activate the Insights reporting for the imported skill, first click the Settings icon, then choose Enable Insights.

Tip:

If you want to export a version, make changes in the exported files, and then import it into the same instance, don’t forget to change the version. Otherwise, Digital Assistant won’t let you import it.
Note

If the skill uses embedded component services, then the imported skill's usage of each of those services adds to the embedded component service count. If this would put your instance over the embedded component service limit (embedded-custom-component-service-count), then Digital Assistant won't import the skill. If you need to raise the limit, you can request an increase. For more information, see View Service Limits in the Infrastructure Console and Requesting a Service Limit Increase. Embedded component services in skills that are downloaded from the Skill Store are not counted.

Create New Version

At some point, you might want to create another version of a skill, such as to add new features.

To create another version:

  1. From the Skill Catalog, locate the version from which to create another version.

  2. Click the Options icon, and select New Version.

  3. Complete the dialog, paying particular attention to these fields:
    • Platform Version: The platform version affects the behavior of your skills, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.

      If you specifically need this version of the skill to behave just like the previous version, select the platform version used by the base skill.

      See Platform Version.

    • Primary Language: (Appears only if the selected platform version is 20.12 or higher.) This determines both the default language for the skill and whether the skill will use native support for that language or rely on a translation service.

      If you plan to design the skill for multiple languages, consider your choice here very carefully. In particular, if you want to support any languages other than the natively-supported languages, you should scroll down to the Translation Service section of the dropdown and select English from there.

      See Languages and Skills for detailed information on designing your skills for your desired target languages.

      Note

      On platform versions 20.09 and lower, you don't specify a primary language. Instead a predominant language is automatically detected if you have set up the skill with a translation service.
Note

If the skill uses embedded component services, then the version's usage of each of those services adds to the embedded component service count. If this would put your instance over the embedded component service limit (embedded-custom-component-service-count), then Digital Assistant won't create the version. If you need to raise the limit, you can request an increase. For more information, see View Service Limits in the Infrastructure Console and Requesting a Service Limit Increase. Embedded component services in skills that are downloaded from the Skill Store are not counted.

Dialog Mode

When you create a skill, you have two options for how to design the dialog flow:

  • Visual. You use the Visual Flow Designer to design dialog flows on a canvas with tiles for each state and with the connections between states also represented visually. Variables, parameters, and component properties are defined in specialized editors and dialogs. In addition, the visual editor enables you to create modular flows. This is the default mode for new skills.
  • YAML. You define the framework of the user-skill exchange in a simple markup language that lets you describe a dialog both in terms of what your skill says and what it does. The whole dialog flow definition is defined in a single file.

Configure for Use In a Digital Assistant

To prepare a version of a skill to be used in a digital assistant, configure the following settings:

  • Invocation Name: This is the name with which the user can explicitly invoke the skill in the digital assistant.

    See Invocation Name Guidelines.

  • Example Utterances: These help the Intent Engine identify when the user wants to invoke that skill. In the example utterances, it is best to also include the invocation name to improve matching user utterances with the skill.

    The first few utterances also appear on the card for the skill that the digital assistant supplies by default for the welcome and help states.

For skills developed in YAML mode, you can optionally specify the Start State, Welcome State, and Help State settings. See Start, Welcome, and Help States. (For skills developed in Visual mode these settings are not available. Instead, you specify these states using events. See Built-In Events for the Main Flow.)

In addition, you can use the Group field to group the skill with other related skills. This can improve routing behavior in your digital assistant. The skill group assignment can be changed at the digital assistant level. See Skill Groups.

To access these settings:

  1. Click icon to open the side menu to open the side menu, select Development > Skills, and open your skill.

  2. In the left navigation for the skill, click icon for Settings and select the Digital Assistant tab.

Delete

To delete a version of a skill, click its Options icon and select Delete.

Publish

When you’ve completed building a version, you can lock it down by publishing it. The only modification that you can make for a published skill is to change custom parameter values on the Configuration tab. If you want to make further modifications, you must create another version and work on that one.

To publish a version:

  1. If the skill has intents or Q&A, make sure it has been trained. You must train it before you can publish it.
  2. From the Skill Catalog, locate the version that you want to publish.

  3. Click the Options icon, and select Publish.

    The skill version in the Skill Catalog now has a lock icon to show that it’s published.

Export a Skill to Another Instance

If you have multiple Digital Assistant instances and you want to copy a skill from one instance to another, you use the Export and Import commands:

  1. Log in to the instance that you want to export the skill from.

  2. Click icon to open the side menu to open the side menu and select Development > Skills.

  3. In the tile for the skill that you want to export, click icon to open the Options menu and select Export.

    A zip file with the skill will be downloaded to your system.

  4. Log in to the instance that you want to export the skill to.

  5. Click icon to open the side menu to open the side menu and select Development > Skills.

  6. Click Import Skill.

  7. Upload the ZIP file that contains the exported skill.

  8. By default, Insights is disabled for imported skills. To activate the Insights reporting for the imported skill, first click the Settings icon, then choose Enable Insights.
Note

The imported skill will be in draft mode, even if it was published in the source instance.

The Skill Development Process

Once you have the skill created and named, you can begin development. Here’s a bird’s-eye view of the development process.

Description of bots-overall-process.png follows

  1. Create Intents—Start off by creating intents. Intents illustrate your use case by describing the various actions that your skill helps its users complete. If your skill enables users to perform various banking transactions, for example, then you could create intents like CheckBalance or TransferMoney. Intents not only describe what your skill can do, they are also the key to your skill’s intelligence: they enable it to recognize user input because each intent has a set of typical user statements known as utterances associated with it. While these phrases share the same meaning, they make your skill resilient because they’re also varied (for example, What’s my savings account balance? and How much is in my checking account?). See Intents.

  2. Train the Skill—To enable your skill to reference intents when it parses the user input, you need to train it. Specifically, you need to train it with the intents and their utterances (collectively, the training data), so that it can resolve the user input to one of the intents. By training your skill, you leverage the language intelligence framework. Its algorithms enable your skill to not only recognize the sample phrases that belong to each intent, but similar phrases as well. See Intent Training and Testing.

  3. Create Entities— In some cases, you may need to provide some context to enable your skill to complete a user request. While some user requests might resolve to the same intent (What’s my savings account balance? and How much is in my checking account? would both resolve to the CheckBalance intent, for example), they are nonetheless asking for different things. To clarify the request, you would add an entity. Using the banking skill example, an entity called AccountType, which defines values called checking and saving would enable the skill to parse the user request and respond appropriately. See Entities.

  4. Create the Dialog Flow— Next, you need to give the skill the wherewithal to express its intelligence to its users by creating the dialog flow. The dialog flow describes how you skill reacts as different intents are resolved. It defines what your skill says to its users, how it prompts them for input, and how it returns data. See Visual Flow Designer.

  5. Integrate Custom Components—At this point, your skill can recognize input, but it can’t respond to it. To put your skill’s intelligence to work, you need to add components. Components enable your skill to do its job. There are two types of components: the ones we provide that perform functions ranging from holding the intent that’s resolved from the user’s message to outputting text, and the ones that you create to perform tasks specific to a particular skill like checking an account balance. See Add Component Package to a Skill.

  6. Test the Skill—Once you’ve started your dialog flow, you can chat with your skill to test it out.

  7. (Optionally) Route to Channels for User Messaging and Other Capabilities—If your skill will not be added to a digital assistant, you'll need to add it to one or more channels. Users chat with your skill through various messaging platforms, proprietary messaging apps, and web pages. You can route one or more of these user messaging channels to your skill. It runs equally well on any of them, whether they’re text-only or support scrolling cards, UI elements, and images. In addition to these user-facing channels, there are other channels: one that links your skill to a customer-support system and another that routes notifications from an external application that prompts the skill to initiate a conversation.

  8. Review Insights Reports—After you've published your skill, you can review the Insights reports to find out if its customers are using it as intended. From high-level usage metrics and conversation trends to individual views of intents, their execution paths, and conversation transcripts, these reports give you different perspectives on how well your skill supports its customers, and where it prevents them from completing a task. These reports not only let you spot problem areas quickly, but they also suggest user input that can improve your skill's intent resolution. See Insights.

Validate Your Work

As you iterate through your dialog flow definitions, intents, entities, and digital assistants, you can check your work and apply best practices by clicking Validate in the banner.
Description of analyzer_dialog_flow_line.png follows

For skills, the resulting Validation Results dialog lists critical errors This is an image of the warning icon. that you must fix, warnings This is an image of the error icon. and tips This is an image of the tip icon that point out where you may need to make improvements.

Some of these messages are general, while others cite the entity, intent, or line in the dialog flow definition. While the error messages point out problems that prevent the skill from functioning, like incorrect variable references in the dialog flow definition, you can use the warning and tip messages to inform your development. These messages can help you out during your initial development, but they might be especially helpful when you're working on a skill created by another development team, especially if that skill was developed on an earlier version of Oracle Digital Assistant. For example, if you're upgrading a skill that uses the formerly recommended confidence threshold of .04, then you'll get a message recommending the current threshold instead. For example:
Skill confidence threshold is set to 0.4. We recommend to set the threshold to at least 0.7 to improve accuracy of intent matching.
While validation messages at the skill level include error, warning, and tip messages, digital assistant-level validation consists of warning messages for utterances that are shared by the skills registered to the digital assistant.
Description of analyzer_da_validate_message.png follows

For example:
The utterance 'Cancel my order' is used in 2 intents: wineSkill, pizzaSkill. Duplicate utterances may cause ambiguity in the model.

Description of analyzer_da_validation.png follows

You can filter these messages by warnings or tips. You can hide or reopen the Validation Results dialog by clicking FindingsThis is an image of the View Validation Findings icon. You can also filter these messages by warning and tips..

Names You Can't Use for Skills

The following names can't be used for skills:

  • type
  • version