【Copilot Studio】トピック・ツール・エージェントフローで「動き」を作り込む:設計から動作確認まで
はじめに
こんにちは、けーまです。
前回までで、エージェントを作り、ナレッジに基づいて答えられるようにしました。
ただ、質問に答えるだけでは「アシスタント」止まりです。実際の業務では「決まった手順を実行する」「特定の聞き方をしたら決まった流れで案内する」「外部のデータを取ってきて加工する」といった、もう一歩踏み込んだ動きが欲しくなります。
Copilot Studio では、この「動き」を作り込むための部品が3つ用意されています。トピック・ツール・エージェントフロー です。名前が似ていて最初は混乱しがちですが、役割はきれいに分かれています。
そこで本記事では、この3つの部品を取り上げ、2026年6月時点の実機で、作りながら確認しました。題材は「KPIレポートの作成依頼を受け付けるエージェント」です。会社名と四半期を聞き取って受け付けるトピックを作り、受け付けた内容をもとにツール(プロンプト)やエージェントフローがレポートを生成する、という一連の流れを、画面のスクリーンショットを付けて追っていきます。Copilot Studio で会話の流れや処理を作り込みたい方の参考にしていただければと思います。
本記事は、Copilot Studio でエージェントを作るシリーズの第3回です。
シリーズ全体では「収集 → 集計 → グラフ → 示唆 → 資料化」を一気通貫で行うエージェントを目指しており、本記事はその土台となる「動かす部品」を扱います。
対象読者:Copilot Studio で、トピック・ツール・エージェントフローの違いと使い分けを理解し、実際に動かしてみたい方
シリーズ記事一覧
| 回 | テーマ | 記事 |
|---|---|---|
| 第1回 | 最初のエージェント | 初めてのエージェントを作ってみた |
| 第2回 | ナレッジ(収集) | ナレッジでファイルに基づく回答を試してみた |
| 第3回 | トピック・ツール・フロー(本記事) | (本記事) |
1. 今回やること
- トピック・ツール・エージェントフローの3部品の役割と使い分けを整理する
- トピックを1から作り、テストチャットで会話の流れが動くことを確認する
- ツール(AIプロンプト)の中身を画面で確認し、入力から出力までの流れを押さえる
- エージェントフローの構造を画面で確認し、決定論的な自動処理の位置づけを理解する
2. 3つの「動かす」部品の違い
まず、3つの部品が何のためにあるのかを整理します。これを押さえておくと、どの場面でどれを使うかで迷わなくなります。
| 部品 | 役割 | 向いている処理 | 動き方 |
|---|---|---|---|
| トピック | 会話の流れ(シナリオ)を組む | 「この聞き方をしたら、この順で質問・案内する」 | 会話ベース(質問→条件分岐→メッセージ) |
| ツール | エージェントに「できること」を1つ足す | AI推論(プロンプト)・コネクタ・MCP・REST API など | エージェントが必要に応じて呼び出す |
| エージェントフロー | 決まった手順を自動実行する | 「データ取得 → 加工 → ファイル生成」のような決定論的処理 | ステップを上から順に実行 |
ざっくり言うと、会話の道筋を作るのがトピック、単発の能力を足すのがツール、手順をきっちり自動化するのがエージェントフローです。
生成オーケストレーションが有効な場合、ユーザーは「どの部品を使うか」を指定する必要はありません。エージェントが説明文や名前をもとに、適切なトピック・ツール・ナレッジ・他のエージェントを自動で選んで実行します。なお、エージェントフローは独立した選択対象ではなく、ツールとして追加することでこの選択の対象になります。
この「エージェントが自分で部品を選ぶ」動きは、文章だけだと分かりにくいので、3章で実際の画面を見ながら確認します。
3. トピック:会話の流れを設計する
トピックは、ノードベースのエディターで会話の流れを組み立てる部品です。
トリガー(いつ起動するか)と、その後に続くノード(何をするか)で構成されます。
ここでは「レポート作成の依頼を受け付ける」トピックを1から作ります。やりたいことは、次の3つです。
- ユーザーが「レポートを作りたい」と頼んできたら、このトピックが起動する
- 「どの会社か」「どの四半期か」を聞き取って、変数に保存する
- 受け付けたことを、聞き取った内容を添えて伝える
3.1 トピックを作る
エージェントの 「トピック」 タブを開くと、トピックの一覧が表示されます。
「トピックの追加」 を押し、「最初から」 を選ぶと、空のトピックが作られます。

