AI

【Copilot Studio入門】AIエージェントとは?基本的な使い方を5ステップで解説! 

ミムチ

最近、Copilot Studioや、AIエージェント等の話をよく聞きますが、そもそもAIエージェントで何ができるのですかな…?

パワ実

AIエージェントを使うと、ユーザーがチャットボット等への入力をトリガーに、質問に自動回答したり、自動でメールを送ったり等、生成AIを使った業務フローの自動化ができます。

この記事では、Copilot Studioとは何かと、基本的な使い方を解説します。

Copilot Studioの概要や、AIエージェントの作成方法を知りたい方は、ぜひ最後まで読んでください。

この記事でわかること
  1. Copilot Studioで何ができるのか?
  2. Copilot Studioのエージェント活用例
  3. 具体的なエージェント作成ステップと、操作方法

YouTube動画で見たいかたは、こちらからどうぞ!

Copilot Studioとは?

Copilot Studioで何ができる?

Copilot Studioは、ローコードでAIチャットボットや、AIエージェントを作成できるMicrosoftのプラットフォームです。

以下のような編集画面(左)で、直感的な操作でアクションを追加しながら、会話のフローを作成していくことができます。

作成したエージェントは(上記右)、WebサイトやTeams等に埋め込むことで、ユーザーがチャット形式で問い合わせ等ができるようになります。

実際に私が作成した、ブログの問い合わせエージェントは以下になります。

上記の動画で作成したCopilot Studioエージェントの構成は、以下のようになっています。

Copilot Studioエージェントデモの構成
  1. ユーザーは、ブログの問い合わせページで、チャットボット(エージェント)に質問
  2. 生成AIが、Webサイトを参照して自動で回答
  3. 回答で解決しない場合、Power Automateが管理者へメール送信
  4. やり取りのログは、Dataverseのテーブルに自動で保存
パワ実

このように、Copilot Studioでは、自社のWebサイトを参照してAIが自動回答したり、Power Automateのフローや、データベースも組み合わせることで、総合的なソリューションを作成することができます。

具体的な活用例

Copilot Studioの活用例は、大きく【組織内】で使う場合と、【お客様向け】に使う場合の2つに分けられます。


【組織内】では、ITヘルプデスクや人事・総務FAQの自動化、社内ナレッジ共有などに使うことが想定されます。

この場合、例えば社内のSharePointサイト等をナレッジに登録することができます。

【お客様向け】では、Webサイト上のFAQチャットボットや、製品問い合わせの自動誘導などがよくあります。

ミムチ

自社のWebサイトをナレッジにして自動回答したり、自動でメールを送信したり等の仕組みが簡単に構築できますぞ!

必要なライセンス

Copilot Studioを使うのに必要なライセンスは、【容量ごとのライセンス】と【従量課金制】の2種類があります(2025年7月現在)。


容量ごとライセンスは月毎に25,000メッセージ単位の購入で、従量課金は使った分だけ支払うモデルです。

必要なライセンスは今後変わる可能性があるため、最新情報をMicrosoftの公式ページでご確認ください。

Copilot Studioを使う基本的な「5ステップ」

実際に、Copilot Studioでソリューションを作成する流れを「5ステップ」で説明します。

Copilot Studioを使う基本的な「5ステップ」
  1. エージェントやテーブルを入れるためのソリューションを作成する
  2. Dataverseや、SharePointのテーブルを作成する
  3. エージェントやPower Automateフローを作成する
  4. システム全体をテストし、設定内容の確認後に、公開する
  5. エージェントをWebサイトやTeamsへの埋め込む

ステップ2の「テーブルの作成」は必須ではないですが、お客様の問い合わせデータを収集したい場合等は、作成しておくのが良いでしょう。

パワ実

ステップ3の「エージェントとフローの作成」は、実装のメインになりますので、ここについてさらに詳しく「5ステップ」に分解して説明します。

エージェント作成の基本的な「5ステップ」

エージェントやフローを作成する流れを「5ステップ」で説明していきます。

