OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

ユニバーサルボットの定義

Kore.aiのユニバーサルボットは、複数の独立した標準ボットを1つにまとめることで、拡張性のあるモジュール形式のボットの構築を可能にします。

  • モジュール化:ドメイン固有の課題に対応するボットを個別に構築し、それらを統合して最適な相互運用を行います。
  • 拡張性主要なユースケースに対応するボットをまず構築し、その他のユースケースに対応するボットを追加していきます。

ユニバーサルボットの作成を始める前に、ユニバーバルボットの仕組みや標準ボットとの違いについて理解しましょう。

ボットの動作

ユニバーサルボットの応答は、ユーザーインテントに合致するボットやタスクの数と、それらの関連性(完全一致または候補)によって異なります。自然言語処理(NLP)エンジンは、リンクされたボットに送信された発話を処理し、ユーザーインテントを検出して、関連性に基づいてランク付けします。開発者は、ユニバーサルボットをテストで説明されているように、ボットの応答をテストしてトレーニングすることができます。以下の表は、考えられる様々なNLPの結果において、ユニバーサルボットの応答がどのように動作するかを示しています。

NLPの結果 ボットの応答
リンクされたどのボットからも完全一致が1つしか見つからない 完全一致のタスクを実行する
1つ以上のリンクされたボットで完全一致が見つかった ユーザーの発話に含まれる呼び出し名とボットの結果の一致を試みますが、そうでない場合はユーザーに選択を促します。
リンクされた単一のボットの2つ以上のタスクで完全一致が見つかった 現在のボットのコンテキストを使用して曖昧さを解消し、そうでなければユーザーに選択を促します。
1つ以上のリンクされたボットで候補が見つかった 個々のスコアを評価し、P&Rの設定に基づいて上位インテントを実行します。
リンクされた単一のボットの2つ以上のタスクで候補が見つかった P&Rの設定に基づいて、上位インテントを実行します。
候補が1つのみ見つかった ユーザーに候補を表示し、選択するかどうかを尋ねる
完全一致または候補が見つからない ユニバーサルボットのインテントを確認する – スモールトークまたはフォールバックボット

標準ボット vs ユニバーサルボット

ユニバーサルボットは、複数の標準ボットを単一のボットにまとめます。いくつかの例外を除いて、ほとんどの標準ボットの機能をサポートしています。

有効な機能と設定

このセクションでは、標準ボットの基礎知識をお客様が理解していることを前提としています。ユニバーサルボットに関連する詳細のみをこちらに記載します。基本的な操作については、関連する標準ボットのドキュメントを参照することをお勧めします。以下の表の機能列の項目は、標準ボットのドキュメントのURLを示しています。説明列の詳細リンクは、ユニバーサルボットのドキュメントを参照しています。

機能 説明
自然言語
テスト ユニバーサルボットは標準ボットをリンクさせるため、自然言語処理(NLP)の設定が最適化され、関連するボットとインテントを正確に認識することができます。少しの違いで、標準ボットと同じようにユニバーサルボットのテストやトレーニングを行うことができます。タスクのトレーニングは、リンクされたボットのレベルで行われます。詳細
トレーニング(UB 2.0) ユニバーサルボット2.0は、プラットフォームのバージョン7.3以降、トレーニングできるようになりましたが、そのアプローチは通常のボットとは少し異なります。詳細
標準レスポンス ユニバーサルボットは、挨拶などのボットレベルの機能に関連する、限られた標準の応答を保持します。自然言語 > デフォルトの会話で、標準応答セクションにアクセスし、関連する標準の応答を編集します。
バッチテスト ユニバーサルボットは、カスタム定義された発話のテストのみをサポートしており、開発者が定義した発話成功したユーザー発話はサポートしていません。カスタム定義された発話のテストスイートは、標準ボットと同様ですが、アップロードするJSONデータセットファイルに、各テストケースのインテントおよび入力とともにボット名を含める必要があります。また、ダウンロードしたバッチテストのレポートには、対応するボット名とともに結果が表示されます。
デフォルトダイアログ ユニバーサルボットには、未確認のインテントでトリガーされるデフォルトのダイアログタスクが伴います。このタスクをカスタマイズしたり、新しいタスクをインポートすることができます。詳細
イベントベースのボットアクション バージョン8.0では、リンクされたボットから色々なイベント用に様々なタスクを選択できるようになりました。詳細
ヘルプ チャット中にユーザーがヘルプと入力した場合、標準ボットが実行可能なタスク一覧を返し、ユーザーはタスク名を選択して実行することができます。ユニバーサルボットに関して言えば、ユーザーがヘルプと入力すると、ボットはリンクされているボットの名前を返します。ユーザーは一覧からタスクを選択したり実行したりすることはできません。
チャネルの設定
すべて ユニバーサルボットは、リンクされたボットのチャネル設定を取得せず、独立したチャネル設定を必要とします。リンクされたボットのチャネルとは別に、ユニバーサルボットの新しいチャネルを設定することができます。リンクされたボットの公開済みタスクは、ユニバーサルボットのチャネルから実行されます。詳細
設定
一般設定 ユニバーサルボットと標準ボットの基本設定は同じです。
言語管理 ユニバーサルボットは、リンクされたボットの有効化された言語を取得しません。ユニバーサルボットで、デフォルト言語と追加言語を明示的に有効にする必要があります。ただし、ユーザーが有効な言語で発話した場合、ユニバーサルボットは、その言語をサポートするリンクされたボットタスクにのみその発話を伝達します。例えば、ユニバーサルボットでドイツ語が有効になっており、ユーザーがドイツ語で発話した場合、NLPエンジンはドイツ語をサポートするすべてのリンクされたボットのタスクを探し、それらのタスクにその発話を送信します。詳細
開発者コラボレーション 標準ボットと同様に動作します。ユニバーサルボットを別の開発者と共有すると、その開発者はボットをリンクしたりリンク解除したりすることができます。
ログの変更 ユニバーサルボットのログの変更には、標準ボットに適用されるすべての変更内容に加えて、以下の内容が記録されます。

  1. ボットのリンク
  2. ボットのリンク解除
  3. デフォルトダイアログへの変更
  4. デフォルトダイアログの公開
