【Copilot Studioの会話は「トピック」で動く。その仕組みを図解しながら、実際のエージェント設計に必要な基礎を整理します。**】
Copilot Studio を使ってエージェントを作るとき、 最初に理解すべきなのは「トピック」という概念です。
トピックは、エージェントの中で“特定の仕事を担当するミニAI”のような存在です。 会話の開始、質問の分類、業務ロジックの実行など、 すべての動きはトピックを中心に構成されています。
今回は、システムトピックとカスタムトピックの違い、 クイック返信とトリガーフレーズの組み合わせを整理しながら、 Mermaid を使って会話フローを視覚的に理解できるようにまとめました。
目次
1. Copilot Studio の会話は「トピック」で動く
Copilot Studio でエージェントを作るとき、最初に理解すべき概念が 「トピック」 です。 トピックは、エージェントがユーザーの質問にどう反応し、どのように会話を進めるかを決める“会話の最小単位”です。
Copilot Studio の会話は、すべてこのトピックを中心に構成されます。 ユーザーが入力した内容をもとに、どのトピックが担当するかを判断し、適切な応答や処理を実行します。
2. トピックとは何か?
トピックとは、特定の目的を持った会話ロジックのまとまりです。 たとえば次のような役割を持つトピックがあります。
- 会話を開始する
- 製品についての質問に答える
- 注文状況を確認する
- 技術サポートを行う
それぞれのトピックは独立しており、ユーザーの入力内容に応じて必要なトピックが呼び出されます。
Copilot Studio のエージェントは、複数のトピックが連携しながら会話を進めることで、ユーザーの目的に沿った応答を実現します。
3. なぜトピック構造を理解する必要があるのか
トピック構造を理解すると、エージェントの設計が一気に楽になります。 理由は次の3つです。
① 会話の流れを意図通りに制御できる
どのタイミングでどのトピックが発火するかを把握できるため、 「ユーザーが迷わない会話設計」が可能になります。
② トラブルシューティングが容易になる
「なぜこのトピックが発火しないのか?」 「なぜ別のトピックが呼ばれてしまうのか?」 といった問題の原因がすぐに特定できます。
●③ 業務ロジックを分割して管理できる
1つの巨大な会話フローを作る必要はありません。 業務ごとにトピックを分けることで、保守性が高く、再利用しやすい構造になります。
4. トピック=「業務を担当するミニAI」という考え方
トピックを理解する最もわかりやすい比喩は、
トピック=業務を担当するミニAI(担当者)
という考え方です。
- 「製品の質問に答える担当者」
- 「注文状況を調べる担当者」
- 「技術サポートを行う担当者」
といったように、トピックごとに役割が分かれています。
そして、ユーザーの入力内容に応じて、 “どの担当者が対応するか” を Copilot Studio が判断する という仕組みになっています。
この考え方を持つだけで、Copilot Studio の会話設計が驚くほど理解しやすくなります。

コールセンターの光景を思い浮かべてください
最初に電話に出る人は、会話を専門の担当者に振り分ける役割を担います
会話を振り分けられた人は、それぞれの専門性を活かして受け答えをしていくという形になります

5. システムトピックとカスタムトピックの違い
Copilot Studio では、トピックは大きく 「システムトピック」と「カスタムトピック」 の2種類に分かれます。 どちらも「会話を動かす単位」ですが、役割とトリガーのされ方がまったく違います。
5-1. システムトピックとは?

システムトピックは、その名の通り 「システム側であらかじめ用意されているトピック」 です。 ユーザーが作成したり削除したりするものではなく、Copilot Studio がエージェントの基本動作のために持っている“組み込み機能” だと考えるとわかりやすいです。
代表的なシステムトピックには、次のようなものがあります。
- 会話の開始
- 挨拶
- 会話の終了
- よくあるエラーへの対応 など
これらは、ユーザーの入力内容に関係なく、「システムイベント」をきっかけに自動でトリガーされます。
- エージェントとの会話が始まったとき
- 会話を終えるタイミングになったとき
- エラーが発生したとき
といった「状態の変化」に応じて、システムトピックが発火します。
システムトピックの特徴
- システムイベントでトリガーされる
- ユーザーが削除できない(消せない)
- 内容の編集や無効化は一部可能だが、完全に無くすことはできない
- エージェントの“基本的な振る舞い”を担っている
5-2. カスタムトピックとは?