エージェントやフローを作成する基本的な「5ステップ」
  1. どのような役割を持つエージェントを作るかを検討し、シナリオを練る
  2. 社内データやWebサイト等のナレッジソースを準備し、登録する
  3. トピックと言われる、会話に応じたフローを作成する
  4. エージェントの動きをテストし、問題なければ公開をする
  5. 埋め込み用のHTMLコードやTeams接続設定を取得し、Webサイト/Teams等実際の画面に設置する

ユーザーの質問に対して、生成AIが自動回答する際は、ステップ2で登録したナレッジを参照して回答してくれます。

トピック(会話に応じたフロー)は、質問パターンに応じた分岐や、アダプティブカードのフォーム、生成AI回答、Power Automateフローの呼び出しなどを組み込むことができます。

パワ実

上記のような5ステップの手順で、エージェントの実装を進めていきます。

Webサイトの問い合わせエージェントを作る!

それでは実際に、Copilot Studioでエージェントを作成してみましょう!

今回は上述のような、以下の要件を満たすWebサイトに埋め込む「問い合せ対応エージェント」を作っていきます。

今回作りたいエージェントの要件
  1. ユーザーからの質問に対し、ブログ記事や公式ページを参考にして、生成AIで自動回答する
  2. 生成AIの回答で解決しなかったら、問合せメールを送信する
  3. 問合せ内容は、Dataverseのテーブルに保存する
ミムチ

さっそく、「5ステップ」にそって進めていきますぞ!

ステップ1:ソリューションの作成

まずは、ソリューションを作成します。

1.Copilot Studioの画面を開き、左上の三点リーダーから「ソリューション」を選択します。

Copilot Studioのホーム画面

2.「新しいソリューション」を選択して、ソリューションを作成します。

表示名(日本語)、名前(英語)を任意の名称を入力し、公開元を選択して、作成します。

すると新しく、アンマネージドソリューションが作成されます。

ソリューションは、エージェントやテーブル、Power Appsアプリや、Power Automateクラウドフロー等を1つのパッケージとしてまとめておけます。

ミムチ

実際の開発では、「環境変数」や「接続参照」等もソリューションに格納し、開発環境からマネージドソリューションとしてエクスポート後に、本番環境にインポートする手順をとるのですが、詳細はまた別の機会に解説します。

これで、ソリューションの作成ができました。

ステップ2:テーブルの作成

次に、Dataverseのテーブルを作成します。

今回は、Dataverseのテーブルを作成しますが、SharePointリストでもOKです。

1.ステップ1で作成したソリューションに、Dataverseのテーブルを作成します。

ソリューション内で、「新規」>「テーブル」>「テーブル」を選択します。

SharePointリストを使う場合は、ソリューション内では作成できないので、個別にSharePointリストを作成し、ソリューションには環境変数としてSharePointリストの情報をいれておきます。

2.「空白から開始」をします。

3.新しいテーブルが作成されるので、テーブル名を変更し、新しい列を編集します。

4.以下のように、列に任意の「表示名(日本語)」、「スキーマ名(英語)」をつけて「更新」をします。

SharePointリストと異なり、列名は「表示名(日本語)」と、「内部名(英語)」を別々に設定できるため、「表示名」は日本語で設定し、高度なオプションで、「スキーマ名」を英語で設定します。

ちなみに、ここで最初に表示されている列は、プライマリ列と呼ばれる代表的な列です。

プライマリ列は、主キーである必要はないため、データが重複しても問題ありません。

5.一旦「保存して終了」します。

すると、ソリューションのテーブルタブに、作成したDataverseのテーブルが表示されます。

6.テーブルの「三点リーダー」>「編集」をクリックすると、再度編集できます。

7.「新しい列」から、必要な列を追加していきます。

今回はシンプルに、以下の列を用意しました。

  • カテゴリ列:一行テキスト
  • ユーザー質問列:複数行テキスト
  • AI回答:複数行テキスト
  • 解決フラグ:はい/いいえ

8.「その他のNN件」で、既存の列を表示できるので、「作成日列」も表示します。

