次の方法で共有


クラシック チャットボットを Bot Framework ボットのスキルとして使用する

注意

この記事は、クラシック チャットボット にのみ適用されます。 この機能は、新規の Copilot Studio エクスペリエンスでは利用できません。

クラシック チャットボットと共に Bot Framework ボットを スキル として使用する場合、Bot Framework ボットは、ユーザーの発言がクラシック チャットボットの トリガー フレーズ に一致するかどうかを判断します。 一致する場合、Bot Framework ボットはクラシック チャットボットに会話を渡します。 クラシック チャットボットは、任意の エンティティ を抽出し、一致するトピックをトリガーします。

Bot Framework Composer からの 入力として変数を Copilot Studio スキル トピックに渡し返される出力を使用する こともできます。

重要

クラシック チャットボットをスキルとして使用するには、試用版 またはフル Copilot Studio ライセンスが必要です。 この機能は、Teams Copilot Studio ライセンス では使用できません。

クラシック チャットボットをスキルとして設定する方法:

  1. Bot Framework ボットをクラシック チャットボットの許可リストに追加します

  2. クラシック チャットボットのスキル マニフェストをダウンロードします

  3. ダウンロードしたスキル マニフェストを Bot Framework Composer で使用し、ボット間の接続を作成します

  4. Bot Framework Emulator を使用して、ボットがスキルとして機能することを確認します

前提条件

ご利用の Bot Framework ボットをクラシック チャットボットの許可リストに追加する

スキルとして使用するクラシック チャットボットの許可リストに Bot Framework ボットのアプリ ID を追加します。 ボットは同一テナント内に存在する必要があります。

  1. Bot Framework Composer でスキルを使用するボットを開きます。 構成 を選択し、開発リソース を選択します。 Microsoft アプリ ID の ID をコピーします。

  2. Copilot Studio でスキルとして使用するクラシック チャットボットを開きます。

  3. ナビゲーション メニューで 設定 に移動して セキュリティ を選択します。 続いて 許可リストを選択します。

  4. 許可された呼び出し元の追加 を選択します。

  5. Bot Framework ボットの アプリ ID を貼り付け、次へ を選択します。

    注意

    従来の チャットボット は、他の従来のチャットボットのスキルとして機能することはできません。 Power Virtual Agent ボットに属するアプリ ID を許可リストに追加しようとすると、エラーが発生します。 Bot Framework ボットのアプリ ID のみを追加できます。

    Copilot Studio は Bot Framework ボットのアプリ ID を検証し、同じテナントのボットに属していることを確認します。

  6. (オプション) 追加したボットの表示名 を許可リストに追加します。

  7. 保存を選択します。

Bot Framework ボットは、入力した場合は表示名で表示され、表示名を入力しなかった場合はアプリ ID で表示されます。 いつでも削除または編集するには、ボットの表示名またはアプリ ID の右側にあるアイコンを選択します。

Note

許可リストに追加された Bot Framework ボットは、ボット コンテンツの一部としてエクスポート されません。

クラシック チャットボット のクラシック チャットボット スキルマニフェストをダウンロードする

Bot Framework ボットは Copilot Studio スキル マニフェストを使用して、マニフェストを作成したクラシック チャットボットへの接続を構成することができます。

すべての従来のチャットボットにはスキルマニフェストがあります。 スキル マニフェストは、スキルの名前、インターフェース、トリガー フレーズを含む JSON ファイルです。

Bot Framework ボットは、スキル マニフェストを使用して、クラシック チャットボットをトリガーするタイミングを把握できます (例: ユーザーからの発言に対する反応)。

Copilot Studio のスキル マニフェストは、Bot Framework のスキル マニフェスト スキーマのバージョン 2.2 に従い、intents.lu ファイルと manifest.json ファイルで構成されます。