トピック一覧で「トピックの追加」→「最初から」を選ぶ。「Copilot で説明をもとに追加する」を選ぶと、説明文から自動でたたき台を作ることもできる
3.2 トリガーと説明文を決める
トピックエディターを開くと、一番上に トリガー があります。生成オーケストレーションのエージェントでは、トリガーは 「エージェントが選択するもの」 が既定です。これは「決まったキーワードが来たら起動」ではなく、トピックの説明文をもとに、エージェントが起動するかどうかを判断するという意味です。
そのため、説明文がとても重要です。ここに「このトピックがどんなときに使われるか」を書いておくと、エージェントがその説明を読んで起動を判断します。今回は次のように書きました。
ユーザーがKPIレポートの作成や送付を依頼したときに起動します。対象の会社と四半期を確認し、レポート作成を受け付けたことを伝えます。

トリガーは「エージェントが選択するもの」。説明文に「いつ起動するか」を書いておくと、エージェントがこの文章を読んで起動を判断する
3.3 質問ノードで回答を変数に保存する
トリガーの下に、ノードを足していきます。ノードを追加するには、ノードの下にある 「+」 を押します。すると、追加できるノードの種類が一覧で出てきます。

「+」を押すと追加できるノードの一覧が出る。今回は「質問する」を使う。ほかにメッセージの送信・条件分岐・変数管理などがある
ここで 「質問する」 を選ぶと、質問ノードが追加されます。質問ノードには、主に次の3つを設定します。
- 質問文: ユーザーに何を聞くか(例:「どの会社のレポートを作成しますか?」)
- 特定: 回答からどの情報を取り出すか。今回は 「ユーザーの応答全体」(入力された文章をそのまま使う)にした
- ユーザーの応答を名前を付けて保存: 取り出した値をどの変数に入れるか
この「変数に保存」が、トピックで一番のポイントです。質問の答えを変数にしまっておくと、後のノードでその値を使えます。今回は、会社名を CompanyName という変数に保存しました。

質問ノードの設定。「どの会社のレポートを作成しますか?」と聞き、回答全体を CompanyName(文字列)に保存している。これが「変数を設定した」状態
3.4 完成したトピックの全体像
同じ要領で、2つ目の質問ノードを足して、四半期を Quarter 変数に保存します。
完成したトピックは、次のような流れになりました。

完成したトピック。トリガー → 質問1(会社名を CompanyName に保存)→ 質問2(四半期を Quarter に保存)→ 確認メッセージ と、上から順に流れる
整理すると、このトピックは「起動したら、会社名と四半期を順に聞いて、それぞれ変数に保存する」という会話を組んだものです。トピックとは、このように「いつ起動して(トリガー)」「どんな順で問いかけ・案内するか(ノード)」「答えをどこに保存するか(変数)」を視覚的に組み立てる部品です。
3.5 動作確認:会話してみる
作ったトピックを、テストチャットで動かしてみます。
「レポート作成の依頼を受け付けてほしいです」と入力すると、このトピックが起動し、1つ目の質問が返ってきました。