ミムチ

これで、テーブルの作成も完了ですな!

Dataverseの使い方については、また別の記事で解説したいと思います。

ステップ3:エージェントとフローの作成

続いていよいよ、エージェントやフローの作成をしていきます。

今回は問合せ対応をするための1つのトピック(会話フロー)を作成し、メール送信部分はPower Automateフローを作成します。

エージェントの作成

1.ソリューションをひらき、新規からエージェントを作成します。

2.Copilotで作成することもできますが、今回は最初から自分で設定していきたいので、「構成に進む」を選択します。

3.ここで、エージェントの基本情報の設定をします。

まず任意の「エージェント名」、「説明」、「指示」を入力します。

「指示」は、Copilot Studioのエージェントが、ユーザーからの入力に対してどのようにふるまうべきかを記載しておきます。

「指示」は例えば、社内リソースだけを使う等の制約、どのようなフォーマットで回答するかの応答形式、解決しなかった場合どのようにするかのガイダンス等を記載しておくとよいかと思います。

今回は試しに、以下のように入力しておきます。

制約: 日本語で回答し、専門用語には簡潔な補足説明を加えてください。 
回答は1000字以内で要点をまとめ、必要に応じて箇条書きを使用します。 
応答形式: 要約:質問意図を1文で言い換え 回答:本文(1000字以内)
次ステップ:解決しない場合の案内(「解決しない場合は ‘いいえ’ を選択してください。」) 
ガイダンス:Power Platformに関する質問に対して、丁寧に、初心者にわかりやすく、簡潔に回答してください。

ナレッジソースの追加

1.次に「ナレッジの追加」をします。

ナレッジには、ユーザーからの問い合わせに対して、生成AIが回答する際に、参照とするWebサイトや、社内SharePointサイト等を登録できます。

パワ実

今回は、公開Webサイトで、Microsoft Learnと、パワ実のブログを登録しておきましょう。

2.WebサイトのURLを追加する場合は、「公開Webサイト」を選択します。

3.追加したいURLを入力し、「追加」をクリックします。

4.「名前」を入力し、「エージェントに追加する」を選択します。

5.自社のWebサイトの場合、「所有者」のチェックをします。

このチェックを入れたWebサイトは、「所有者」と判断され、Copilot StudioがWebサイトから追加情報にアクセスして、より適切な回答を返すことができると書かれています。

パワ実

使ってみた感じですと、より参照ページとして使われやすくなったように思います。

6.「作成」をクリックすると、エージェントが作成されます。

7.先ほど登録したナレッジに戻り、Microsoft Learnは、三点リーダーから、「公式ソース」を「はい」にします。

また、Web検索を許可したい場合は、「有効」にします。

さて、実は既にサンプルのエージェントが作成されています。

8.右側のテストペインで、エージェントをテストすることができます。

試しに何か質問してみると、登録したナレッジを参考に、回答してくれました。

ミムチ

このエージェントでは既に、「こんにちは、私は仮想アシスタントです。」というメッセージが表示されていますな…

これはどこで設定されているのですかな?

トピックの実装

1.ユーザーと会話するためのフローは「トピック」のタブで設定します。

「トピック」が、エージェントのメインの構成要素になります。

初めから「カスタム」と「システム」に、基本的なトピックが作成されています。

トピックを追加したい場合は、トピックの追加をします。

トピックは、「トリガー」とその後の「会話ノード」で構成され、トリガーは別のエージェントから呼び出す等もできます。

会話ノードは、「+アイコン」から追加でき、メッセージを送信したり、アダプティブカードで質問したり、生成AIで回答したり、Power Automateクラウドフローを呼び出したりできます。

今回は、新しいトピックは使わず、既存のトピックの1つを編集していきます。

2.「システム」に登録されている「会話の開始」を選択しましょう。

このトリガーは会話開始時となっており、会話が開始されると、このトピックが実行されます。

トリガーの下の会話ノードでは、メッセージで「こんにちは、私は仮想アシスタントです。」と投稿するようになっています。