Bot Framework ボットは、マニフェスト データに基づいて、クラシック チャットボットがユーザー リクエストを処理する必要があると判断する場合があります。 ユーザーの発言をすべてをクラシック チャットボットに渡します。 そして、クラシック チャットボットは、ユーザーの発言を Copilot Studio トピックと照合し、スロット充填に必要なエンティティ を抽出して、Copilot Studio トピックをトリガーします。

Copilot Studio スキル マニフェストは自動的に生成され、更新されます。 クラシック チャットボットには 2 つのスキル マニフェストがあります。

  • テスト マニフェスト: Bot Framework ボットがクラシック チャットボットのテスト版に接続できるようにします。 スキルを公開する前に、テスト マニフェストを使用して、スキルの変更を検証します。

    • テスト マニフェストは、新たに作成されたすべてのクラシック チャットボットですぐに利用できます。
    • クラシック チャットボットを 保存 するたびに、変更内容が自動的に反映されます。
  • 公開マニフェスト: Bot Framework ボットが公開バージョンのクラシック チャットボットに接続できるようにします。

    • 公開マニフェストは、一度でも公開されたことのあるクラシック チャットボットでのみ利用できます。
    • エージェントを公開するたびに、変更内容を反映して自動的に更新されます。

注意

公開されたことのないクラシック チャットボットでは、公開マニフェスト は使用できません。

ボットの 公開マニフェスト を作成するには、クラシック チャットボットを公開します

両方のスキル マニフェストが 許可リストの管理 パネルに表示されます。

スキル マニフェストは、コパイロットの詳細ページにも表示されます。 ナビゲーション メニューで 設定 を選択し、詳細 を選択します。 詳細ページには、環境 IDテナント IDボットのアプリ ID などのメタデータが表示されます。

マニフェストをダウンロードするには、そのマニフェストを選択します。 公開マニフェスト の場合は <bot name>manifestテスト マニフェスト の場合は <bot name>test__manifest という名前の .zip ファイルでダウンロードされます。

注意

スキル マニフェストには、クラシック チャットボットに追加されるシステム トピックや Composer ダイアログは含まれません。 ボットの作成者によって作成されたトピックと、作成者がコパイロットに追加する Composer インテント トリガーのみが含まれます。

Composer の Copilot Studio スキルに接続する

Copilot Studio のスキル マニフェストを使用して、Composer の Bot Framework ボットにスキル接続を作成します。

  1. Bot Framework Composer のプロジェクトで、追加 を選択し、スキルに接続 を選択します。

  2. Copilot Studio マニフェスト .zip アーカイブを参照して選択し、次へ を選択します。

  3. Bot Framework ボットに追加するクラシック チャットボットでトピックまたはインテントを選択し、次へ を選択します。

  4. クラシック チャットボットのトリガー フレーズを確認して編集し、次へ を選択します。

  5. 複数のボット プロジェクトにオーケストレーターを使用する が選択されていることを確認し、続行 を選択します。

  6. Copilot Studio スキルが Bot Framework ボットに正しく追加され、クラシック チャットボットの名前を持つ新規トリガーが Composer のプロジェクトに表示されていることを確認します。

スキル マニフェストでトピックを検索する

イベントを使用して、スキルで Copilot Studio トピックをトリガーします。 Composer から特定のトピックを呼び出すには、スキル マニフェストにある関連イベントの名前でトピックを参照します。

  1. スキルに接続する アクションを選択します。

  2. スキル ダイアログ名 で、スキル マニフェストを表示する を選択します。

  3. activities をマニフェストで検索します。 このプロパティには、クラシック チャットボットで利用可能なトピックを表すネストされたプロパティが含まれます。

  4. 呼び出すトピックを検索し、name プロパティを探します。 Copilot Studio スキルがこの名前のイベントを受け取ると、トピックをトリガーします。

    この例では、イベント活動名は dispatchTo_new_topic_87609dabd86049f7bc6507c6f7263aba_33d です。

Copilot Studio スキル トピックを呼び出す