ボットのインポートとエクスポート(バージョン7.1より対応) 標準ボットと同様に、公開されているユニバーサルボットと公開されていないユニバーサルボットをエクスポートおよびインポートすることができます。ユニバーサルボットはリンクされたボットを扱うため、以下の点に注意する必要があります。

  • ユニバーサルボットのエクスポート – リンクされたボットへの参照(参照ID)のみが含まれ、リンクされたボットの定義全体は含まれません。
  • ユニバーサルボットのインポート – ボットがインポートされる環境で、プラットフォームはリンクされたボットと一致する参照IDを持つボットを確認します。見つかった場合は、インポートされたユニバーサルボットに自動的にリンクされます。リンクされたボットの権限を有しており、そうでない場合はリンクされません。ユニバーサルボットをインポートする前に、必ずリンクされたボットをインポートします。
ボットの削除 標準ボットと同様に、公開されていないユニバーサルボットを削除することができます。
変数管理(UB 2.0) 標準ボットと同様に、ユニバーサルボットでもグローバル変数やコンテンツ変数を定義することができます。さらに、変数をリンクされたボットに伝えるかどうかを選択することもできます。
API 拡張
SDKツールキット オンメッセージ、オンフック、オンイベント、オンアラートなどのイベントで有効
エージェントへの転送 エージェントへの転送は、ユニバーサルボットに設定することができます。デフォルトダイアログでエージェントノードを追加する必要があり、エージェントノードの後に別のノードを追加することはできません。
WebHookノード 複数のWebhookノードをデフォルトダイアログに配置することができます。会話中にWebhookノードに到達すると、プラットフォームは標準ボットと同様にBotKitを起動します。
チャネルとしてのSDK 有効になっている
分析する
チャット履歴 ユニバーサルボットのチャットはすべて記録されます。開始されたトレーニングは、リンクされた個別のボットに影響を与えます。
公開する
すべて リンクされたボットを1つまたは複数選択し、ユニバーサルボットを公開することができます。公開フローについては、こちらをご確認ください

イベント管理

