Copilot Studio の心臓部:エンティティと変数の正体を完全解説する 初級No3

自然言語を“業務データ”に変換する仕組みを理解すれば、Copilot Studio の見え方が変わる】

1. エンティティの正体:自然言語と業務データをつなぐ“翻訳レイヤー”

Copilot Studio を理解するうえで、 最初に押さえるべき概念が エンティティ です。

多くの解説では「同義語辞書」「選択肢」と説明されますが、 それは表面的な理解にすぎません。

本質はこうです。

エンティティは、自然言語を“業務で使える正規値”に変換する仕組みである。

ユーザーが入力する言葉は曖昧で、表記ゆれも多く、 業務ロジックにそのまま使うことはできません。

例:

  • 「ロス」
  • 「LA」
  • 「Los Angeles」
  • 「ロサンゼルス」

これらはすべて 同じ都市 を指しますが、 業務ロジックでは 1つの値に統一されている必要があります

ここでエンティティが働きます。

  • 類似語を吸収し
  • 正規値に変換し
  • 必要なら数値化し
  • トピック遷移の判断材料にもなる

つまり、エンティティは 自然言語 → 業務データ の変換レイヤーです。

従来のシステム開発であればExcel のマスタ管理、Access のテーブル設計、 データ正規化などに相当します

2. 変数の本質:エンティティが抽出した“業務値”を保持する箱

エンティティが抽出した値は、 そのままでは会話の中で保持されません。

そこで登場するのが 変数 です。

変数は次の役割を持ちます。

  • 抽出した値を保持する
  • トピック間で共有する
  • 条件分岐や計算に使う
  • Power Automate や外部APIに渡す

つまり、変数は 業務ロジックのデータ保持レイヤー です。

例: ユーザー「予算は10万くらい」 ↓ エンティティ:10万 → 100000 に正規化 ↓ 変数:設定予算金額 = 100000

このように、 エンティティが“意味を抽出”し、 変数が“値を保持”する。

この2つが揃って初めて、 Copilot Studio は 業務AIとして成立 します。

3. Copilot Studio の肝は「エンティティ × 変数 × オーケストレーション」

Copilot Studio の本質は、 チャットボットではありません。

自然言語を業務データに変換し、 業務ロジックを動かすための AI プラットフォームである。

その中心にあるのが:

  • エンティティ(意味の抽出)
  • 変数(値の保持)
  • オーケストレーション(トピック遷移)

この3つの連携です。

特にエンティティは、 日本ではまだ「辞書」程度の理解しかされていませんが、 実際には 業務マスタそのもの として機能します。

4. エンティティの3つの使用パターン(要約)

記事の後半につなげるために、 ここで3つの使用パターンを簡潔にまとめておきます。

① 業務マスタとして機能させる② 類似語・表記ゆれを吸収する③ 業務に必要な値を取得する

この3つを理解すると、 Copilot Studio のエンティティが“ただの辞書”ではなく、 業務AIの心臓部であることがわかります。

それでは実際の事例で上記の3つのパターンを見てみましょう

5.実際の事例

5-1.準備(エージェントの新規作成)

今回は旅行代理店のエージェントを作成します

前回はプロンプトでエージェントを作成しました

今回は一から作成しましょう

上の画像のように「エージェント」をクリックしましょう

そして「空のエージェントを作成する」をクリックしましょう

「旅行エージェント」など名前をつけて作成をクリックします

うまく進まなかったら下の画像のように「エージェント設定(オプション)」を下に展開してスキーマ名を半角英数字で設定してください

これでエージェントが新しく設定されました

5-2.シナリオ(業務に必要なもの)

旅行エージェントですから、ユーザーの旅行に関する希望を聞きます

業務に必要なデータは下の3つという想定です(あくまで今回の事例のための想定です)

・国内旅行を希望か、海外旅行を希望か?(今回は海外旅行を選択するという想定です)

・どこの都市を観光したいか?

・予算はいくらか?

上記の3つの業務に必要なデータを取得するために、エンティティと変数をセットで設定します

①と②の説明が若干被っていますが、その点は何卒ご容赦ください

5-3.①業務マスタを設定 ⇒ユーザー選択

システム変数の確認

変数について説明しやすくするために、予め設定されているシステム変数を解説します

まずシステムトピックの「会話の開始トピック」を開いてみてください

次に、トピック内で設定されている「メッセージの送信」の中身を開いてみましょう

「Bot.Name」を表示しています

一方でテスト画面を見てみます

上記の画像では、Bot.Nameのところで「旅行エージェント」の文字列が表示されています

これがシステム変数です

「Bot.Name」と見えているものには「旅行エージェント」という先ほど設定したエージェント名が設定されています

試しに下の画像の黄色の箇所をクリックしてみてください

そうすると「変数を選択する」という画面が開きます

こちらのカスタムの右横「システム」をクリックしてみてください

予め様々な内容が準備されているのが分かります

