Microsoft Copilot Studio コパイロットでトピックを作成し編集する

重要

Power Virtual Agents 機能は、生成 AI への多大な投資と Microsoft Copilot 全体の統合の強化により、現在 Microsoft Copilot Studio の一部となっています

ドキュメントやトレーニング コンテンツが更新される間、一部の記事やスクリーンショットで Power Virtual Agents が参照される場合があります。

Copilot Studio で、トピックはコパイロットの会話のプログレスを定義します。

トピックを作成するには、用意されているテンプレートをカスタマイズ したり、最初からトピックを作成したり、既存のヘルプ サイトから提案を取得 したりできます。

Copilot Studio で、トピック は、ユーザーとコパイロットの間の会話スレッドの一部を表します。 アプリ自体である 作成キャンバス でトピックを定義して操作します。 トピックには複数の 会話ノードが含まれており、これらが一緒になってトピックが選択できる会話パスを定義します。 各ノードは、メッセージの送信や質問などのアクションを実行します。

トピックには、トリガー フレーズ のセット (顧客が使用する可能性の高い特定の問題に関連するフレーズ、キーワード、質問) が含まれます。 Copilot Studio AI は、自然言語理解、顧客のメッセージ、すべてのトピックのトリガー フレーズを使用して、トリガーする最適なトピックを見つけます。 メッセージは、トピックをトリガーするためにトピックのトリガー フレーズと完全に一致する必要はありません。 たとえば、店舗の営業時間に関するトピックには、トリガー フレーズ check store hours が含まれる場合があります。 顧客が "店舗の営業時間を参照" を送信すると、Copilot Studio が店舗の営業時間トピックをトリガーします。

自然な言語の解釈

AI では自然言語理解 (NLU) を使用して、顧客が入力した内容を解析し、最適なトリガー フレーズまたはノードを見つけます。

たとえば、ユーザーがコパイロットに「営業時間」と入力するとします。 AI はそれを 店舗の営業時間 トピックと照合し、顧客が関心のある店舗を尋ねる会話を開始し、店舗の営業時間を表示します。

ボットのテスト ペインには、コパイロットの会話のプログレスがすべてのステップでどのように再生されるかが表示されます。 コパイロットのテスト ペインを使用して、Copilot Studio ポータルを終了せずにトピックを微調整できます。

コパイロットとトピックの制限については、クォータ、制限、構成の値 を参照してください。

前提条件

Topics

トピックの種類

コパイロットには、システムカスタム の 2 種類のトピックを含めることができます。 すべての新しいコパイロットは、一連のシステム トピックとカスタム トピックから始まります。

  • システム トピックは、人と話す、または会話を終了するというカスタム要求などの重要な動作をサポートします。 一部のシステム トピックにはトリガー フレーズがあり、コパイロットのニーズに合わせてカスタマイズできます。

    • システム トピックを作成することはできません。
    • システム トピックは削除できませんが、無効にすることはできます。
    • システム トピックに変更を加えることができます。 ただし、エンド ツー エンドのコパイロットの会話作成に慣れるまで、システム トピックを編集しないことをお勧めします。

    詳細については、システム トピックを使用するを参照してください。

  • カスタム トピックでは、顧客への挨拶、会話の終了、会話の再開などの一般的な動作をカバーします。

    • 開始カスタム トピックを変更したり、コパイロットから完全に削除したりできます。
    • 作成するトピックはすべてカスタム トピックです。