3.今回この「会話の開始」トピックを修正し、Webサイトの問い合わせ用に改修していきます。

メッセージのノードは、三点リーダーから、削除します。

質問の追加

例えば、最初は問合せのカテゴリを選択してもらい、カテゴリごとにその後の会話フローを分けたい場合、「質問する」というノードが便利です。

1.「+ノードの追加」>「質問する」を選択します。

2.以下のように、質問を入力し、選んでもらいたい選択肢を「ユーザーのオプション」に追加します。

3.ここで選択された値が、変数(Var1:choice)に格納されます。

変数名は、好きに変更できるので「Var1」→「category」にしておきます。

3.試しに保存して、テストしてみましょう。

最初からテストしたい場合は、テストペインの「更新」アイコンを選択します。

4.すると以下のように、最初のメッセージが変更され、選択肢が表示されるようになりました。

ここで選択したカテゴリに応じて、後続のフローを分岐することができます。

アダプティブカードの追加

1.例えば、「技術的な質問」を選択したときは、技術的な質問用のフォームを出したい場合「アダプティブカード」が便利です。

「+ノードの追加」>「アダプティブカードで質問する」を選択します。

2.「三点リーダー」>「プロパティ」を選択します。

3.「アダプティブカードを編集する」を選択し、JSONを書き換えます。

例えば、以下のようなコードに書き換えます。

{
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "技術的な質問フォーム",
            "weight": "Bolder",
            "size": "Medium"
        },
        {
            "type": "Input.ChoiceSet",
            "id": "serviceArea",
            "label": "サービスを選択",
            "isRequired": true,
            "errorMessage": "サービスを選択してください",
            "choices": [
                {
                    "title": "Power BI",
                    "value": "Power BI"
                },
                {
                    "title": "Power Apps",
                    "value": "Power Apps"
                },
                {
                    "title": "Power Automate クラウドフロー",
                    "value": "Power Automate Cloud"
                },
                {
                    "title": "Power Automate デスクトップフロー",
                    "value": "Power Automate Desktop"
                },
                {
                    "title": "Copilot Studio",
                    "value": "Copilot Studio"
                },
                {
                    "title": "その他・Power Platform 全般",
                    "value": "その他"
                }
            ]
        },
        {
            "type": "Input.ChoiceSet",
            "id": "questionCategory",
            "label": "質問カテゴリ",
            "style": "expanded",
            "isRequired": true,
            "errorMessage": "カテゴリを選択してください",
            "choices": [
                {
                    "title": "実装の方法",
                    "value": "実装"
                },
                {
                    "title": "エラーの対処",
                    "value": "エラー対処"
                },
                {
                    "title": "業務改善の実現方法",
                    "value": "業務改善"
                },
                {
                    "title": "その他",
                    "value": "その他"
                }
            ]
        },
        {
            "type": "Input.Text",
            "id": "details",
            "label": "具体的な内容   ※枠は広げられます",
            "placeholder": "状況や再現手順、エラーメッセージなど詳しくご記入ください",
            "isMultiline": true,
            "isRequired": true,
            "errorMessage": "詳細を入力してください"
        }
    ],
    "actions": [
        {
            "type": "Action.Submit",
            "title": "質問を送信",
            "data": {
                "action": "submitTechQuestion"
            }
        }
    ]
}

4.「Save」して「Close」をクリックします。

5.すると、以下のようなアダプティブカードが作成されます。

このフォームで選択、入力した内容も、「出力」で設定された変数に自動で格納されるので、後のノードで使うことができます。

「出力」に設定されている変数名も、自由に変更することができます。

アダプティブカードについて詳しく知りたい方は、以下の記事を参考にしてください。

【Power Automate入門】Teamsのアダプティブカードで独自のフォームを使う方法  ミムチ Power Automateで、Teams上で申請を出したり、承認をしたりする独自のフォームを作成したいですぞ… パワ...

生成AIによる回答を追加

次に、アダプティブカードで入力してもらった内容を元に、生成AIによる自動回答を追加します。

