Make Changes With Confidence

Announcing Versions in Watson Assistant

Mitchell Mason
IBM watsonx Assistant
5 min readFeb 6, 2019

--

Let’s say you’ve built an assistant and released it to your users. It’s getting traffic and you’re coming up with all kinds of great things you want to add to it. Whether you finally have time to add all of the content you didn’t get to add initially — or you’re noticing gaps in your assistant’s experience — you know you need to make some updates. Before today, to make these updates, you would’ve either had to…

A) make a real-time change to the assistant/skill that is currently live

B) make a separate copy of your live skill, edit it, then re-deploy it

Both of these approaches are pretty painful. In the case of scenario A, it’s a risky idea to update your skill in a live environment. After all, you wouldn’t want someone to send a message that matches with something you’re currently working on — that would be like driving down a highway that’s still under construction! And scenario B involves the painstaking process of managing a bunch of related but totally disconnected skill copies. Yuck!

Announcing Skill Versions!

To make the process of updating your skills way easier, we’re releasing skill versions within Watson Assistant! It allows you to save a non-editable snapshot of your skill and then link it to an assistant. This means that you can control exactly what your users will interact with in “production” while continuing to update your skill (all without getting users caught in the construction zone). Here’s a short video explaining the basics:

The Essentials

Now, when you view one of your dialog skills, you will see a button called ‘Save a Version’ as well as a new tab to review your version history.

As you might guess, anytime you save a new version, you will see that new version in your version history. From the version history tab, you can link any of these saved versions to an assistant. If you’d like to be able to test your updates before launching in production, you can set up multiple assistants (i.e. dev, test, prod), all pointed at different versions of the same skill.

All of this has two major benefits:

First, whether you call Watson Assistant from your own application or from one of our managed integrations, you’re always pointing at the same, static assistant. This means that you no longer have to manage the *painful* process of re-pointing your app at a new copy of the same skill every time you want to deploy a change. The swapping of skill versions is now entirely handled in the Assistant, with zero downtime between updates.

Your app or integrations now point to one static assistant

Second, we’ve made it much easier to manage your conversation logs across environments. Meaning you can now work on improvements to your skill using production conversation logs — all without accidentally damaging what’s currently live in production. See our documentation on managing your development lifecycle.

Assistant Lifecycle Best Practices

Ready to start versioning?! Here’s what we think is the optimal way to manage the lifecycle of your assistant:

1 | Create multiple assistants — at a minimum, create one assistant for development and one for production; you can optionally include a test assistant if you are going to have a formal testing phase before promoting to production

Create multiple assistants, one for each environment

2 | Link the development version of your skill to your development assistant — make changes to the development version of your skill and test them live in your dev assistant

Make sure your development assistant is linked to the “development” version of your skill

3 | Once you’re confident with the changes, save a new version (i.e. v2) — then link v2 to your test assistant

Save v2 and link it to your test assistant

4 | Run your tests on the test assistant — if any of your tests failed, go back to step 2; otherwise, keep going

Run tests against v2 within your test assistant

5 | Link v2 to your “prod assistant” — and give your users some time to interact with the new changes

When confident, promote v2 to your production assistant

6 | Review the questions and responses from your users — to do this, go back to your skill, then skill analytics. Change the data source to your prod assistant only to review the conversation metrics and/or the conversations themselves. Note: If you want to view all the traffic hitting your skill (from any assistant), just leave the data source as the skill itself.

Change the data source within skill analytics to only review production traffic

7 | If you realize you’ve released a devastating change that you want to revert immediately — go into the version history and link a previously acceptable version to your prod assistant

8 | Make improvements based on usage — any changes you make from within your skill will only impact the development version of the skill — v2 is not impacted

Keep repeating this process from step 2 until your assistant is amazing! And if you’re not already a Watson Assistant user, sign up for free here!

--

--