リンクされたボットの以下のBotKitイベントに対するユニバーサルボットの動作を見てみましょう。

  • 会話の終了(以下を参照
  • メッセージ
  • エージェント
  • Web フック
  • イベント
  • 通知イベント

コンテキストに子ボットがある場合(子ボットからのタスクが進行中の場合)、開発者の設定に基づいて、子ボットに関連するイベントがトリガーされます。

  • 子ボットでイベントが有効になっている場合、そのイベントは子ボットのBotKitに転送されます。
  • 子ボットでイベントが有効になっていない場合
    • ユニバーサルボットでイベントが有効になっている場合、そのイベントはユニバーサルボットのBotKitに送信されます。
    • ユニバーサルボットでもイベントが有効になっている場合、そのイベントはどのBotKitにも転送されません。

以下の表は、上記のシナリオと動作をまとめたものです。

イベント名 チャイルドボットのステータス ユニバーサルボットのステータス 想定される動作
メッセージ 有効になっている 子ボットのBotKitに送信されるイベント
無効になっています 有効になっている ユニバーサルBotKitに送信されるイベント
無効になっています 無効になっています 無効なシナリオです。この場合、イベントは発生しません
その他のイベント 有効になっている 子ボットのBotKitに送信されるイベント
無効になっています 有効になっている ユニバーサルBotKitに送信されるイベント
無効になっています 無効になっています 現在の動作と同じです。例:ダイアログがWebhookノードに到達したが、「オンフック」イベントが有効になっていない。

会話の終了

次の表は、会話の終了イベントに対するボットの動作を表しています。

会話の終了 ユニバーサルボットの会話の終了イベント リンクされたボットの会話の終了イベント 動作
ユニバーサルボット 有効になっている 有効または無効 ユニバーサルボットのトリガーイベント
ユニバーサルボット 無効になっています 有効または無効 イベントがトリガーされない
リンクされたボット 有効または無効 有効になっている リンクされたボットのトリガーイベント
リンクされたボット 有効になっている 無効になっています ユニバーサルボットのトリガーイベント
リンクされたボット 無効になっています 無効になっています イベントが発生しませんでした
OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

Defining a Universal Bot

Kore.ai’s Universal Bots facilitate a scalable, modular approach to bot building by linking several standard individual bots into one.

  • Modularity: Build separate bots that address domain-specific issues and then integrate them to optimally interoperate.
  • Scalability: Start building bots that address key use cases and keep adding additional bots to address more use cases.

Before starting with creating a Universal Bot, let us understand how Univeral Bots work and how they differ from the Standard Bots.

Bot Behavior

Universal bot responses vary with the number of bots and tasks that match the user intent along with their relevance (exact matches or suggestions). The Natural Language Processing (NLP) engine processes the utterances sent to the linked bots, detects the user intents, and ranks them based on relevance. As a developer, you can test and train the bot responses as explained in Test the Universal Bot.

Following the table shows how universal bot responses operate in various possible NLP outcomes:

NLP Outcome Bot Response
Only one exact match found from any of the linked bots Executes the task with the exact match
Exact matches found in more than one linked bot Tries to match the invocation names from the user utterance with the bot results, else prompts the user to select one.
Exact matches found with two or more tasks of a single linked bot Disambiguates using the current bot context, else prompts the user to select one.
Suggestions found in more than one linked bot Evaluates the individual scores and executes the winning intent based on the P&R settings.
Suggestions found with two or more tasks of a single linked bot Executes the winning intent based on the P&R settings.
Only one suggestion found Shows the suggestion to the user asking if they would like to select it
No exact match or suggestion found Checks for intent in the Universal Bot – small talk or fallback bot

Standard Bots vs. Universal Bots

Universal Bots connect multiple Standard Bots into a single bot. They support most Standard Bot features with a few exceptions.

Enabled Features and Configurations

This section assumes that you understand the fundamentals of standard bots. Details relevant to the Universal Bots alone are listed here. We recommend you to refer to the relevant standard bot documentation for help with the basics.
The Feature column entries in the following table provide URLs to the standard bot documentation.
The Learn more links in the Description column refer to the universal bot documentation.

Feature Description
Natural Language
Testing Since the universal bot links together standard bots, the Natural Language Processing (NLP) settings are optimized to accurately recognize the relevant bot and intent. You can test and train the universal bot like a standard bot with small differences. When you train the task it happens at the linked bot level. Learn more.
Training

(UB 2.0)

Post ver7.3 of the platform, the Universal Bot 2.0 can be trained, the approach is slightly different from the standard bots. Learn more.
Standard Responses The universal bot will hold a limited set of standard responses that are relevant to bot level functions like greetings. Go to Natural Language -> Default Conversation, to access the Standard Responses section to edit the relevant standard responses.
Batch Testing Universal bots only support testing Custom-defined utterances and not Developer-defined utterances and Succesful user utterances.
The Custom-defined utterances test suites remain similar to the standard bots’ except that the JSON Dataset file that you upload should contain a bot name along with the intent and input for every test case. Also, the downloaded batch test report shows the results with corresponding bot names.
Default Dialog Universal bots come with a default dialog task that gets triggered for unidentified intents. You can customize this task or import a new one. Learn more.
Event-Based Bot Actions With ver8.0, you can choose different tasks from the linked bots for various events. Learn more.
Help When a user types Help during a chat, a standard bot responds with the list of tasks that it can perform, allowing the user to select a task name to execute.

When it comes to Universal bots, if a user types Help, the bot responds with the names of linked bots. The user cannot select or execute a task from the list.

Channel Configuration
All Universal bots do not obtain the channel configurations of the linked bots and need an independent channel configuration. You can set up new channels for the universal bot independent of the linked bot channels. The published tasks in the linked bots execute from the universal bot channels. Learn more.
Settings
General Settings Universal and standard bots share the same general settings.
Language Management Universal bots do not obtain the enabled languages of the linked bots. You must enable default and additional languages explicitly for the universal bot. But when user utterances are made in an enabled language, the universal bot routes it to only those linked bot tasks that support the language. For example, if German is enabled for the universal bot and a user utters in German, the NLP engine looks for all the linked bot tasks that support German and sends the utterance to those tasks. Learn more.
Developer Collaboration Works similar to standard bots. Once you share a Universal Bot with other developers, they can link and unlink bots.
Change Logs Universal bot change logs record all the changes applicable to the standard bots, plus the following:

  1. Linking of a bot
  2. Un-linking of the bot
  3. Change to default dialog
  4. Publishing of default dialog
Import & Export bot

(supported from ver7.1)

Like standard bots, you can export and import the published and unpublished universal bots. Since universal bots deal with linked bots the following need to be taken care of:

  • Export of a universal bot – only the reference to the linked bot (reference id) will be included not the entire linked bot definition;
  • Import of the universal bot – in the environment where the bot is being imported to, the platform checks for the bots with reference id matching the linked bot. If found they are automatically linked to the imported universal bot. Also you should have permissions for the linke bot, else it will not be linked. Ensure that you import the linked bots before importing the universal bot.
Delete bot Like standard bots, you can delete the unpublished universal bots.
Variable Management

(UB 2.0)

Like standard bots, you can define global and content variables in universal bots. In addition, you can choose whether or not the variables can be propagated to the linked bots.
API Extensions
SDK toolkit Enabled with the following events – on message, on hook, on event, on alert
Agent Transfer Agent Transfer can be configured for a Universal Bot. The Agent Node needs to be added in default dialog and addition of any subsequent nodes after the agent node is not allowed.
WebHook Node Multiple webhook nodes can be placed in the default dialog. When a webhook node is reached during the conversation, the platform invokes the BotKit similar to that of a Standard Bot.
SDK as Channel Enabled
Analyze
Chat History All the Universal Bot chats get recorded. Any initiated training will affect the individual linked bot.
Publish
All You can select one or more linked bots and publish the Universal Bot. Learn more about the publish flow.

Event Management

Let us see the behavior of Universal Bots for the following BotKit events in Linked Bots:

  • End of Conversation (see below)
  • On Message
  • Agent
  • Webhook
  • Event
  • Alert Events

When a child bot is in context i.e., a task from a child bot is in progress, then the events related to the child bots will be triggered based on the configurations set up by the developer:

  • If an event is enabled in child bot, then the event will be forwarded to child bot BotKit
  • If an event is not enabled in child bot and
    • if that event is enabled in Universal bot, then the event will be sent to Universal bot BotKit
    • if that event is not enabled in Universal bot as well, then the event will not be forwarded to any BotKit.

Following table summarises the above scenarios and behavior:

Event Name Child Bot Status Universal Bot Status Expected Behavior
On Message Enabled Event sent to child bot BotKit
Disabled Enabled Event sent to Universal BotKit
Disabled Disabled Invalid scenario. The event does not trigger in this case
All other events Enabled Event sent to child bot BotKit
Disabled Enabled Event sent to Universal BotKit
Disabled Disabled Same as the current behavior. E.g. dialog reaches Webhook node but ‘on Hook’ event is not enabled

End of Conversation

The following table depicts the bot behavior for the end of the conversation event:

Conversation ends End of Conversation Event in Univeral Bot End of Conversation Event in Linked Bot Behavior
Universal Bot Enabled Enabled or Disabled Trigger event in Universal Bot
Universal Bot Disabled Enabled or Disabled No event triggered
Linked Bot Enabled or Disabled Enabled Tigger event in Linked Bot
Linked Bot Enabled Disabled Tigger event in Universal Bot
Linked Bot Disabled Disabled Event not triggered

Next Steps

  • You can start creating your Universal Bots by referring here.
  • You can learn about training the Universal Bots from here.