1.「+ノードの追加」>「詳細」>「生成型の回答」をせ.「+ノードの追加」>「詳細」>「生成型の回答」を選択します。

2.「入力」に生成AIへの質問(プロンプト)を設定します。

Power Automateのように、入力欄に簡単に動的なコンテンツを追加できないため、変数を使いたい場合、計算式で、Concatenate関数等を使います。

例えば、以下のように入力してみます。

Concatenate(
 "以下のPower Platformに関する質問について、初心者にわかりやすく、丁寧に回答してください。【サービス】",
 Topic.serviceArea,
"【カテゴリ】",
 Topic.questionCategory,
 "【内容】",
 Topic.details
)

アダプティブカードで、ユーザーの入力した値を動的にプロンプトに入れたい場合、変数は「Topic.details」等の式で取得することができます。

3.生成AIの回答結果を変数に入れたい場合、「三点リーダー」>「プロパティ」で設定します。

4.「詳細」の「ボットの応答を名前を付けて保存」で、「変数を選択する」>「新しい変数を作成する」を選択します。

5.変数名は自由に変えられます。

Dataverseにデータを登録する

次に、ユーザーが入力した内容をDataverseに登録したいと思います。

1.「+ノードを追加」>「ツールを追加する」で、「コネクタ」にPower Automateのアクションのようなものが表示されるので、「Dataverse」で検索します。

「選択した環境に新しい行を追加する」を選択します。

2.接続を確認して「送信する」を選択します。

3.アクションのプロパティで「入力」を設定すればOKです。

入力では、環境やテーブルを選択し、詳細パラメーターで各列に登録するデータを設定します。

ミムチ

例えばカテゴリ列に、最初の質問で選択した値を入れたい場合、三点リーダーから計算式で、Text(Topic.category)と設定しますぞ。

パワ実

基本的にこのコネクタで選択できるアクションであれば、これを使うのが簡単ですが、少し凝ったフローや、複雑な入力を設定したい場合は不便なので、Power Automateフローを作成します。

エージェントからフローを呼び出す

エージェントから、Power Automateフローを呼び出してみます。

1.一旦エージェントを保存した後、「+ノードの追加」>「ツールを追加する」>「新しいエージェントフロー」を選択します。

するとエージェントフローの編集画面が開き、通常のPower Automateの編集画面と同様の操作で、フローを実装していくことができます。

エージェントから入力値を受け取ったり、エージェントに返り値を渡したりもできます。

このあたりは、Power AppsからPower Automateを実行するやり方と似ているため、以下の記事もご参考ください。

【Power Apps×Power Automate連携】アプリからフローを実行し、アプリにデータを返す方法 この記事では、Power AppsとPower Automateを連携し、 アプリからフローを実行したり、実行したフローからアプリに返り値のデータを渡す基本的な実装方法を解説します。 今回のような手動でのフロー実行の際に注意する必要があるPower Automateの実行専用ユーザーについても簡単に説明します。...
パワ実

例えば、エージェントから、問い合わせ者のメールアドレスや、件名や本文の情報を受け取り、メールを送信するフロー等を作成できます。

2.フローの編集が終わったら、「下書きを保存する」>「公開」をします。

3.なお、フローは名前をつけないと公開できないため、一旦フローの「概要」>「編集」から、名前を変更して保存し、再度「デザイナー」で、「公開」します。

4.再度、エージェントのトピック編集画面に戻り、フローを呼び出したい場所で、「+ノードの追加」>「ツールを追加する」で、作成したフロー名を選択します。

フローを追加したとき、「ユーザー接続ではAzureAD認証を必ず使用してください。というエラーが表示されることがあります。

エージェントから呼び出すフローは、デフォルトで、アクションが「実行専用ユーザーになっていることが多いです。

Webサイト等に埋め込むエージェントで、「認証:認証無し」に設定している場合、Power Automate画面から対象のフローを開き、必要なアクションが「実行専用ユーザー」になっていないか確認します。

「実行のみのユーザー」>「編集」で、実行専用ユーザーではなく、自分のアカウントの接続が使われていることを確認しましょう。