トピックを作成する

  1. コパイロットページのリストからコパイロットを開きます。 見やすくするために、ここでは コパイロットのテスト ウィンドウを閉じてください。

  2. トピック & プラグイン ページで、+ 追加>トピック>最初から を選択します。

    [追加] が強調表示された Copilot Studio トピック & プラグイン ページのスクリーンショット。

  3. トリガー ノードで、フレーズ にある編集 を 2 回選択して フレーズを追加する セクションを表示します。

    トリガー ノードと [フレーズ] セクションを表示したトピック作成キャンバスのスクリーンショット。

  4. フレーズを追加する で、トピックのトリガー フレーズを追加するテキストを入力します。

    コパイロットが顧客の応答を理解できるように AI をトレーニングするには、5 個から 10個のトリガー フレーズが必要です。 トリガー フレーズをさらに追加するには、次のいずれかを実行できます:

    • テキスト フィールドの横にある "+" を選択します。
    • 一連のトリガー フレーズを、それぞれ別の行に貼り付けます。
    • 一連のトリガー フレーズを入力し、それぞれの後に Shift+Enter を押して別の行に配置します。
    • 入力 を入力してフレーズの追加を完了します。

    トリガー フレーズには句読点を含めることができますが、長文ではなく、短い語句を使用することをお勧めします。

  5. 詳細 を選択して、トピック詳細 ペインを開きます。

    詳細を強調表示したトピック作成キャンバスのスクリーンショット。

  6. コパイロット トピックの詳細を追加します。

    • 名前 を追加して、"店舗営業時間" などのトピックを識別します。 トピック ページには、コパイロットで定義されているすべてのトピックがこの名前でリストされます。 どのトピックが顧客のメッセージに一致するかをコパイロットが判断できない場合、顧客にはトピック名が表示されることがあります。

    • 説明 がユーザーに表示されることはありません。 トピックの目的を自分自身やチームの他のコパイロット作成者に説明するために使用します。

  7. ページ上部の 保存 を選択して変更を保存し、トピックをトピック リストに追加します。

トピックの会話パスを設計する

トピックを作成すると、トリガー ノードが トピック & プラグイン ページに挿入されます。 さらにノードを追加して会話を制御できます。

  1. コパイロットの トピック & プラグイン ページからトピックを選択します。

  2. "+ " を選択して、ノードの前後に表示される場合がある別のノードを追加します。 ノードを追加できる場所では、会話のどの部分でも柔軟に編集できます。

    Microsoft Copilot Studio 作成キャンバスの [ノードを追加] ボタンのスクリーンショット。

  3. ノードを挿入するノード タイプを選択します。

    トピックに挿入できるノードのタイプは次のとおりです。

    回答内容 Description
    メッセージの送信 顧客メッセージを送信します。
    質問する 顧客に質問します。
    アダプティブ カードで質問する 他のアプリと交換するための JSON スニペットを作成します。
    条件の追加 条件に基づいて会話を分岐させます。
    変数管理 値を設定するか、新規または既存の変数を解析します。
    トピック管理 トピックまたは会話をリダイレクト、転送、または終了します。
    アクションを呼び出す Power Automate または Excel Online などのフローを呼び出します。
    Advanced 生成的な答えHTTP 要求イベント など。

    トリガー ノードの後に挿入するノード タイプのスクリーンショット。

質問ノードを追加する

質問 ノードは、ユーザーに情報の入力を求め、その応答を後で会話で使用できるように変数で保存できます。

ノードを使用すると、収集する情報の種類を選択できます。たとえば、多肢選択式の回答、事前に作成されたエンティティ、ユーザー定義エンティティなどです。 質問動作プロパティを使用すると、ユーザーが無効な応答を入力した場合の処理など、ノードの動作をコントロールできます。

メッセージ ノードと同様に、質問ノードには、画像、ビデオ、カード、クイック返信、およびメッセージのバリエーションを含めることができます。 詳細については、メッセージを送信する を参照してください。

質問 ノードの構築方法は次のとおりです。

  1. 任意のノードの "+" を選択してから 質問する を選択します。 質問 ノード フォームが表示されます。

    新しい質問モードのスクリーンショット。

  2. メッセージの入力ボックスで、聞きたい質問を入力します。

  3. 識別する にあるメニューを選択し、オプションを作成または選択します。 選んだエンティティは、コパイロットが顧客の応答の中で何を聞くべきかを決定します。 エンティティの詳細については、会話でエンティティを使用する方法を参照してください。

  4. 選択した識別オプションによっては、設定が必要なプロパティが他にもある場合があります。

    たとえば、複数選択式オプション を選択した場合は、ユーザーのオプション にある + 新規オプション を選択して、ユーザーが選択できるオプションを追加します。 各選択肢は、会話の中で複数選択ボタンとして表示されますが、ユーザーは回答を入力することもできます。

  5. 応答を名前を付けて保存 にある変数名を選択し、既定の変数の名前を意味のある名前 (customerNamebookingDate) に変更します。 変数のスコープは、変数プロパティ ペインでも設定できます。

    質問ノード用に作成された新しい変数のスクリーンショット。

