Copilot Studioの裏側で動くシステムトピックを学ぶ 中級No2

Copilot Studio の会話設計は、 「トピック=チーム」 という視点で捉えると一気に理解が深まります。

前回の中級編では、 親・子・孫トピックを連携させて “複数のチームを指揮する設計” を学びました。

しかし、実はそのさらに上位に 「会話全体を支える特別なチーム」=システムトピック が存在します。

  • 会話の開始:最初の印象を決める“受付チーム”
  • フォールバック:迷子になった会話を救う“救助チーム”
  • エスカレーション他:人間に引き継ぐ“最終防衛チーム”など

これらは、あなたが作るカスタムトピックとは別に、 常に裏側で動き続ける“司令塔チーム” です。

今回の記事では、この 3 つのシステムトピックを 「どんな役割を持ち、どう使いこなすべきか」 という視点で徹底的に解説します。

システムトピックを理解すると、 エージェントはただ動くだけでなく、 “破綻しない・迷わない・人間らしい” 会話ができるようになります。

但し、一部の「会話の強化」トピックなどは別の記事で詳細に解説させて頂きます

システムトピックの絶対ルール

システムトピックは削除できないが、無効化は可能です

ただし無効化しても完全停止にはならず、 エージェントの安全装置として最低限の動作を維持します

特にフォールバックは “理解できなかったときの最初の受け皿” として 常に優先されます

会話の開始

こちらはこれまでの記事でも紹介してきましたので、簡単に触れます

「会話の開始は、エージェントがユーザーに最初に声をかけるためのシステムトピックです。

どのトピックよりも先に必ず実行され、会話の雰囲気や導線を決める“入口の担当者”のような役割を持っています。

フォールバック

フォールバックが果たす3つの役割

理解できなかったことをユーザーに伝える

AI が無限に誤解したまま暴走しないように、 「すみません、理解できませんでした」と明示します。

会話を終了させず、次の入力を促す

フォールバックは「会話の継続」を前提に作られています。

  • 別の言い方を促す
  • 選択肢を提示する
  • トピックの入口に戻す

など、ユーザーが次の行動を取りやすくします。

AI の誤作動を防ぐ安全装置

意図認識やフレーズ認識が誤って別トピックを起動するのを防ぎ、 「分からないときは必ずここに戻る」 という 安定した会話フローを保証します。

実際の事例

作成するエージェント

システムトピックという名前のエージェントを一から作成し、「天気」という名称のシステムトピック作成します

オーケストレーション

オーケストレーションは純粋なフォールバックの動きを確認するために、画面右の設定ボタンからオフにします

上の画像の設定をクリックし、次に開いた下の画像の画面でオフにします

オーケストレーションをOFFにすると、意図認識(LLM推論)を使わず、フレーズ認識だけで動きます

余計な介入がなくなるので、 『どの入力がフォールバックに落ちるのか』を正確に確認できます。

天気トピック

オーケストレーションをオフにしたら、天気トピックのトリガーを調整します

上の画像の「→」ボタンを押すと、トリガーの変更が行えます

トリガーのタイプは「ユーザーがが語句を発生した時」を選択します

下の画像のように「編集」をクリックすると、フレーズを登録できます

ここで「天気」を登録します

右横の+ボタンを押さないと登録されないので注意が必要です

「メッセージを送信」カードも追加しましょう

実施に動かしてみる

では、実際にエージェントを動かしてみましょう!

上の画像のように「トピック間の追跡」をオンにしておきましょう

そして、「今日の天気は?」と入力してみましょう!

天気トリックが返信しています

Copilot Studioの画面も「天気トピック」に切り替わっています

今度は意味は「天気関連」だが、「天気の文字列」が含まれていないワードで会話を開始してみます

上の画像はフォールバックトピックから回答されています

下の画像が、Copilot Studioの真ん中の画面です

上の画像の黄色の箇所に注目していただくと、フォールバックトピックから回答があったことがよくわかります

さらに、下の画像のように「天気」が含まれるワードを再入力するときちんと天気トピックが起動します

ここで「フォールバックが果たす3つの役割」を振り返りましょう

理解できなかったことをユーザーに伝える

会話を終了させず、次の入力を促す

AI の誤作動を防ぐ安全装置

今の事例で上記の3つが機能しているのがよく観察できたと思います

エスカレートする

エスカレーションは、AI が対応できない場面で 会話を安全に人間へ引き継ぐための “最後の出口” となるシステムトピックです

ユーザー体験を守るための重要な安全装置です

ここでもう一度、フォールバックトピックの画面を確認しましょう!

上の画像の左下にご注目ください

「FallbackCount」は事前に用意されているシステム変数です

こちらの変数にフォールバックトピックが起動された回数が蓄積され、画像の設定だと3回以上起動すると「エスカレートする」トピックが起動するようになっています

実際に起動させてみましょう

話を分かりやすくするため、エスカレートするトピックの起動条件を2回に短縮しておきます

では、ここから「エスカレートする」トピックに移動します