カスタムトピックは、ユーザーが自由に作成できるトピックです。 業務に合わせて、
- 製品に関する質問に答える
- 注文状況を確認する
- 技術サポートを行う
- 社内ルールを案内する
といったように、「このエージェントに何をさせたいか」 を具体的な単位に落とし込んだものがカスタムトピックです。
カスタムトピックは、ユーザーの入力に含まれる「トリガーフレーズ」によって発火します。
たとえば:
- 「注文状況を確認したい」
- 「製品について質問があります」
- 「パソコンが起動しません」
といったフレーズをトリガーとして登録しておくことで、 ユーザーの発話内容に応じて、対応するカスタムトピックが呼び出されます。
カスタムトピックの特徴
- ユーザーが自由に作成・編集・削除できる
- トリガーフレーズでトリガーされる
- 業務ごとに分割して設計できる
- エージェントの“業務ロジック”を担っている
5-3. 2つのトピックの関係性
システムトピックとカスタムトピックの関係を、あえて人にたとえると:
- システムトピック:受付・案内係(システム側の基本動作)
- カスタムトピック:各業務の担当者(ユーザーが設計する業務AI)
というイメージです。
会話の入口や終了、エラー時の対応など、 「どのエージェントにも共通する動き」 はシステムトピックが担当します。
一方で、 「このエージェントならではの業務」 は、カスタムトピックとして設計していきます。
5-4. まとめ:違いを整理すると設計が楽になる
- システムトピックは システムイベントでトリガーされる/削除できない/共通動作を担当
- カスタムトピックは トリガーフレーズでトリガーされる/自由に作成・削除できる/業務ロジックを担当
この違いを押さえておくと、
「これはシステムトピックでやるべきか?」 「これはカスタムトピックとして分けるべきか?」
という判断がしやすくなり、 結果として 保守しやすく、拡張しやすいエージェント設計 につながります。
6.実際に会話フローを作成する
6-1.シナリオ
フローは前回記事(電子機器トラブル解決アシスタント)を使ってすすめていきます
さて、
会話はすべて、システムトピック「会話の開始」からはじまります
この会話の開始トピックに「選択肢の提示」を盛り込みます

選択肢のどれかがクリックされたら、それぞれの専門トピックに遷移します
専門トピックに移動したら、最初の応答をするところまでを作成します
上の会話フローの流れをMermaidコードを利用して図解すると以下の通りとなります

なおこのブログではMermaidコードを積極的に推奨しています
Mermaidコードはコードから作図する仕組みです
とても生成AIとも相性がよく「最強プロンプト」です
詳細は過去の記事を参照してください ⇒Mermaidコード
6-1-1.会話の開始トピック
下記の画像内のように「クイック返信」とありますが、これが選択肢です

後ほど、クイック返信の作成の仕方も解説します
6-1-2.カスタムトピック
6-1-1.の「会話の開始トピック」で選択されたクイック返信が、各トピックに埋め込まれたトリガーフレーズと連動する仕組みになっています

例えば「製品問合せ」が選択されたら、製品問合せトピックに埋め込まれた以下のトリガーフレーズと紐づいて発火が行われます
- どんな製品がおすすめですか?
- なんの製品がありますか?
- 一番人気がある製品はなんですか?
- 一番優れた製品はなんですか?
- おすすめの製品はなんですか?
各トピックが発火した後は、事前に埋め込まれたメッセージで応答する形になります
6-2.会話の開始トピックの作成
6-2-1.メッセージの送信
画面上のトピックタブから、下記の画像の「システム」を選んでください

会話の開始をこれから修正するのですが、トリガーにカーソルをおいてトリガーの内容を確認してください

ちなみに、システムトピックを無効にするには下記の画像の黄色の箇所をオフにしてください(システムトピックは削除はできません)

それでは、
「会話の開始」の文字列をクリックして、修正画面に入りましょう
最初にまず、事前に設定されているメッセージを削除しましょう

次に上の+ボタンからノード(メッセージなど)を追加しましょう

追加するのは「メッセージを送信する」ノードです

これで下記の画像のように白紙のノードができました

「メッセージを入力する」にメッセージを入力しましょう

試しに会話を開始したらどうなるかを見てみましょう
下の画像のように「保存」ボタンを押すのを忘れないようにしましょう

テスト画面の+ボタンを押して新しいセッションを開始してみましょう

