You can extend any skill that you have pulled from the Skill Store to customize it to handle cases specific to your business. Then, when a new version of the base skill appears in the Skill Store, you can rebase your customizations to the new version of the base skill.
Extending vs. Cloning
Though extending a skill and cloning a skill are somewhat similar, they have key differences and purposes:
- When you extend a skill:
- You can make a wide range of additions and changes to the skill.
- You can later rebase the skill to update versions of the base skill.
Use extension when you want to customize a skill and want to be able to later incorporate any improvements or new features from the base skill into your customized version of the skill. You can only extend skills that you have pulled from the Skill Store.
- When you clone a skill:
- You can make almost unlimited changes to the skill.
- The clone loses all association with the base skill, so you can't later rebase.
Use cloning when you want to use a published skill as a starting point for developing a brand new skill.
What You Can Extend
- Intents. You can add utterances, change existing utterances, and add new intents. However, you can't delete utterances or intents.
- Entities. You can add entity values, change existing entity values, and add new entities. However, you can't delete entities or entity values. In addition, you can edit:
- Enumeration Range Size
- Error Message
- Multiple Values
- Fuzzy Match
- Dialog flow. You can make changes throughout the dialog flow. There are no specific limitations. However, no deltas are tracked by the system. When you rebase the skill extension, you are presented with a diff tool to compare your dialog flow side-by-side with that of the new base skill. It's then up to you determine what to keep from your skill and what to bring forward from the new base skill.
- Resource bundles. You can:
- Add new message keys in any of the supported languages.
- Add or modify any of the translated messages.
- Custom component service. You can:
- Replace the package file.
- Add components to the service (but not remove the components).
- Remove components.
You can change the implementation of custom components in your extended skill. However, if the custom component is later updated in the base skill, those updates will not be merged with any changes you have made to the component in the extended skill when you rebase your skill. In this case, you would need to manually merge the custoom component changes from the updated base skill into your extended skill.
- Settings. You can adjust most of the settings for the skill, including:
- General properties, like skill description.
- Training model.
- Whether insights and conversation logging are enabled.
- Values of system parameters, such as confidence threshold and standard prompts.
- Custom parameters. (You can create new custom parameters and modify values of existing ones.)
- Values of digital assistant properties, such Invocation, Example Utterances, Start State, Welcome State, and Help State.
What You Can Modify But Not Extend
- Q&A. You can customize Q&A, but those customizations are discarded if you later rebase the skill.
What Happens When You Extend a Skill
When you extend a skill:
- On the Intents tab, there are filters for Local, Inherited, and Customized:
- above the list of intents
- above the list of examples
Extend a Skill
Click to open the side menu, and select Development > Skills.
In the tile for the skill that you want to extend, click the Options icon (), and select Extend.
This skill must be a skill that you have pulled from the Skill Store.
Rebase a Skill Extension
If a new base version of a skill that you have extended is made available, you can rebase the extended skill so that it picks up the changes to the base skill and keeps the customizations that you made in the extended skill.
To rebase a skill:
- Pull the updated base skill from the Skill Store:
- Click to open the side menu and select Development > Store.
- In the tile for the updated base skill, click and select Pull.
- Click to open the side menu, select Development > Skill, and locate the tile for the extended version of the skill (but don't open it).
- If that version of the skill hasn't been published yet, publish it by clicking and selecting Publish.
- Open the skill.
- In the left navigation for the skill, click .
- Click the Rebase button, and complete the wizard.
How Do I Respond to a Failed Rebase?
If a rebase fails, here are the steps to reattempt the rebase:
- Create a new version of the skill extension.
- Make changes to the skill extension as advised in the report generated when the rebase failed.
- Publish the new version of the skill extension.
- Attempt to rebase the version of the skill extension that you just published.