仮想エージェントトピックの設計

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:12分
  • ユーザーが送信したインシデントを表示できるようにする 仮想エージェント トピック例の設計について説明します。この例では、会話フローのビルドに使用できるさまざまな設計コントロールについて説明します。

    仮想エージェントツールと機能を使用して、人間の介入なしで解決できる多くの問題に対処する会話を開発できます。製品とその機能に慣れると、創造性は会話を展開するための最も重要なツールの 1 つになります。

    より迅速に開始するために、次のリソースを 仮想エージェント利用できます。
    Now Assist は 仮想エージェント の値のいずれか
    Now Assist を使用して自然言語ベースの会話を作成します。仮想エージェント は、大規模言語モデル (LLM) を使用して、生成 AI スキルによって会話エクスペリエンスとセルフサービスワークフローの成功を改善します。
    構築済みの仮想エージェントトピック、トピックブロック、および ServiceNow NLU モデル

    これらの事前定義された会話は、ケースの作成や更新、よくある質問への回答の提供など、各ビジネスエリアで共通のセルフサービスタスクを持つユーザーに役立ちます。使用するビルド済みトピックを複製し、組織に合わせてカスタマイズします。

    仮想エージェントトピックの推奨事項
    トピックの推奨事項 アプリを使用して、組織に迅速に実装できるビルド済みの仮想エージェントトピックを特定します。トピックの推奨事項インテントディスカバリーを使用して組織のデータを分析し、組織が役立つ関連するビルド済みトピックと、作成すると便利な新しいトピックを見つけます。

    会話デザインの開始

    仮想エージェントデザイナーコントロールと再利用可能な会話要素を使用して、仮想エージェントとエンドユーザー間の会話用ダイアログを作成します。開始する前に、必ず次のことを行ってください。

    会話のユースケースを特定します。

    会話トピックを使用するユーザーと目標 (ユーザーの問題の解決やセルフサービスタスクの支援など) を決定します。トピックの主要な要件を収集するだけでなく、目標を達成するために必要なユーザーからの情報を特定します。

    たとえば、時間の経過に伴うサポート要求やその他の利用可能なメトリクスを確認して、一般的な問題、ユースケース、顧客の要求や目標を判断できます。そこから、仮想エージェントが支援できる繰り返し発生する要求または問題を予測できます。

    会話の構造を決定します。

    会話フローを考える際に、解決への直接の道筋を特定します。次に、ユーザーが提供した情報に応じて、会話が分岐する可能性がある代替パスを検討します。各分岐をどのように処理するか、およびユーザーが会話の前のポイントにループバックするかどうかを検討します。

    会話には、開始 (挨拶)、中間、および終了があり、フォローアップするサーベイまたはインシデント番号を含めることができます。途中で、問題に応じてユーザーがトピックをどのように切り替える必要があるかを検討します。

    LLM を使用している場合は、LLM への追加指示やカスタマイズされたスロット入力などの手段を使用して、ユーザーからのデータ収集を追加するか制限するかを検討してください。

    自然言語理解 (NLU) (NLU) を使用している場合は、ユーザーが会話セッション中にトピックを切り替える可能性があるシナリオを検討してください。たとえば、ユーザーがトピック全体を変更したい場合があります。または、ユーザーが脇道にそれて、仮想エージェントと「世間話」をするために、文脈から外れているように見える質問をすることもあります。会話中にトピックを切り替えた後に、ユーザーが元の会話を再開できるようにするかどうかを決定します。

    LLM 会話でユーザーステートメントをリダイレクトするように雑談フィルターを設定するか、LLM 会話と NLU/キーワード会話の両方で雑談トピックを作成することを検討してください。詳細については、「Configure small talk filters」と「雑談トピックの作成」を参照してください。

    ビルド済みのセットアップトピック、会話トピック、およびトピックブロック (特定のデザインステップとロジックを実行する再利用可能なサブフロー) を確認することもできます。これらのビルド済みアイテムを使用できるかどうかを判断し、必要に応じてカスタマイズすることを検討してください。

    仮想エージェントデザイナーでの設計プロセスを理解する
    仮想エージェントデザイナー でトピックを作成する場合、デザインプロセスには次の基本手順が含まれます。
    1. トピックが対応するユースケースを決定します。
    2. トピックを作成し、スコープ、公開するポータル (使用されるアシスタント)、ディスカバリーに使用するトピックの詳細な説明を定義するプロパティを設定します。
    3. 仮想エージェントデザイナーで会話フローを構築します。
    4. 会話フローをテストして微調整します。
    5. トピックを公開します。

    トピックプロパティは、トピックを設計および使用するさまざまな方法を決定します。たとえば、トピックを使用するユーザーと、トピックの使用方法やタイミングに影響を与える条件を制御できます。トピックを LLM アシスタントに関連付けて、そのアシスタントがトピックを利用できるようにすることができます。トピックの説明でできるだけ多くの関連する詳細を使用することで、LLM トピックのトピックディスカバリーを改善することもできます。

    ServiceNow 自然言語理解 (NLU) (NLU) を使用している場合は、NLU モデルとインテントをトピックに関連付けることができます。

    さまざまな資産に定義するプロパティの詳細については、「 仮想エージェントトピックの作成」、「 再利用可能なトピックブロックの作成」、「 カスタムコントロールの作成」を参照してください。

    次の分野の知識を持っている (始める前に知っておくべきこと)
    • ServiceNow プラットフォームとアプリケーションのテーブル構造に関する一般的な知識。
    • LLM を使用している場合は、大規模言語モデルと LLM アシスタントの仕組みの理解。
    • NLU を使用している場合は、インテント、エンティティ、および発言が NLU モデルでどのように使用されるかについての理解。
    • 会話デザインでスクリプトを使用している場合は、HTML、JavaScript、および REST 統合についての理解。

    会話の構造と目的を計画する

    仮想エージェントトピックを実装する最初のステップは、トピックの内容を決定することです。対象者と、会話を使用するときに対象者に何を達成してもらいたいかを検討します。この例では、このトピック例の目的は、エンドユーザーが送信したインシデントのステータスを確認できるようにするフローを作成することです。このトピックには、ユーザーがインシデントにコメントを追加するためのオプションが含まれています。

    この目標を念頭に置いて、トピックには次の要素が必要です。
    • ユーザーがインシデントを選択するためのプロンプト
    • インシデントのステータスを示す出力
    • ユーザーがコメントを残すかどうかを尋ねるプロンプト
    • その回答で会話を分岐するユーティリティコントロール
    • ユーザーがコメントを入力するためのプロンプト
    • ユーザー入力をコメントとしてインシデントに追加するユーティリティコントロール

    LLM 会話のトピックを作成する際には、追加の考慮事項があります。詳細については、「仮想エージェントトピックに関する LLM の説明と指示ガイドライン」と「General guidelines for writing instructions for generative AI large language models (LLMs)」を参照してください。

    仮想エージェントコントロールを使用した会話フローのビルド

    会話は次のダイアログフローのようになります。

    重要:
    このフローは、完成したフローがどのように見えるかについての一般的なアイデアを提供することを目的としています。トピックは段階的にビルドし、頻繁にテストするため、最初にレイアウト全体を構築する必要はありません。テストでは、機能とユーザーエクスペリエンスの両方を考慮してください。
    図 : 1. 完成した会話フロー
    インシデントの選択で始まり、その後にブール値の「コメントを残しますか?」とインシデントカードが続く会話フロー。意思決定ツリーでは、ユーザーは [はい] または [いいえ] を選択できます。

    会話内のコントロールの構成

    この例では、トピックプロパティが設定された後、 仮想エージェントデザイナーで会話フローを定義することから始めます。会話は開始ノードで始まり、終了ノードで終了します。
    1. 仮想エージェントデザイナートピックで、ダイナミック選択肢コントロールノードを会話フローに追加します。このコントロールは、インシデントを選択するために使用されます。
      1. [ノード名] プロパティに「インシデントを選択」と入力します。コントロールの変数名 choose_an_incident が自動的に生成されます。
      2. [ プロンプト ] プロパティに、インシデントを選択する前に表示されるテキストを入力します。たとえば、[ インシデントレコードを選択してください] などです。
      3. [ 選択肢の入力方法 ] プロパティで、[ レコード] を選択します。
      4. [ テーブル ] プロパティで、 インシデント [incident] を選択します。
      5. [ フィルターの選択肢 ] プロパティで、[ 条件 ] オプションを選択し、条件を作成します。
        • アクティブが true かつアサイン先グループがハードウェアかつカテゴリがデータベース
        • および
        • ステータスが新規またはステータスが対応中
        図 : 2. 条件ビルダーの例
        会話内で選択値の式に対して構成されたコントロールを表示するサンプル条件。
    2. フローに カード コントロールを追加します。このコントロールは、前のステップで 動的選択肢 によって選択されたレコードの情報を表示します。
      1. [ノード名] プロパティのステータスカードを入力します。
      2. [カードタイプ] プロパティで、[レコード] を選択します。
      3. [ レコード] プロパティで、[ インシデントを選択] を選択します。この選択肢は前のステップで作成されたダイナミック選択肢コントロールを参照するため、表示されるデータはそこで選択されたレコードから取得されます。
      4. フィールドコントロールで、フィールドを選択します。選択肢は、選択したレコードの利用可能なフィールドです。この場合、インシデントテーブルのフィールドが表示されます。
      5. フィールドを選択したら、[ フィールドの追加] オプションを選択してカードにフィールドを追加します。カードからフィールドを削除するには、フィールドの右側にある削除アイコンを選択します。
    3. フローに ブーリアン コントロールを追加します。このコントロールは、はい/いいえの質問を顧客に促すために使用されます。この場合、コントロールは、ユーザーが選択したインシデントレコードにコメントを残すかどうかを確認します。
      1. ノードプロパティに「コメントを残しますか?」と入力します。コントロールの変数名 leave_comment_ が自動的に生成されます。
      2. [ プロンプト] プロパティで、プロンプトの前に表示されるテキストを入力します。例: このインシデントにコメントを残しますか?
    4. 意思決定 コントロールを フローに追加します。このコントロールは、会話を 2 つの可能なパスに分岐します。会話がたどるパスは、前のステップでユーザーが行った選択によって異なります。
      1. 意思決定コントロールにプロパティはありません。ただし、意思決定の下の分岐にはプロパティがあります。デフォルトでは、[ 常時] というラベルの付いた分岐が 1 つあります。意思決定コントロールの下部にある青いプラスアイコンを選択します。同じく [ Always] というラベルが付いた 2 番目の分岐が表示されます。
      2. いずれかの分岐を選択して、この分岐のプロパティにアクセスします。
      3. 名前を 「コメントを残す」に変更します。
      4. 条件プロパティで、[ 条件 ] オプションを選択し、[ 条件を追加 ] ボタンを選択します。次のスクリーンショットに示すように、条件ビルダーを使用して条件を作成します。

        最初のフィールドで、「コメントを残しますか?」を指定します。2 番目のフィールドで、「次の値に等しい」を指定します。true であることを示すボックスを選択します。

        [ コメントを残しますか? ] の値が true の場合、この条件は満たされています。この変数は、前のステップのブールコントロールからの変数です。ユーザーがそのプロンプトで [はい ] を選択した場合、会話はこの分岐に従います。
      5. 意思決定の他の分岐を選択して、この分岐のプロパティにアクセスします。
      6. 名前を [コメントなし] に変更します。
      7. 条件プロパティで、[ 条件 ] オプションを選択し、[ 条件を追加 ] ボタンを選択します。次のスクリーンショットに示すように、条件ビルダーを使用して条件を作成します。

        最初のフィールドで、「コメントを残しますか?」を指定します。2 番目のフィールドで、「次の値に等しい」を指定します。true でないことを示す場合は、ボックスをオフにします。

        [ コメントを残しますか? ] の値が false の場合、この条件は満たされています。この変数は、前のステップのブールコントロールからの変数です。ユーザーがそのプロンプトで [ いいえ ] を選択した場合、会話はこの分岐に従います。
      8. 作成した 2 つの分岐の 1 つが、会話の 終了 ノードを指します。2 番目の分岐もこのノードにつながるはずです。その分岐の下部にある矢印を選択し、[ 終了] ノードにドラッグします。
    5. テキスト 入力 コントロールを会話の [コメントを残す ] 分岐に追加します。このコントロールは、ユーザーからのテキスト入力を要求するために使用されます。
      1. ノードプロパティに Get Comment と入力します。コントロールの変数名 get_comment が自動的に生成されます。
      2. [ プロンプト] プロパティで、プロンプトの前に表示されるテキストを入力します。例: コメントを入力してください。
      3. 必要に応じて、 詳細 > 確認メッセージ > 入力完了確認 プロパティ。この値は、ユーザーがコメントを入力した後に表示されます。
    6. [コメントを取得] コントロールの下にある会話に [レコードアクション] コントロールを追加します。このコントロールは、前のコントロールに入力されたテキストを、選択したインシデントのコメントとして追加するために使用されます。
      1. [ノード名] プロパティに「Update Incident (インシデントの更新)」と入力します。
      2. [ アクションタイプ ] プロパティで、[ レコードの更新] を選択します。
      3. [ レコード] プロパティで、[ インシデントを選択] を選択します。この選択は、前のステップで作成された ダイナミック選択肢 コントロールを参照するため、そこで選択されたレコードは、このレコードアクションコントロールが更新するレコードです。
      4. [ フィールド] プロパティで、[ フィールドの追加] を選択します。表示されるポップアップウィンドウで、このレコードのフィールドから値を選択して指定できます。

        [フィールド値] ポップアップウィンドウで、[追加コメント] を選択します。次のフィールドで、ドット連結を使用して [入力変数] > [コメントを取得] を選択します。

      5. リストから [追加コメント ] フィールドを選択します。
      6. データピルピッカーアイコン データ ピルピッカーアイコンを選択します。をクリックし、リストから [コメントを取得 ] 入力変数を選択します。このオプションは、前のステップで ユーザーがテキスト入力 コントロールに入力した値を参照します。
      7. [Save (保存)] を選択します。

    会話のテスト

    [ テスト ] ボタンを使用して、会話のフローをテストします。エラーや予期しない動作をすばやく見つけるために、設計プロセス全体を通じてトピックを頻繁にプレビューします。トピックに関する問題の特定と解決の詳細については、「 仮想エージェントトピックのデバッグ」を参照してください。