下のGIF画像のように、テスト会話が開始されたら設定したメッセージが表示されます

ここで、自然に会話が開始されているように見える工夫をしてみましょう!
毎回、同じメッセージが表示されるといかにも機会が答えているようです
ですので、メッセージを追加してメッセージを可変にしましょう

上のGIF画像のようにメッセージのバリエーションを追加します

すると下の画像のように可変でメッセージが表示されます

6-2-2.クイック返信
会話が開始されたときのメッセージは完成しました
ここからは選択肢も追加されるようにします

メッセージ送信のノードで追加を押すと「クイック返信」が選択できます

追加の+ボタンを押すと以下の画像のような画面が表示されます

種類は「メッセージを送信する」のままテキストとタイトルを設定します

上の画像の+を押せばクイック返信を追加できます
全部で3つ設定します(今回はタイトルとテキストは一緒で設定してください)
- 製品問合せ
- 注文ステータス
- 技術サポート
3つ設定したら下記のような形になります

これで会話を開始したら上記の3つの選択肢が表示されます

6-3.各種システムトピックの作成
ここからは下の3つのカスタムトピックを作成します
- 製品問合せ
- 注文ステータス
- 技術サポート
説明は「製品問合せトピック」のみとさせて頂きます
6-3-1.トピックフレーズ設定
トピックタブからカスタムトピックを選択します
その後、下の画像のように「トピックの追加」を選択します

次に「最初から」を選択します

「最初から」を選択すると次のような画面になります

上の画像の黄色の箇所(無題)を製品問合せに変更します
ここからこのトピックを動かすためのトリガーフレーズを設定します

上記の黄色の箇所に以下の内容を設定します
- どんな製品がおすすめですか?
- なんの製品がありますか?
- 一番人気がある製品はなんですか?
- 一番優れた製品はなんですか?
- おすすめの製品はなんですか?
6-3-2.応答メッセージの設定
トリガーフレーズを設定したら、応答メッセージを設定します

上の画像の+ボタンを押して「メッセージを送信する」ノードを追加します

次に同じように「注文ステータストピック」「技術サポートトピック」を追加します
トリガーフレーズは以下を参考にしてください
注文スタータス・トリガーフレーズ
注文した製品はどうなっていますか?
注文は今、どのステータスですか?
注文を追跡ですますか?
注文した製品はいつ届きますか?
技術サポート
技術的なサポートが必要です
デバイスが動作しません
技術的な問題があります
技術サポートが必要です
何かが正常に動いていません
製品に問題が発生しています
技術的な支援が必要です
デバイスの電源が入りません
正常に動作していません
トラブルシューティングの手助けが必要です
技術的なトラブルです
製品に問題があります
デバイスが故障しています
購入した製品に技術的な問題があります
技術的な問題について助けてください
製品が動作していません
システムエラーです
技術サポートが必要です
技術的な問題が発生しています
機器の故障です
6-4.実際に動かしてみる
事前に右上の三点リーダーから「トピック間の追跡」をオンにしておきましょう

次に+で新しいテストセッションを開始しましょう!

上のGIF動画のように表示された選択肢から「製品問合せ」を選びます

製品問合せトピックで事前に設定された「応答メッセージ」が表示されます

「トピック間の追跡」がオンになっていれば上の画像のように、トピックの表示も変わっているはずです
まとめ
Copilot Studio の会話設計は、一見すると複雑に見えますが、 その中心にあるのは 「トピック」 という非常にシンプルな仕組みです。
- 会話の入口や終了など、エージェントの基本動作を担う システムトピック
- 業務ごとの処理を担当する カスタムトピック
- トピックを呼び出すための トリガーフレーズ
- ユーザーを迷わせないための クイック返信
- テスト時に内部処理を確認する 活動マップ
- トピック同士の流れを確認する トピック間追跡
これらの要素が組み合わさることで、 Copilot Studio のエージェントは「ユーザーの意図を理解し、適切な担当者(トピック)を呼び出す」 という自然な会話体験を実現しています。
今回の記事では、実際に 3つのカスタムトピック(製品問合せ・注文ステータス・技術サポート) を作成し、 クイック返信からトピックが発火する流れを確認しました。
トピック構造を理解すると、 エージェントの動作が「ブラックボックス」ではなく「設計できるもの」へと変わります。
次回以降は、より高度な会話制御の方法を解説していきます










コメントを残す