Copilot Studio スキル トピックをトリガーするユーザーの発言に依存するのではなく、直接呼び出すことができます。 スキル マニフェストに一覧表示されている Copilot Studio トピックのみを直接呼び出すことができます。

  1. Composer 作成キャンバスで 追加 を選択し、次に 外部リソースにアクセスする を選択して、スキルに接続する を選択します。

  2. スキル ダイアログ名 のリストで、クラシック チャットボットを選択します。

  3. 呼び出す クラシック チャットボット トピックのイベント活動名を検索します。 引用符を省略して値をコピーし、次の手順で使用するために保存します。

  4. クローズを選択します。

  5. 活動 セクションで コードの表示 を選択します。

  6. 次のコードを入力または貼り付けます。 TOPIC_ACTIVITY_NAME をトピックのイベント活動名に置き換えます。 name プロパティに引用符がないことを確認してください。

    [Activity
        type = event
        name = TOPIC_ACTIVITY_NAME
    ]
    

入力変数を Copilot Studio スキル トピックに渡す

Copilot Studio Composer は、変数を入力として Bot Framework スキル トピックに渡すことができます。 入力変数を受け入れる Copilot Studio トピックを作成する方法については、変数を使った作業 を参照してください。

入力変数を受け取ることができる Copilot Studio トピックがスキル マニフェストに記載されている場合は、Composer 変数を渡すことができます。

  1. Composer 作成キャンバスで 追加 を選択し、次に 外部リソースにアクセスする を選択して、スキルに接続する を選択します。

  2. スキル ダイアログ名 のリストで、クラシック チャットボットを選択します。

  3. 呼び出す クラシック チャットボット トピックのイベント活動名を検索します。 引用符を省略して値をコピーし、次の手順で使用するために保存します。

  4. トピックの value プロパティを検索します。 value プロパティには、$ref プロパティが含まれます。 その値をコピーして保存し、次の手順で使用します。

    警告

    Copilot Studio トピックに入力がない場合、value プロパティはありません。

  5. definitions プロパティを検索してから、前の手順で検索した $ref 値と一致するネストされたプロパティを検索します。 Copilot Studio トピックの入力の名前と種類に注意してください。 次の手順で使用します。

  6. クローズを選択します。

  7. 活動 セクションで コードの表示 を選択します。

  8. 次のコードを入力または貼り付けます。 これらの値を置き換えます:

    1. TOPIC_ACTIVITY_NAME をトピックのイベント活動名に置き換えます。
    2. PVA_INPUT_VARIABLE をトピックからの入力変数に置き換えます。
    3. COMPOSER_INPUT_VARIABLE を、値を提供する Composer 変数に置き換えます。
    [Activity
        Type = event
        Name = TOPIC_ACTIVITY_NAME
        Value = ${addProperty(json("{}"), 'PVA_INPUT_VARIABLE', COMPOSER_INPUT_VARIABLE)}
    ]
    

    この例では、Composer 変数 dialog.storeLocation が、クラシック チャットボット トピック dispatchTo_new_topic_127cdcdbbb4a480ea113c5101f309089_21a34f16 で、入力変数 pva_StoreLocation に値を提供します。

Copilot Studio スキル トピックから出力変数を受け取る