「レポート作成の依頼を受け付けてほしいです」と頼むと、トピックが起動して「どの会社のレポートを作成しますか?」と聞いてくる
ここで注目したいのは、ユーザーが「このトピックを使って」と指定していないことです。頼んだ文章を、エージェントがトピックの説明文(3.2 で書いたもの)と照らし合わせて、「これはレポート依頼の受付だ」と判断して起動しました。これが生成オーケストレーション下でのトピックの動き方です。
続けて会社名(CloudNova)と四半期(2025年Q2)を順に答えると、トピックが受け付けを完了します。テストチャットでの実際のやり取りは、次のようになりました。
エージェント: こんにちは、KPIレポート作成アシスタント と申します。ご用件をお申し付けください。
あなた: レポート作成の依頼を受け付けてほしいです
エージェント: どの会社のレポートを作成しますか?(例:CloudNova / StreamForge / Datapeak)
あなた: CloudNova
エージェント: 対象の四半期を教えてください。(例:2026年Q1)
あなた: 2025年Q2
エージェント: CloudNova の 2025年Q2 のKPIレポートを作成します。少々お待ちください。
「レポート作成の依頼を受け付けてほしいです」という曖昧な頼み方でもトピックが起動し、会社名・四半期を1つずつ聞き取って受け付けが完了しています。このとき、左側の実行トレースで「どのトピックが選ばれ、何が起きたか」を確認できます。

左の実行トレースに「レポート依頼の受付」トピックが完了として表示されている。右側のチャットには、聞き取った会社名(CloudNova)と四半期(2025年Q2)を反映した受付メッセージが返ってきた
聞き取った会社名と四半期が、そのまま応答に反映されています。これは、質問ノードで保存した CompanyName と Quarter の変数を、確認メッセージの中で使っているためです。変数に保存しておくと、こうして後から値を取り出して使えます。
3.6 動作確認:トピックからツールへつながる
受け付けが終わると、エージェントは「ARR などの指標をグラフにする」「Word 形式のレポートを作る」といった、次にできることを提案してきました。そこで「このKPIレポートをWordファイルにして」と頼むと、エージェントはナレッジ(登録済みのKPIサマリー)を参照したうえで、レポートを作るツール(次章のプロンプト「KPIレポート差し込み(Word)」)を呼び出し、Word 形式のKPI比較レポートを生成しました。
生成されたレポートの概要は次のとおりです(エージェントの応答より。対象期間:2025年度 第2四半期)。
| KPI指標 | CloudNova | StreamForge | Datapeak |
|---|---|---|---|
| ARR(百万円) | 1,800 | 1,150 | 2,600 |
| NRR(%) | 118% | 104% | 126% |
| 営業利益率(%) | 12.5% | −3.0% | 18.4% |
エージェントは「Datapeak が ARR・NRR ともに首位で営業利益率も最高。CloudNova は NRR が高く顧客維持に強み。StreamForge は営業利益率がマイナスで、成長・収益性の両面で改善が必要」といったインサイトも添え、KPI比較レポート(Word 形式)の作成が完了したと案内しました(数値は架空の検証データです)。

「Wordファイルにして」と頼むと、エージェントはナレッジを参照したうえで「KPIレポート差し込み(Word)」ツールを呼び出した。左のトレースは 受付 → ナレッジ参照 → 差し込み(Word) の3ステップで、右にはツールが生成したKPI比較レポート(Word形式)の内容が表示された
ここまでで「トピックが会話で情報を受け取り、その後にツールが処理を引き継ぐ」という、部品どうしのつながりが見えました。次章からは、この「ツール」の中身を見ていきます。
4. ツール:AIプロンプトで処理を作る
ツールは、エージェントに「できること」を1つ追加する部品です。
「ツールを追加する」 を開くと、追加できる種類が一覧で表示されます。

ツールを追加する。新規作成にエージェントフロー/プロンプト/モデルコンテキストプロトコル(MCP)/コンピューター操作。下段は Office 365・Teams・SharePoint などのコネクタ
新規作成できる主な種類は次のとおりです。
| 種類 | 何か |
|---|---|
| エージェントフロー | 決まった手順を自動化するフロー(次章で扱う) |
| プロンプト | 自然言語AI推論。テキスト・ドキュメント・データを分析して変換する |
| モデル コンテキスト プロトコル(MCP) | エージェントが外部のデータ・ツールに接続するための共通プロトコル |
| コンピューター操作 | Web やデスクトップアプリをUI操作する(Copilot Credits 課金。標準モデルは5クレジット/ステップ、プレミアムモデルは15) |
このほか、Office 365 Outlook・Microsoft Teams・SharePoint などのコネクタや、REST API もツールとして追加できます。
このうち、もっとも手軽に「処理」を作れるのが プロンプト です。プロンプトツールは、入力を受け取り、指示(プロンプト)に沿ってAI推論を行い、結果を返す部品です。3章の最後でエージェントが呼び出した「KPIレポート差し込み(Word)」も、このプロンプトツールです。中身を見ていきます。
4.1 プロンプトビルダーで指示を書く
プロンプトを新規作成すると、プロンプトビルダーが開きます。
左側に 指示(プロンプト) を書き、右側で結果を確認しながら作ります。ここが「プロンプトを入れる場所」です。