「実行専用ユーザー」に設定しないアクションは、以下のように、指定した接続に切り替えます。

5.最終的にこのようなエージェントを作成しました。

作成したエージェントの概要
  1. 最初にユーザーの問い合わせの種類を選択してもらい、この時点で一旦Dataverseにデータを登録する
  2. その後、選択したカテゴリごとに異なるフォームに入力してもらう
  3. 技術的な質問の場合、一旦生成AIに回答してもらい、問題が解決しなかった場合は、メールの問い合わせフォームを入力し、送信してもらう
  4. 最後に、メールの問い合わせを送信するPower Automateフローを呼び出し、会話は終了する
ミムチ

ようやく、エージェントとフローが完成しましたぞ!

今回はそれぞれ、1つのトピックと、1つのフローしか作成しませんでしたが、複数のトピックやフローを組み合わせて、トピックから別のトピックを呼び出したりすることもできるので、色々ためしてみてください!

ステップ4:テスト・公開

続いて、エージェントのテストをして、設定の確認と、公開をしていきます。

1.エージェントを「保存」し、「設定」を確認します。

エージェント設定を開くと、様々な設定が確認でき、生成AIの設定や、エージェントの詳細もここで確認できます。

重要な設定の1つとして、セキュリティがあります。

2.「セキュリティ」>「認証」を開きます。

3.もしこのエージェントをWebサイトに公開し、認証無しで使えるようにしたい場合、認証の設定を、「認証無し」にします。

4.設定の変更をした後は、エージェントを再度「公開」する必要があります。

公開後に、テストペインで、動作確認をしてみます。

Dataverseのテーブルにも、データが登録されていることを確認しましょう。

5.テストで問題がなければ、これでエージェントを「公開」します。

パワ実

公開すると、このエージェントがTeamsやWebサイト等で使えるようになります!

ステップ5:Webサイト/Teams埋め込み

最後に、エージェントのHTMLソースを取得し、Webサイトに埋め込んでみます。

1.エージェントをTeamsやSharePoint、Webサイト等に埋め込みたい場合、エージェントの「チャネル」タブを開きます。

2.今回はWebサイトに埋め込むため、「Webアプリ」を選択します。

3.埋め込みコードにあるhtmlをコピーします。

4.あとは、埋め込みたいWebサイトに、このhtmlを埋め込むだけです。

例えば、Wordpressでは、カスタムHTMLで以下のようにコードを貼り付けます。

そのまま貼り付けると、エージェントの高さが狭い場合があるため、height: 600px; 等、一部htmlコードを変更するとよいかもしれません。

5.実際に埋め込んだエージェントがこちらになります。

パワ実

実際は、開発環境と本番環境に分けてソリューションを管理することが多いと思いますが、今回は簡易的に使い方を紹介しました。

このような感じで、Copilot Studio でエージェントを作成することができました!

さいごに

この記事では、Copilot Studioとは何かの概要と、基本的な使い方を簡単に解説しました。

Copilot Studioを使うと、ローコードで社員やWebサイトのユーザーの対応ができるAIエージェントが作成できます。

生成AIによる自動回答では、ナレッジに自社のWebサイトや、SharePointサイトを登録することで、これらを参照して回答を作成してくれます。

パワ実

社員の問い合わせ対応や、Webサイトからの問い合わせをチャットボットで自動化したい場合、ぜひ使ってみてください!

ABOUT ME
パワ実(Microsoft MVP)
2021年からPower Platform(Power BI、Power Apps、Power Automate)を勉強中。 2023年にIT系・コンサルタントに転職し、仕事でPower Platformを活用したコンサルを行っています。 2025年~Microsoft MVP for Business Applications 受賞 Power Platformを使っていく中で、知りえた情報をブログ、Youtube、Xで発信しています。 Power Platformに関するご相談は以下のページからお願いします! https://www.powerplatformknowledge.com/contact/

Power Platformのご依頼・ご相談について

Power Platformについてのご相談、お仕事のご依頼については、
こちらのお問い合わせページをご確認ください。