事前にトリガーカードの下の、「メッセージを送信する」カードをカスタマイズしておきます

では、

ここからテスト画面で新しいセッションを開始した上で、天気トピックに登録されていないワードを入力してみます

下の画像ではフォールバックトピックの1回目が起動しています

ここから2回目の回答です
敢えて、登録フレーズと合わないフレーズを入力します

そうすると、上の画像のように事前に「エスカレートする」トピックに入力したフレーズが回答されます

ちなみに、

オーケストレーションをオンにしたらどうなるでしょうか?

しかも「トピック間の追跡」をオンにしているのに回答したトピックも表示されません

理由は以下になります

オーケストレーションONでは、AIが“気を利かせて”トピックを使わずに直接回答することがあります。 この場合、トピックは起動しないため追跡には何も表示されません。 つまり、AIが裏側でショートカットしている状態です。

この事例がオーケストレーションの役割のヒントになれば幸いです

ここまで会話の開始、フォールバックとエスカレートする、3つのトピックを解説しました

あとは残りのトピックを簡単に紹介します

こういうトピックがあると認識してもらえれば幸いです

複数のトピックが一致しました

複数のトピックが同時に候補になった際、 ユーザーに意図を確認して正しいトピックへ誘導する役割を担うトピックです

例えば、天気トピックに加えて温度トピックを作成したうえで次の質問をしたとします

「今日の天気は?暑いですか?」

このようにどちらのトピックが答えるべきかが簡単に判断がつかない、質問をしたとします

上の画像のように、優先順位を確認します

優先順位を回答すると、該当のトピックに誘導します

会話の終了

会話終了トピックは、ユーザーが会話を締める発話(例:ありがとう)をした際に自動で動き、会話を自然に終了させる役割を持つシステムトピックです。

前段としてカスタムトピックの「お問い合わせありがとうございました」トピックが動きます

上の画像ではフレーズに「問合せ」をデフォルトの内容に加えています

ユーザーが「問合せ」と回答すると発火して、質問:この会話を終了しますか?

と確認します

ここで「はい」とユーザーが回答すると「会話の終了トピック」が起動して、ユーザーに会話の終了の案内をします

会話のリセット

会話の状態を初期化し、最初の質問に戻すためのシステムトピック。 会話を終了する機能ではありません

  • 会話リセット=会話の状態(変数・進行)を初期化するだけ
  • 会話終了=入力欄が閉じる(別のトピック)

こちらも会話の終了トピックと同様に2段階です

下の画像のように「やり直してください」などのフレーズで「最初からやり直す」トピックが起動します

そして下の画像のように「会話を本当に再開しますか?」とユーザーに聞きます

実際の会話は以下の画像のようになります

ここで再開する内容を入力すると、会話のリセットトピックが起動します

エラー発生時

このトピックは「エラーが起きたときに代わりに動く安全装置」です

具体的な事例を見てみましょう!

下の画像をみてください

気温トピックの「メッセージを送信」カードが存在しない変数を参照しているため、エラーが発生しています

このトピックを起動するとこのトピックが起動します

トピックの回復方法

純粋に最初の状態に戻す方法

システムトピックを色々といじった後に元に戻したいときがあります

その時は下の画像の「詳細」をクリックしてください

そうすればもともとの状態に戻ります

カスタムトピックになってしまった場合

システムトピックのトリガーを変更しているときに、カスタムトピックになっていまうことがあります

そうなると、前述のような最初の状態への回復ができなくなります

このようなときは他のエージェントから同システムトピックのコードをコピーして貼り付けましょう

つまり、中身をもとに戻すのです

上の画像のように他のエージェントの同トピックのコードエディターを開きます

上の画像のコードをCtrl+A、Cによりすべてコピーします

そして回復するトピックのコードエディターに貼り付けてコードを置き換えます

まとめ

Copilot Studio には、会話全体を裏側で支える 特別なシステムトピック が存在します。 これらはユーザーが作るカスタムトピックとは別に、 常に会話の安全性と自然さを保つ役割を持っています。

1. 会話の開始

最初に必ず実行される “受付担当”。 会話の雰囲気と導線を決める。

2. フォールバック

意図認識・フレーズ認識に失敗したときに 最初に動く安全装置。 ユーザーに別の言い方を促したり、選択肢を提示する。

3. エスカレーション

フォールバックが複数回続いたときに動く 最終的な安全出口。 人間への引き継ぎや案内を行う。

4. 複数トピック一致

複数の候補が同時にヒットしたとき、 ユーザーに意図を確認して正しいトピックへ誘導する。

5. 会話の終了

ユーザーが締めの発話(例:ありがとう)をしたときに動き、 会話を自然に閉じる。

6. 会話のリセット

会話を終了するのではなく、 変数や進行状態を初期化して最初に戻す ための仕組み。

7. エラー発生時

内部エラーが起きた際に代わりに動き、 ユーザーに安全なメッセージを返す。

次の記事ではは会話だけでなく、実行を行うエージェントを作成していきます

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です