プロンプトビルダー。左に指示(プロンプト)、中央上に使用するモデル、右に出力の形式と結果が表示される
指示には「何をするAIか」を書きます。今回のKPIレポート差し込みでは、「渡されたKPIの数値を、Wordテンプレートの所定の欄に差し込む」という内容を書いています。
4.2 モデルを選ぶ
指示の近くに、使用する モデル を選ぶ欄があります。プロンプトの処理に、どのAIモデルを使うかをここで決めます。

モデル選択。Basic・Standard・Premium のグレードに分かれており、既定は Basic の GPT-4.1 mini。下部には Claude や xAI のモデルも並ぶ
2026年6月時点で、私の環境では次のモデルが選べました。
| グレード | モデル(例) |
|---|---|
| Basic(既定) | GPT-4.1 mini |
| Standard | GPT-4.1、GPT-5 chat、Claude Sonnet 4.6 |
| Premium | GPT-5 reasoning、Claude Opus 4.6 |
特に変更しなければ、既定の GPT-4.1 mini(Basic)が使われます。まずはこの既定のまま作り、軽い要約や差し込みならそのままで十分です。難しい推論をさせたいときに、上位グレードのモデルに変更する、という考え方になります。
4.3 入力と出力を決める
プロンプトツールは、ざっくり 「入力 → AI推論 → 出力」 の3点セットでできています。ここでは、その入口(入力)と出口(出力)を決めます。
- 入力:このツールに外から渡すデータを定義する場所(ツールの詳細画面で設定)
- 出力:処理結果をどの形式で返すか(テキスト/JSON/ドキュメント。プロンプトビルダーで選択)
まず 入力 です。ツールの詳細画面に「入力」の欄があります。

ツールの詳細画面。「入力」は未設定(入力なし)。下にある「完了」は、ツールを使い終わったあとのエージェントの挙動(既定は「応答しない」)を決める欄で、出力フォーマットとは別物
今回は「入力なし」で問題ありません。 このツールは、差し込むKPIの数値を 指示(プロンプト)の中に直接書いて あるため、入力が要らないからです。会社名・四半期・KPIを呼び出しごとに変えたい場合は、ここに入力を追加し、エージェントから呼ぶときに値を渡す設計にできます(その動的な渡し方は後の「資料化」回で扱います)。
次に 出力 です。出力フォーマットは、4.1 で見たプロンプトビルダーの右上にある 「出力」 で選びます。既定はテキストで、構造化したいときは JSON、Word を作りたいときは ドキュメント(プレビュー機能) を選びます。

プロンプトビルダー右上の「出力」を開いたところ。テキスト・JSON・ドキュメントから選べる。今回は Word を作るため「ドキュメント」を選んでいる
ドキュメント出力では、空欄を用意した Word テンプレートを渡すと、AIモデルが各欄に合う値を埋めて Word を出力します。
整理すると、今回のツールは 「入力:なし(KPIは指示に内蔵)→ AI推論:選んだモデルが差し込む値を判断 → 出力:ドキュメント(Word)」 という処理を1つ作ったものです。3.6 でエージェントが返してきたWordレポートは、まさにこのツールが生成しました。
5. エージェントフロー:決定論的な自動処理
エージェントフローは、決まった手順を上から順に実行する部品です。
トピックが「会話」、プロンプトが「単発のAI推論」だったのに対し、エージェントフローは「データを取得して、加工して、ファイルを作って…」のような複数ステップの自動処理を、確実に実行するのに向いています。
5.1 フローデザイナーでステップを組む
エージェントフローは、専用のフローデザイナーで組み立てます。
トリガーから始まり、アクションを上から順に並べていきます。
今回のシリーズ用に作ったフローは、「Excelから数値を取得 → プロンプトで集計コメントを作る → Wordファイルを作成 → 共有リンクを発行」という手順を組んだものです。
なお、3.6 でエージェントが返した Word は、4章のプロンプトツール単体が生成したものです。この5章のフローは、それとは別に用意した、Excel集計やファイル配布まで含むより複雑な例です。