国内外エンティティの手動設定1~エンティティ設定画面を開く

ユーザーが、国内旅行か海外旅行を選択できるようにエンティティ(マスタ)を設定します

エンティティの設定は下の画像のように右上の「設定」から行います

次に下の画像の画面が開きます

この画像の「エンティティ」をクリックします

次に下の画像の「エンティティを追加する」をクリックします

さらに開いた画面で、下の画像の「閉じているリスト」をクリックします

実際には次の画面でエンティティを設定します

国内外エンティティの手動設定2~エンティティを設定

エンティティの設定内容は以下の通りとなります

  • 名前:国内外
  • 説明:旅行種類
  • リスト項目:
  • -国内旅行
  • -海外旅行

上の画像のように名前と説明を入力したら、リスト項目を黄色の箇所に入力していきます

リスト項目は右の追加ボタンを押しながら設定していきます

国内外エンティティの手動設定3~調整

シノニム(類義語)も登録してきます

例えば、国内ツアーや国内観光とユーザーが入力しても「国内旅行」と翻訳されるようにします

まず下の画像の+ボタンを押します

そうすると、左のような編集画面が開きます

そして、シノニムの追加の下のテキストボックスに「類義語」を入力し、更に右の+ボタンを押して登録していきます

後、重要なのは下の画像のように「スマートマッチング」をオンにすることです

そうすれば「国外 旅行」みたいな一見一致しないものも拾ってくれます

エンティティをトピックに設定する

まずシステムトピックの「会話の開始」トピックを開き、下の画像のようにメッセージの送信カードを削除します

代わりに下の画像のように質問カードを設定します

質問は「国内旅行と海外旅行、どちらを希望しますか?」と設定ます

ここからが重要です

下の画像の黄色の箇所(矢印)にご注目ください

こちらをクリックすると、上で設定した「国内外」エンティティを選択できます

次にエンティティとセットの変数を設定します

上の画像の質問カードの一番下、黄色の箇所にカーソルを置くと変数を新規作成できます

うまく新規作成画面が開かなかったら「ユーザーの応答を名前を付けて保存」をもう一度クリックすると右上のテキストボックスで「変数名」を設定できます

こちらで後で扱いやすい名前を付けます

変数を設定したら、トピックを保存して一度テストしましょう

実際に動かしてみる

+ボタンを押して新しいセッションを開始します

そうすると、質問カードで設定したことを聞かれます

ここで「海外への旅」という類義語を入力してみましょう

ここまでしかトピックを設定していないので何も起こっていないように見えます

下の画像の「変数」をクリックしてみてください

さらに下の画像にてテスト ⇒トピックとクリックしてください

下の画像を見ると変数「設定国内外」に、海外旅行が設定されているのが分かります

これがエンティティの仕事です

上記はユーザーに直接回答させる方法ですが、事前に案内したように選択肢を提示することができます

上の画像のように「ユーザーのオプションの選択」をクリックすると、選択肢を設定できます

もう一度、新たなテストセッションを開くと下の図のようになります

5-4.類似語・表記ゆれを吸収する

一括でエンティティを設定する

ここからは業務に必要な「ユーザーが観光を希望する海外都市」をエンティティに設定します

ユーザーの回答には様々な「揺れ」が生じることが予測されます

この様々な揺れを一括で登録します

ロサンゼルス|LA
ロサンゼルス|ロス
ロサンゼルス|ロスアンジェルス
ニューヨーク|NY
パリ|Paris
ロンドン|London
ソウル|Seoul
台北|Taipei

上記はあくまで一例ですが、文法としては右から|を挟んで左に翻訳するように表現します

図(Mermaidコードで作成)にすると次のような形です

こちらは実際にはテキストファイル(メモ帳)をアップロードして一括で設定します

登録画面は国内外と一緒です

上の画像からファイルをアップロードします

実際のアップロード画面では「追加」と「置換」を選択できます

今回は既存ものがないので追加を選択し、ファイルパスを選択して追加します

ちなみに.txtファイルのみ対応していますのでこの点はご注意ください

上の画像がファイルを追加した後のエンティティ登録画面です

保存ボタンを押したら、エージェントの「会話の開始トピック」に戻りましょう

質問カードの追加

会話の開始トピックに戻ったら+ボタンから質問カードを追加しましょう

ここで上の画像の黄色の箇所から質問文に「国内外の設定内容」の確認文をいれましょう

