Copilot Studioを使い始めたものの、質問に対する回答が少しずれていたり、
入力した値をエージェント側がうまく認識できないといったことはありますでしょうか。
こうした課題を解決してくれる機能として、今回はエンティティ機能についてご紹介します。
エンティティとは
エンティティとは、ユーザーの入力文から意味のある情報を抽出し、エージェント側で利用しやすい形に整理する仕組みです。
たとえば「4月20日の10時に打ち合わせしたい」と入力された場合、Copilot Studioでは設定に応じて「4月20日」を日付、「10時」を時間として認識し、後続の処理に利用できます。
また部署名をエンティティに登録すれば、「人事部に問い合わせをしたい」と入力された場合、「人事部」を部署名として認識し、適切な案内先に分岐させることもできます。
このようにエンティティを活用すると、ユーザーの自然な入力をもとに必要な情報を取り出し、変数への保存、条件分岐、応答メッセージへの反映などに活用できます。
エンティティの種類と使い分け
Copilot Studioには、用途に応じて使い分けできる複数のエンティティが用意されています。
エンティティを正しく選ぶことで、エージェントはユーザーの入力内容をより正確に理解できるようになります。
主な種類を以下の表にまとめます。
| No | 種類 | 特徴 |
|---|---|---|
| 1 | 事前構築済みエンティティ | 日付、時間、数値、メールアドレスなど、よく使われる情報をあらかじめ認識できるようデフォルトで設定されているエンティティです。 |
| 2 | ユーザー定義エンティティ | 業務用語や社内ルールなど、標準では認識できない情報を自分で定義できます。会社独自の項目を扱いたい場合等に使用します。 |
また、カスタムエンティティを作成する際には、目的に応じて次の2つから作成方法を選択します。
| No | 種類 | 特徴 |
|---|---|---|
| 1 | 閉じているリスト(Closed List) | 登録した単語や表現だけを情報として認識する方法です。登録したい候補が決まっている場合に使いやすく、設定も簡単です。 |
| 2 | 正規表現(RegEX) | 入力ルールをパターンとして定義します。郵便番号や社員番号など、形式が決まっている情報を柔軟に抽出できます。 |
設定したエンティティは、質問ノードにて選択肢として表示することもできます。
例えば、閉じているリスト(Closed List)で定義した項目をボタン形式で提示することで、自由入力だけでなく選択式の回答にも利用できます。
一方、正規表現(RegEX)は、社員番号や申請番号、郵便番号など、あらかじめ入力形式が決まっている情報の抽出が可能であり、形式に合わない入力があった場合には再入力を促すことができるため、入力チェックの用途としても利用できます。
エンティティ機能設定によるメリット
エンティティ機能を設定すると、エージェントがユーザーの入力内容をより正確に理解し、全体の品質と実用性が大幅に向上します。主なメリットは以下のとおりです。
- ユーザー入力を正確に理解できる
日付や数値、選択肢などをエンティティとして認識することで、文章の意味を取り違えにくくなります。また、単なる文字列ではなく「情報」として扱えるため、意図に合った処理が可能になります。 - 同じ質問を何度も聞かれない
一度取得したエンティティの値を保持できるため、何度も同じ質問に対し回答する必要が
なくなり、利用者の負担が減ります。 - 会話が自然になる
エージェントの情報認識精度が上がるため、人と会話をしているような、スムーズで違和感のないやり取りが可能になります。
Copilot Studioにおけるエンティティ活用の実践例:問い合わせ受付エージェント
本章では、エンティティとトピックを活用して、簡単な「部署ごとの問い合わせ受付エージェント」を作成します。
今回作成するトピックの概要
今回は、社内の問い合わせ窓口をエージェントで一本化し、ユーザーが入力した内容から問い合わせ先の部署を自動で振り分けるエージェントを作成します。
ユーザーは最初に、問い合わせ先の部署名を入力、もしくは、あらかじめ用意された選択肢から選ぶといった形で操作を行います。
エージェントはその入力内容をエンティティとして受け取り、次のような対応を行います。
- 問い合わせ内容に応じた適切な案内文を表示
- 次に入力すべき情報を分かりやすく誘導
この一連の流れを通して、エンティティを使うことで会話がどのように整理され、実用的になるのかを確認していきます。
エージェントの構成
今回作成するエージェントは、以下のシンプルな流れで動作します。
- ユーザーに問い合わせ先の部署を確認
- 入力された部署名をエンティティとして認識
- 部署名に応じて処理を分岐
- 部署ごとの案内メッセージを表示
使用する主な要素は以下の通りです。
| No | 要素 | 内容 |
|---|---|---|
| 1 | トピック | 部署別 問い合わせ受付 |
| 2 | エンティティ | 部署(選択肢/カスタムエンティティを使用) |
| 3 | ノード | 質問ノード、条件ノード、メッセージノード |
部署名の入力には、選択肢エンティティとカスタムエンティティを組み合わせて使用します。
- 総務部・人事部・IT部門などの主要な部署は、選択肢として表示
- 選択肢にないその他の部署は、自由に入力できるように設定
自由記載の場合、「情シス」「IT」「IT部」など、部署名の表記がばらつく可能性があります。
そこでカスタムエンティティを使い、正式名称でなくても同じ部署として認識できるようにします。
これにより、ユーザーの入力の自由度を上げつつ、エージェントの認識精度を高めることができます。
トピックの全体像
今回作成するトピックの全体像は以下の通りです。
構築手順
エンティティの設定
-
任意のエージェントを開きます。
-
各項目を入力し、保存します。
| No | 項目 | 設定値 |
|---|---|---|
| 1 | 名前 | 部署 |
| 2 | リスト項目 | 各部署の正式名称 |
| 3 | シノニム | No.2で定義した名称の同義語(略称など) |
7. 設定画面右上の「×」をクリックします。
トピックの作成
-
トピック名は、今回は「部署別問い合わせ受付」にします。
-
トリガーを下記の通り設定します。
| No | 項目 | 設定内容 |
|---|---|---|
| 1 | トリガー | エージェントが選択するもの |
| 2 | トピックの機能を説明する | このトピックは、社内の問い合わせ内容に応じて、問い合わせ先の部署を判別し、適切な案内を行うためのトピックです。 ユーザーから部署名を取得し、部署ごとに異なる案内メッセージを表示します。 |
5. 「ノードの追加」をクリックし、「質問する」を選択します。
6. 5で追加された質問ノードに対し、下記の通り設定します。
| No | 項目 | 設定内容 |
|---|---|---|
| 1 | 質問文 | どちらの部署への問い合わせですか? 選択肢からお選びください。 |
| 2 | 特定 | 選択肢 |
| 3 | 選択肢 | 総務部 人事部 情報システム部 その他 |
| 4 | 変数名 | department_main |
7. 6で自動的に条件分岐が作成されるので、その他の回答に紐づく条件以外の各条件の下に質問ノードを追加し、下記の通り設定します。
※ここでは総務部の設定をご紹介します。
| No | 項目 | 設定内容 |
|---|---|---|
| 1 | 質問文 | {Topic.department_main}へのお問い合わせですね。 備品、社内規則、施設に関する内容を受け付けています。 ご要件を入力してください。 |
| 2 | 特定 | ユーザーの応答全体 |
| 3 | 変数名 | Var1 |
8. 7で作成した質問ノードの下で「ノードを追加」をクリックし、「メッセージを送信する」を選択します。
9. 8で追加されたメッセージノードに対し、下記の通り設定します。
※ここでは総務部の設定をご紹介します。
| No | 項目 | 設定内容 |
|---|---|---|
| 1 | メッセージ | ご用件を承りました。 {Topic.department_main}に下記の内容を問い合わせします。 ご連絡をお待ちください。 【お問い合わせ内容】 {Topic.Var1} |
10. 6で自動的作成された条件分岐のうち、その他の回答に紐づく条件の下に質問ノードを追加し、下記の通り設定します。
| No | 項目 | 設定内容 |
|---|---|---|
| 1 | 質問文 | 問い合わせを行いたい部署を記載してください。 |
| 2 | 特定 | 「エンティティの作成」で作成したエンティティ「部署」 |
| 3 | 変数名 | department |
11. 10で作成した質問ノードの下に、質問ノードを追加し、下記の通り設定します。
| No | 項目 | 設定内容 |
|---|---|---|
| 1 | 質問文 | {Topic.department}へのお問い合わせですね。 ご要件を入力してください。 |
| 2 | 特定 | ユーザーの応答全体 |
| 3 | 変数名 | Var4 |
12. 11で作成した質問ノードの下に、質問ノードを追加し、下記の通り設定します。
| No | 項目 | 設定内容 |
|---|---|---|
| 1 | メッセージ | ご用件を承りました。 {Topic.department }に下記の内容を問い合わせします。 ご連絡をお待ちください。 【お問い合わせ内容】 {Topic.Var4} |
13. 条件分岐が終了した最下部で「ノードを追加」をクリックし、「トピック管理」>「会話の終了」を選択します。

動作確認
-
お問い合わせ先についてエージェントから質問が来るため、今回は「その他」を選択します。
※エンティティを設定していない部署を入力した場合、部署名として認識されないため、部署名について再質問されます。

まとめ
Copilot Studioのエンティティ機能を活用したトピックを作成し、ユーザーの入力を単なる文字列ではなく、意味のある情報として扱えるようになることが分かりました。
取得した情報をもとに条件分岐を含むフローなどを設計できるため、申請受付エージェントや簡易予約エージェントなど、実務に近いユースケースも実現できそうです。
エンティティは、エージェント活用の幅を大きく広げる重要な機能です。まずはシンプルなシナリオから、ぜひ実際に触って試してみてください。
さいごに
テンダでは、「こんなプロジェクトに挑戦したい」「こんなチームで働きたい」「理想のチームを創りたい」と願う仲間を求めています。
カジュアル面談も随時受付中です。ぜひ一度お話ししましょう。


