フローデザイナー。「エージェントがフローを呼び出したとき」をトリガーに、行の取得(Excel)→ プロンプトを実行する → ファイルの作成 → 共有リンクを作成する、と上から順に実行する
各ステップを見ると、フローの性格がよく分かります。
- 行の取得: Excel Online から数値を読み込む(コネクタ)
- プロンプトを実行する: 4章のようなプロンプト(AI推論)をフローの中で呼ぶ
- ファイルの作成 / 共有リンクを作成する: OneDrive にファイルを作り、共有リンクを発行する(コネクタ)
このように、フローはコネクタと AI推論を、決まった順番で組み合わせる部品です。AIに任せる部分(集計コメントの生成)と、機械的に確実にやる部分(Excel読み込み・ファイル作成)を、1つの手順の中で使い分けられます。
5.2 実行状況とコネクタを確認する
フローには、概要画面があります。ここでは、フローの実行履歴や、つないでいるコネクタ(接続)を確認できます。

フローの概要画面。下部の実行履歴で過去の実行が「成功」したことが分かる。右側には、このフローがつないでいる接続(Excel Online・Dataverse・OneDrive)が並ぶ
実行履歴を見ると、いつ実行されて成功したかが残っています。フローは決まった手順を実行する部品なので、「ちゃんと毎回同じ手順で動いたか」を、この履歴で後から確認できます。
フローは「ツール」としてエージェントに追加できます。つまり、エージェントが必要に応じてフローを呼び出し、決まった手順を実行させる、という使い方になります(2章で触れた「フローはツールとして選択対象になる」のはこのことです)。
5.3 トピック・プロンプトとの使い分け
なぜ「トピック」や「プロンプト」とは別に、フローが必要なのでしょうか。
それは、確実に同じ手順を踏みたい処理があるからです。AIによる生成は柔軟ですが、毎回まったく同じ結果になるとは限りません。一方、「Excelから数値を取得 → 集計 → Wordに差し込み → 共有リンクを発行」のような業務処理は、毎回きっちり同じ手順で動いてほしいものです。こうした決定論的な処理はフローに任せ、文章生成のような柔軟さが要る部分だけプロンプトに任せる、という役割分担が基本になります。
6. まとめ
エージェントに「動き」を作り込む3つの部品を、1つの題材を通して確認しました。
- トピック: 会話の流れ(トリガー+ノード)を設計する。実際に「レポート依頼の受付」トピックを1から作り、会社名・四半期を変数に保存し、頼んだ内容からエージェントがトピックを選んで起動する動きを確認した
- ツール(プロンプト): 入力 → AI推論 → 出力の処理を1つ作る。指示・モデル・入出力を画面で確認した。Wordへの差し込みなど、柔軟な生成処理に向く
- エージェントフロー: 決まった手順を確実に実行する。Excel集計やファイル配布のような決定論的処理に向く
3つの違いは「会話を作るのがトピック」「能力を足すのがツール」「手順を自動化するのがフロー」と覚えておくと、設計のときに迷いません。そして今回見たように、これらは単独で動くだけでなく、「トピックで受け付け → ツールやフローで処理」のように連携して1つの仕事をこなします。
参考
- Copilot Studio overview | Microsoft Learn
- Key concepts - Create and edit topics | Microsoft Learn
- Add tools to custom agents | Microsoft Learn
- Change the model version and settings | Microsoft Learn
- Agent flows overview | Microsoft Learn
- Automate web and desktop apps with computer use | Microsoft Learn
- Document output (preview) | Microsoft Learn