Composer では、Copilot Studio スキル トピックから出力を受け取ることができます。 出力を返す Copilot Studio トピックの作成方法については、変数を使った作業 を参照してください。

  1. Composer 作成キャンバスで 追加 を選択し、次に 外部リソースにアクセスする を選択して、スキルに接続する を選択します。

  2. スキル ダイアログ名 のリストで、クラシック チャットボットを選択します。

  3. 呼び出す クラシック チャットボット トピックのイベント活動名を検索します。 引用符を省略して値をコピーし、次の手順で使用するために保存します。

  4. トピックの resultValue プロパティを検索します。 resultValue プロパティには、$ref プロパティが含まれます。 その値をコピーして保存し、次の手順で使用します。

    警告

    Copilot Studio トピックに出力がない場合、resultValue プロパティはありません。

  5. definitions プロパティを検索してから、前の手順で検索した $ref 値と一致するネストされたプロパティを検索します。 Copilot Studio トピックの出力変数の名前と種類に注意してください。 次の手順で使用します。

    この例では、Copilot Studio トピックは、文字列型の 2 つの出力 pva_State および pva_Item を返します。

  6. クローズを選択します。

  7. 活動 セクションで コードの表示 を選択します。

  8. 次のコードを入力または貼り付けます。 TOPIC_ACTIVITY_NAME をトピックのイベント活動名に置き換えます。 name プロパティに引用符がないことを確認してください。

    [Activity
        type = event
        name = TOPIC_ACTIVITY_NAME
    ]
    
  9. コード領域で、プロパティ を Composer 変数に設定して、Copilot Studio スキル トピックからの出力値を受け取り、格納します。

  10. Composer 作成キャンバスで 追加 を選択し、次に プロパティを管理 を選択して、プロパティ設定 を選択します。

  11. プロパティ を抽出された値を保存する Composer 値に設定します。 そのあと、 をトピックの出力をに保存した Composer 変数に設定します。

    この例では、dialog.skillResult.pvaStatedialog.skillResult.pvaItem からの出力値は、新しい Composer 変数 dialog.Statedialog.Item に抽出されます。

Bot Framework ボットを使用して、ご利用のクラシック チャットボットをスキルとしてテストする

Bot Framework Emulator を使用して、Bot Framework ボットがクラシック チャットボットをスキルとして正しく呼び出していることをテストします。

重要

スキルの接続を行うためには、ご利用の Bot Framework ボットがクラシック チャットボットの許可リストに追加されている必要があります。

マルチテナント Bot Framework ボットをシングルテナント ボットに更新する

次の図は、Bot Framework SDK 上に構築された Bot Framework ボットがクラシック チャットボット を呼び出してスキルとして使用するシナリオを示しています。

Bot Framework ボットとクラシック チャットボット の相互作用を示す図。

Bot Framework ボットと従来の チャットボットの両方に Microsoft Entra ID アプリ登録があり、これは Azure Bot インスタンスによって参照されます。 これらの Microsoft Entra ID アプリの登録は、マルチテナントとして作成されています。 Bot Framework ボットは Bot Framework テナントからトークンを要求し、このトークンを使用して Azure Bot Service を通じて Copilot Studio に認証します。 Copilot Studio は、同じメカニズムを使用して Bot Framework ボットに接続します。

Copilot Studio チャットボット のアプリケーション登録がシングルテナントとして作成されたため、この通信は機能しなくなりました。 Microsoft Entra ID は、同じテナント内にないシングルテナント アプリケーション登録のトークンの作成を拒否します。

さらに、Copilot Studio は受信トークンを検証し、従来のチャットボットのアプリケーション登録が作成されたテナント ID など、予期しないテナントからの要求を拒否します。

この問題を解決するには、2 つの修正方法があります。

Bot Framework ボットと同じテナント内のクラシック チャットボット

Copilot Studio チャットボット が Bot Framework ボットと同じテナントに既にデプロイされており、このボットによってのみ使用されているシナリオでは、ボットをシングルテナント構成に更新してから、Bot Framework ボットを再デプロイします。 シングルテナント用に Bot Framework ボットを構成する方法の詳細については、ボットのプロビジョニングと公開を参照してください。

シングルテナントに更新できない Copilot Studio チャットボット

Copilot Studio チャットボットが Bot Framework ボットと同じテナントに既にデプロイされており、ボットをシングルテナントで更新できないシナリオでは、Bot Framework ボットのコードを更新して、Copilot Studio チャットボット と通信するためのトークンを作成する必要があります。 トークンは、Copilot Studio チャットボット も作成されたテナント用に作成する必要があります。 また、応答を受け入れる必要があるため、既存のスキルをマルチテナントからシングルテナントに変換するの手順に従う必要があります。

詳細情報