質問動作を構成する

質問動作プロパティを使用すると、コパイロットが無効な応答にどのように応答するかや、ユーザー入力を検証する方法を制御できます。

  1. 質問 ノードで、... を選択して ノード メニュー を表示してから、プロパティ を選択します。 セクションのプロパティ ペインが表示されます。

  2. 質問のプロパティ ペインで、質問の動作 を選択して 質問の動作 ペインを開きます。

    プロパティ ペインのスクリーンショット。

質問の動作 ペインでは、プロンプト、検証、中断などの動作を調整できます。 動作をいくつか調べてみましょう。

動作のスキップ

動作のスキップ は、質問ノードの変数に会話の前半の値がすでに含まれている場合に、コパイロットが何をすべきかを決定します。

  • 質問のスキップを許可する: 変数に値が存在する場合に、質問をスキップします。
  • 毎回質問する: 変数に値が存在する場合でも質問します。

再プロンプト

再プロンプト は、ユーザーから有効な回答が得られなかった場合のコパイロットの反応を定義します。 1 回、2 回再試行するか、答えが得られないまま先に進むように指示できます。 コパイロットが続行するときに行う動作をカスタマイズするには、質問動作 ペインの 有効なエンティティが見つかりません を参照してください。 プロンプトを変更して、ユーザーにより多くのコンテキストを提供することもできます。

  • 再プロンプトの回数: コパイロットが有効な答えを得ようとする回数。 最大 2 回繰り返すが既定となります。 1 回繰り返すまたは繰り返さないを選択することもできます。

  • プロンプトを再試行: メッセージを変更するには、カスタマイズを選択してから、新しいプロンプトを入力します。

エンティティ検証

既定では、質問ノードは、選択したエンティティのみに基づいて、有効な応答を確認します。 追加のエンティティ検証により、追加の検証基準を追加できます。 たとえば、質問 ノードは、数字を識別するときに任意の数値を受け入れますが、10 未満に設定することもできます。 ユーザーが有効な応答を入力できるように、プロンプトを変更することもできます。

  • 条件: ブール値 (true または false) を返す Power Fx 式を入力します; たとえば、Topic.Var1 < 10

  • 条件が満たされていないプロンプト: 条件が満たされていない場合、メッセージを提供できます。 カスタマイズ を選択し、新しいプロンプトを入力します。

有効なエンティティが見つかりません

有効なエンティティが見つかりません は、コパイロットがユーザーからの有効な応答の受け取りをやめた場合に起こる動作を決定します。 人間のエージェントにエスカレートしたり、既定値を指定したりすることができます。 プロンプトを変更して、ユーザーに知らせることもできます。

  • エンティティが見つからない場合の操作:

    • エスカレート: ユーザーをエスカレーション システム トピック にリダイレクトします。 エスカレートは既定値です。
    • 変数を値に設定: 出力変数を値に設定し、次のノードに進みます。 既定のエンティティ値で、値を入力または選択します。
    • 変数を空 (値なし) に設定する: 出力変数を Blank に設定し、次のノードに進みます。 条件ノードを後で使用し、変数に値があるかどうかを確認できます。
  • エンティティが見つからない場合のメッセージ: メッセージを変更するには、カスタマイズを選択してから、新しいプロンプトを入力します。

割り込み

割り込み は、質問時にユーザーが別のトピックに切り替えることができるかどうかを決定します。

  • 別のトピックへの切り替えを許可: ユーザーは、新しいトピックの質問を放棄できます。

ノードの削除

... を選択して ノード メニュー を表示し、削除 を選択します。

