前回の記事では、Bot Framework SDKを使用したDialogSkillBotの実装について解説しました。
本記事では、作成したスキルボットをCopilot Studioのエージェントと連携させる手順を詳しく説明します。
エージェントについて
以下の記事で作成した 「TravelAgent」という旅行相談に特化したエージェントを使います。
このエージェントに Bot Framework で作成したフライト予約のスキルを追加します。
エージェントとの連携
本記事はエージェントの操作の経験がある方向けに書いているので、詳細は割愛します。エージェントの作成方法や基本的な操作方法は以下をご参照ください。
スキルの追加
- 作成したエージェントの 設定 に移動
- 「スキル」タブを選択
- 「スキルを追加」をクリック
- 以下の情報を入力:
- マニフェストURL: {WebアプリのURL}/{manifestフォルダ以降のマニフェストファイルのパス}
- 例:
https://.azurewebsites.net/manifest/dialogchildbot-manifest-1.0.json
- 「次へ」をクリック

フライト予約トピックの作成
スキルを呼び出すトピックを作成します。
トリガーフレーズの設定
新しいトピック「フライト予約」を作成し、以下のトリガーフレーズを設定します。
- フライト予約
- フライト
- 予約
会話フローの設定
ステップ1: 予約開始の確認
- 質問ノード:フライトの予約を行いますか?
- 特定: ブール値
- 変数の種類: トピック
- 変数名: isFlightBookingConfirmed

ステップ2: 条件の設定
- 条件:isFlightBookingConfirmed が次の値に等しい true
No(その他のすべての条件)の場合、「現在のトピックを終了する」を追加します。

Yes の場合、以下のようにします。
- 「ツールを追加する」をクリックし、先ほど追加したスキルの 「Books a flight」を選択する
- 出力を指定した変数に格納
- destination:グローバル変数 destination を選択
- origin:新しい変数を作成
- travelData:新しい変数を作成

ステップ3: おすすめプランの提案
- 質問ノード:目的地のおすすめ旅行プランを調べますか?
- 特定: ブール値
- 変数の種類: トピック
- 変数名: isTravelPlanRecommended
ステップ4: 条件の設定
- 条件:sTravelPlanRecommended が次の値に等しい true
No(その他のすべての条件)の場合、「現在のトピックを終了する」を追加します。

Yes の場合、以下のようにします。
- 「変数管理」 をクリックし、 「変数値を設定する」を選択する
- グローバル変数 date を選択
- 設定する変数:date
- 設定する値:DateValue(Topic.travelDate)
- 「トピック管理」 をクリックし、 「別のトピックに移動する」から 「旅行プランの提案」を選択

設定が完了したのでトピックを保存します。
エージェントとの連携テスト
テストチャットでの動作確認
- Copilot Studioの 「テスト」パネルを開く
- 「フライト予約」と入力
- スキルボットが応答し、以下の質問が順次表示されることを確認
- 出発地の入力
- 目的地の入力
- 出発日の入力
- 予約内容の確認

まとめ
本記事では、DialogSkillBotをCopilot Studioのエージェントに連携する手順を詳しく解説しました。
複雑なビジネスロジックを含むカスタムスキルによって、単純な質疑応答を超えた高度な対話体験を提供できるようになります。
ぜひスキルを活用して、エージェントのさらなる機能拡張を検討してみてください。
コメント