選択した変数は下の画像のように{~に変化しますが、問題はありません

この変数には「海外旅行」と入りますので「をご希望ですね!」と続けて文章らしくしましょう

この後、①と同じようにエンティティと変数を設定しましょう

さらに「メッセージを送信します」カードを追加して、ユーザーからの回答があった都市を表示しましょう!

実際に動かしてみる

+ボタンを押して新たにテストセッションを開始します

上のGIF動画のように「海外旅行」を選択すると「海外旅行をご希望ですね!」表示されます

そして「観光を希望する都市はどちらですか?」と質問されます

そうすると、エンティティの設定に従って翻訳された内容が表示されます

5-5.③ 業務に必要な値を取得する

他トピックを作成する

この「業務に必要な値を取得する」がエンティティの一番の醍醐味かもしれません

皆が入力するエクセルで問題となるのは、数字を入力してほしいところで「〇〇万円」などと入力されて数字が集計できなくなることがあります

エンティティを使えばそんなトラブルは回避できます

さて、

③にて業務に必要な値は「ユーザーの予算」です

①②と違って、選択するわけでもなく、類義語も必要ありません

後、既存のエンティティを使用するので①②で使用したようなエンティティの登録画面も使用しません

上の画像のように既存の「金額」というエンティティを使用します

さらに今回はオーケストレーションの動きが分かりやすいように別トピックを作成します

会話の開始トピックとは別にカスタムトピックにて「予算」というトピックを作成します

質問カードの作り方などは①②と同じです

1点違いがあります

上の画像のように使用状況を「グローバル」にして「セッション間の移動を許可する」にもチェックを入れます

この変数は会話の開始で使用します

ですので、予算トピックで値を設定したとしても、会話の開始トピックでも使用できるように「セッション間の移動」が行えるようにします

各種トピックとオーケストレーションの役割、データの流れは以下の図を参考にしてください

*なお、当ブログではコードで作図するMermaidコードを推奨しています

オーケストレーションがエンティティが適切に役割を果たせるように、トピック間を遷移させます

予算が設定済みかどうかで、挙動が変わる点も注意が必要です

会話の開始トピックの作成

「メッセージを送信」カードを追加して、国内外と同じように確認メッセージを設定します

さらに、上の画像のように予算についても変数を挿入した上で確認メッセージをいれます

今回は質問カードでないのがポイントです

予算金額をユーザーに質問するのは、他トピックですでに行っています

もしも変数が設定されていなければ、オーケストレーションが起動して他トピックで質問する形になります

それでは実際に動かしてみます

実際に動かしてみる

実際に動かす際には、下の画像のように「トピック間の追跡」をオンにしておくとトピック間の遷移がわかりやすくなります

それでは途中まで動かしてみます

上のGIF動画では、ロスと入力したので「ロスアンゼルス」と回答があるところですが「予算はいくらですか?」と聞かれています

画面中央を見るとトピックも遷移しています

それでは予算を聞かれたので「10万円」と文字形式で答えてみましょう

上のGIF動画では10万円が100000に翻訳されて回答されています

実際に変数の詳細も確認してみましょう

こちらも確かに100000が設定されています

このようにエンティティを設定することで、業務に必要な値を取得できるようにCopilot Studioが動的に動いてくれます

5-6.実際の事例

この章では実際にエンティティを設定する方法、変数を設定する方法、並びに実際に動かした時の動きも確認しました

実際に動かしたのは次の内容です

① 業務マスタとして機能させる② 類似語・表記ゆれを吸収する③ 業務に必要な値を取得する

①から③までの内容を実現させるために、設定画面でエンティティを設定する方法(手動、ファイルアップロード)と既存のエンティティを使用する方法を紹介しました

6.全体まとめ ― エンティティは「AIアプリの中核」

この記事では、Copilot Studio におけるエンティティの本質を解説してきました。 最後に、全体のポイントを整理します。

① エンティティは「自然言語 → 業務データ」変換の中核

Copilot Studio の真価は、 ユーザーの曖昧な自然言語を 業務で使えるデータに正規化する ことです。

  • 「ロス」 → ロサンゼルス
  • 「10万くらい」 → 100000
  • 「5月20日あたり」 → 2026-05-20

この変換を担うのがエンティティです。

②本流アーキテクチャは「自然言語 → エンティティ → 変数 → トピック遷移」

Copilot Studio の本来の姿はこれです。

  1. 質問カードで自然言語を聞く
  2. エンティティが抽出
  3. 変数に保存
  4. オーケストレーションが次のトピックを判断
  5. 会話が止まらず進む

この流れを守ることで、 Copilot Studio は“本物のAIアプリ”として動き始めます。

③ エンティティ設計がアプリの品質を決める

  • シノニムの設計
  • 抽出型かリスト型か
  • 保存先変数の設計
  • トピック遷移の設計

これらが正しく設計されて初めて、 ユーザーが自然に話すだけで業務が進むアプリになります。

④エンティティを理解すると、Copilot Studio の世界が一気に開ける

エンティティは単なる「データ型」ではありません。 AI と業務をつなぐ翻訳レイヤー です。

エンティティを理解すると:

  • Copilot Studio の動きが読める
  • トピック設計がシンプルになる
  • 自然言語アプリが安定して動く
  • 他の人が作れないレベルのエージェントが作れる

あなたのアプリは、 「フォーム入力」ではなく「自然言語で動く業務アプリ」 に進化します。 に進化します。

コメントを残す

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