[ノード メニュー] ボタンと [削除] ボタンを強調表示したスクリーンショット。

キャンバス上のノードを編集するための制御

キャンバスの作成ツールバーを使用して、トピックの名前をすばやく変更できます。 ツール バーでトピック名を選択し、新しい名前を入力して Enter キーを押します。

トピック名を強調表示したトピック作成キャンバスのスクリーンショット。

ツール バーのコントロールを使用して、選択したノードまたは選択した隣接ノードを切り取り、コピー、貼り付け、および削除できます。

作成キャンバス上のノードを編集するためのツールバー コントロールのスクリーンショット。

ツール バーでは、編集を元に戻すこともできます。 元に戻す メニューを開いて、すべての操作を最後に保存した状態に戻すか、直前の操作をやり直します。

元に戻すメニューのスクリーンショット。

ノードを貼り付ける

切り取りカットコピー ツールを使用して、複数のノードをクリップボードに配置したら、キャンバスに貼り付ける方法は次の 2 とおりあります。

  • ノードを選択してから貼り付けを選択した場合、クリップボードのノードは、選択したノードの後に挿入されます。

  • "+" を選択して ノードの追加 メニューを表示し、貼り付け を選択すると、クリップボード上のノードがその位置に挿入されます。

コード エディターでトピックを編集する

コード エディターには、YAML でトピックが表示されます。YAML は、読みやすく理解しやすいマークアップ言語です。 コード エディターを使用して、他の作成者が作成したものであっても、他のボットからトピックをコピーして貼り付けます。

重要

トピック全体をコード エディターで設計し、複雑なトピックを貼り付けることは、完全にはサポートされていません。

この例では、YAML をコピーしてコード エディターに貼り付け、顧客に配送情報を尋ねるトピックをすぐに追加します。

  1. トピック ページで、+ 新規トピックを選択します。

  2. 作成キャンバスの右上隅で、... を選択して その他のオプション を表示し、コード エディターを開く を選択します。

    コード エディターを開く方法のスクリーンショット。

  3. コード エディターの内容を選択して削除します。 次に、以下の YAML コードをコピーして貼り付けます:

    kind: AdaptiveDialog
    beginDialog:
      kind: OnRecognizedIntent
      id: main
      intent:
        displayName: Lesson 3 - A topic with a condition, variables and a prebuilt entity
        triggerQueries:
          - Buy items
          - Buy online
          - Buy product
          - Purchase item
          - Order product
    
      actions:
        - kind: SendMessage
          id: Sjghab
          message: I am happy to help you place your order.
    
        - kind: Question
          id: eRH3BJ
          alwaysPrompt: false
          variable: init:Topic.State
          prompt: To what state will you be shipping?
          entity: StatePrebuiltEntity
    
        - kind: ConditionGroup
          id: sEzulE
          conditions:
            - id: pbR5LO
              condition: =Topic.State = "California" || Topic.State = "Washington" || Topic.State     = "Oregon"
    
          elseActions:
            - kind: SendMessage
              id: X7BFUC
              message: There will be an additional shipping charge of $27.50.
    
            - kind: Question
              id: 6lyBi8
              alwaysPrompt: false
              variable: init:Topic.ShippingRateAccepted
              prompt: Is that acceptable?
              entity: BooleanPrebuiltEntity
    
            - kind: ConditionGroup
              id: 9BR57P
              conditions:
                - id: BW47C4
                  condition: =Topic.ShippingRateAccepted = true
    
              elseActions:
                - kind: SendMessage
                  id: LMwySU
                  message: Thank you and please come again.
    
  4. 保存を選択してから、コード エディターを閉じるを選択します。 質問 ノードには、配送に関する質問に対して多くの条件が設定されました。

    Microsoft Copilot Studio コード エディターで YAML から作成された会話のスクリーンショット。

コパイロットをテストして公開する

トピックに変更を加えるときに コパイロットをテスト して、すべてが想定どおりに動作していることを確認します。

コパイロットを設計およびテストした後、ウェブ、モバイル、ネイティブ アプリ、または Microsoft Bot Framework チャネルに公開します