仮想エージェントトピックの設計
ユーザーが送信したインシデントを表示できるようにする仮想エージェントのトピック例の設計について説明します。この例では、会話フローを構築するために使用できるさまざまな設計のコントロールを紹介します。
仮想エージェントのツールと機能を使用すると、人の介入なしで解決できる多くの問題に対処する会話を開発できます。製品とその機能に慣れると、会話を開発するための最も重要なツールの 1 つとして創造性を発揮できるようになります。
- 構築済みの仮想エージェントトピック、トピックブロック、および ServiceNow NLU モデル
以下の事前定義された会話は、ケースの作成や更新、よくある質問への回答の提供など、各ビジネスエリアで共通のセルフサービスタスクを持つユーザーに役立ちます。使用する構築済みトピックを複製し、組織に合わせてカスタマイズします。
- 仮想エージェントのトピックの推奨事項
- トピックの推奨事項アプリを使用して、組織に迅速に実装できる構築済みの仮想エージェントトピックを特定します。トピックの推奨事項は インテントディスカバリー を使用して組織からのデータを分析し、組織が活用できる構築済みの関連トピックや、作成すると役立つ新しいトピックを見つけます。
会話デザインの開始
仮想エージェントデザイナーのコントロールと再利用可能な会話要素を使用して、仮想エージェントとエンドユーザー間の会話のダイアログを作成します。開始する前に必要な準備があります。
- 会話のユースケースを特定する。
会話トピックを使用するユーザーと目標を決定します。たとえば、ユーザーの問題を解決する、セルフサービスタスクを使用してサポートする、などです。トピックの重要な要件の収集に加えて、目標を達成するために必要なユーザーの情報を特定します。
たとえば、時間外のサポート要求や他の利用可能な測定基準を確認することで、一般的な問題、ユースケース、および顧客の要求や目標を特定することができます。そこから、仮想エージェントが支援できる繰り返しの要求または問題を予測できます。
- 会話の構造を決定する
会話のフローを考える際に、解決への直接の道のりを特定します。その後、ユーザーが提供する情報に応じて、会話が分岐する可能性がある代替パスについて検討します。各分岐をどのように処理し、ユーザーが会話の前のポイントにループバックするかどうかを考慮します。
会話には、開始 (挨拶)、中間、および終了があり、フォローアップするサーベイまたはインシデント番号を含めることができます。途中で、問題に応じてユーザーがどのようにトピックを切り替える必要があるかを検討します。
自然言語理解 (NLU) (NLU) を使用している場合は、会話セッション中にユーザーがトピックを切り替えることができるシナリオを考えてみましょう。たとえば、ユーザーがトピック全体の変更を望む場合があります。または、ユーザーは、おそらく仮想エージェントと「雑談」するため、横道にそれてコンテキスト外に見える質問をすることもあります。会話中にトピックを切り替えた後に、ユーザーが元の会話を再開できるようにするかどうかを決定します。
また、構築済みのセットアップトピック、会話トピック、およびトピックブロック (特定のデザインステップとロジックを実行する再利用可能なサブフロー) を確認することもできます。これらの構築済みアイテムを使用できるかどうかを判断し、必要に応じてカスタマイズすることを検討してください。
- 仮想エージェントデザイナーでのデザインプロセスを理解する
仮想エージェントデザイナーでトピックを作成する場合、デザインプロセスには次の基本的なステップが含まれます。
トピックプロパティは、トピックをデザインおよび使用するさまざまな方法を決定します。たとえば、トピックを使用するユーザーと、トピックの使用方法やタイミングに影響を与える条件を制御できます。ServiceNow 自然言語理解 (NLU) (NLU) を使用している場合、NLU モデルおよびインテントをトピックに関連付けることができます。さまざまなオブジェクトに定義するプロパティの詳細については、「仮想エージェント トピックを作成する」、「再利用可能なトピックブロックの作成」、および「カスタムコントロールの作成」を参照してください。図 : 1. トピックデザインプロセス - 次の分野の知識を持つ (始める前に知っておくべきこと)
- ServiceNow プラットフォームとアプリケーションのテーブル構造に関する一般的な知識。
- NLU を使用している場合は、インテント、エンティティ、および発言が NLU モデルでどのように使用されるかについての理解。
- 会話デザインでスクリプトを使用している場合は、HTML、JavaScript、および REST 統合についての理解。
会話の構造を計画する
仮想エージェントトピックを実装する最初のステップでは、トピックの内容を決定します。想定される対象者と、会話を使用するときの対象者の目的を考えてみましょう。この例では、このトピック例の目的は、エンドユーザーが送信したインシデントのステータスを確認できるようにするためのフローを作成することです。このトピックには、ユーザーがインシデントにコメントを追加するためのオプションが含まれています。
- ユーザーがインシデントを選択するためのプロンプト
- インシデントのステータスを示す出力
- ユーザーがコメントしたいかどうかを尋ねるプロンプト
- その答えの会話を分岐するユーティリティコントロール
- ユーザーがコメントを入力するためのプロンプト
- インシデントのコメントとしてユーザー入力を追加するユーティリティコントロール
仮想エージェント コントロールを使用した会話フローの構築
会話は次のようなダイアログフローに似ています。
会話内のコントロールの設定
- 仮想エージェントデザイナー で、ダイナミック選択肢コントロールを会話フローに追加します。このコントロールは、インシデントの選択に使用されます。
- [ノード名] プロパティで「インシデントを選択」と入力します。変数名「
choose_an_incident」が、コントロール用に自動生成されます。 - [プロンプト] プロパティで、インシデントを選択する前にユーザーに表示されるテキストを入力します。
- [選択肢の入力方法] プロパティで、[レコード] を選択します。
- [テーブル] プロパティで、[インシデント [incident]] を選択します。
- [フィルターの選択肢] プロパティで、[条件] オプションを選択し、条件を作成します。
- [アクティブ] が [true] かつ [アサイン先グループ] が [ハードウェア] かつ [カテゴリ] が [データベース]
AND
- ステータスが [新規] または [対応中]
図 : 3. 条件ビルダーの例 - [アクティブ] が [true] かつ [アサイン先グループ] が [ハードウェア] かつ [カテゴリ] が [データベース]
- [ノード名] プロパティで「インシデントを選択」と入力します。変数名「
- カードコントロールをフローに追加します。このコントロールは、前のステップの [ダイナミック選択肢] で選択されたレコードの情報を表示します。
- [ノード名] プロパティに「ステータスカード」と入力します。
- [カードタイプ] プロパティで、[レコード] を選択します。
- [レコード] プロパティで、[インシデントの選択] を選択します。この選択は、前のステップで作成されたダイナミック選択肢コントロールを参照するため、表示されるデータはそこで選択されたレコードに由来します。
- フィールドコントロールで、フィールドを選択します。使用可能なオプションは、選択したレコードでの使用可能なフィールドです。この場合、インシデント テーブルのフィールドが表示されます。
- フィールドを選択したら、 [フィールドの追加] オプションをクリックしてカードにフィールドを追加します。カードからフィールドを削除するには、フィールドの右側にある削除アイコンをクリックします。
- ブールコントロールをフローに追加します。このコントロールは、はい/いいえの質問をユーザーにプロンプトするために使用されます。この場合、コントロールは、選択したインシデントレコードにコメントを残すかどうかをユーザーに確認します。
- [ノード名] プロパティに「コメントを残しますか?」と入力します。変数名「
leave_comment_」が、コントロール用に自動生成されます。 - [プロンプト] プロパティで、プロンプトの前にユーザーに表示されるテキストを入力します。この場合、インシデントにコメントを残すかどうかをユーザーに尋ねます。
- [ノード名] プロパティに「コメントを残しますか?」と入力します。変数名「
- 意思決定コントロールをフローに追加します。このコントロールは会話を 2 つの考えられるパスに分岐します。会話が続くパスは、前の手順でユーザーが選択したものによって決まります。
- 意思決定コントロールにはプロパティはありませんが、意思決定の下の分岐にはプロパティがあります。デフォルトでは、「Always」のラベルが付いた分岐が 1 つあります 。意思決定コントロールの下部にある青いプラスアイコンをクリックします。[常時] というラベルの付いた 2 番目の分岐が表示されます。
- 分岐のいずれかをクリックして、この分岐のプロパティにアクセスします。
- 名前を「Leave Comment」に変更します。
- 条件プロパティで [条件] オプションを選択し、[条件を追加] ボタンをクリックします。Condition Builder を使用して、次のスクリーンショットに示されているように条件を作成します。
[コメントを残しますか? (Leave Comment?)] の値が true の場合、この条件が満たされます。この変数は、前の手順のブーリアンコントロールからの変数です。ユーザーがこのプロンプトで [はい] を選択した場合、会話はこの分岐に従います。 - 意思決定の他の分岐をクリックして、この分岐のプロパティにアクセスします。
- 名前を「No Comment」に変更します。
- 条件プロパティで [条件] オプションを選択し、[条件を追加] ボタンをクリックします。Condition Builder を使用して、次のスクリーンショットに示されているように条件を作成します。
[コメントを残しますか? (Leave Comment?)] の値が false の場合、この条件が満たされます。この変数は、前の手順のブーリアンコントロールからの変数です。ユーザーがこのプロンプトで [いいえ] を選択した場合、会話はこの分岐に従います。 - 作成した 2 つの分岐の 1 つが、会話の 終了ノードを指しています。2 つめの分岐もこのノードにもつながるはずです。その分岐の下部にある矢印をクリックし、 [終了] ノードにドラッグします。
- 会話の Leave Comment 分岐に、テキスト入力コントロールを追加します。このコントロールは、ユーザーからのテキスト入力を要求するために使用されます。
- [ノード名] プロパティに「コメントを取得する」と入力します。変数名「
get_comment」が、コントロール用に自動生成されます。 - [プロンプト] プロパティで、プロンプトの前にユーザーに表示されるテキストを入力します。この場合、ユーザーにコメントのテキストを尋ねます。
- 必要に応じて、 読み取りますこの値は、ユーザーがコメントを入力した後に表示されます。
- [ノード名] プロパティに「コメントを取得する」と入力します。変数名「
- [コメントを取得 (Get Comment)] コントロールの下の会話にレコードアクションコントロールを追加します。このコントロールは、前のコントロールに入力されたテキストを、選択したインシデントのコメントとして追加するために使用されます。
- [ノード名] プロパティに「インシデントの更新」と入力します。
- [アクションタイプ] プロパティで、[レコードを更新] を選択します。
- [レコード] プロパティで、[インシデントの選択] を選択します。この選択は、前のステップで作成されたダイナミック選択肢コントロールを参照するため、そこで選択されたレコードは、このレコードアクションコントロールが更新するものと同じです。
- [フィールド] プロパティで、[フィールドの追加] をクリックします。表示されるポップアップウィンドウでこのレコードから値を選択して、フィールドに値を指定できます。
- リストから [追加コメント] フィールドを選択します。
- [データピルピッカー] アイコン (
) をクリックし、リストで [コメントを取得 (Get Comment)] 入力変数を選択します。このオプションは、前のステップで、ユーザーがテキスト入力コントロールに入力した値を参照します。
- [保存] をクリックします。
会話のテスト
[テスト] ボタンを使用して、会話フローをテストします。エラーや予期しない動作をすばやく見つけるために、設計プロセス全体を通じてトピックを頻繁にプレビューします。トピックに関する問題の特定と解決の詳細については、「仮想エージェントトピックのデバッグ」を参照してください。