はじめに
みなさん、こんにちは。
マイクロソフト佐々木です。
本日は、Facbric Data Agentを呼び出すCopilot Studio マルチエージェント を題材に、生成オーケストレーションモードのエージェントの開発方法についてご紹介します。
紹介する内容
- AI ToolsのCode Interpreterでグラフを作成する
- Fabric Data Agent をマルチエージェントとして呼び出す
開発の流れ
- AI ToolsのCode Interpreterのモデルを作成する
- エージェントフローから呼び出す
- Copilot Studioでテストする(結合)
- Fabric Agentを作成する
- Copilot Studioから呼び出しテストする(最終結合)
開発する!
AI ToolsのCode Interpreterのモデルを作成する
グラフを作成するCode Interpreterの作成方法は様々ありますが、今回はAI Toolsから作成したいと思います。
Copilot StudioのToolから新規作成します。
カスタムプロンプトが作成されたら、[コードインタプリタ―を有効化する]にチェックを入れます。
もし、こちらが表示されない場合は、Power Platform管理センターの設定で制御されている可能性が高いです。
今回はこちらのプロンプトをテスト的に入力して、グラフ生成をテストします。
## 目的
財務データ(Actual vs Budget)の比較を経営層向けに可視化する。
単月推移と累計の両方を一目で理解できる単一のグラフを生成する。
## 出力形式
- グラフは PNG
- Markdown に埋め込み可能な形式で返す(Base64)
## グラフ要件
1. **月次推移(Apr, May, Jun)**
- X軸: 月(Apr, May, Jun)
- Y軸: 金額(億円単位 or 10^9 表記、数値範囲は見やすいように)
- 表示要素:
- 棒グラフ: Actual(金額)
- 折れ線: Budget(金額)
- 注釈:
- 達成率(%)を折れ線上にラベル表示
- グラフ表記はすべて英語
2. **デザイン**
- Actual: 青系の棒
- Budget: 灰色の折れ線
- 達成率が100%超なら白、未達なら赤で表示
- 経営層が一目で理解できるシンプルな見栄えにする
3. ** Summaryセクション**
- Summaryは日本語で改行を含むマークダウン形式です。丁寧な日本語を心掛けます。各月のデータや合計値を説明します。Summaryで使われる表記は円表記にします。
入力引数にサンプルデータを投入し、テストします
{
"Summary": {
"Period": "2025 Apr–Jun",
"Metric": "Net Sales & Operating Revenues",
"AchievementRate": 102.5,
"Difference": 3200000000
},
"Figures": {
"Monthly": {
"Apr": {
"Current": 40300000000,
"Base": 40600000000,
"Difference": -300000000,
"AchievementRate": 99.3
},
"May": {
"Current": 47800000000,
"Base": 46500000000,
"Difference": 1300000000,
"AchievementRate": 102.8
},
"Jun": {
"Current": 43800000000,
"Base": 43400000000,
"Difference": 400000000,
"AchievementRate": 100.9
}
},
"Cumulative": {
"Period": "Apr–Jun",
"Current": 131900000000,
"Base": 130500000000
}
},
"Calculation": {
"Difference": 3200000000,
"AchievementRate": 102.5
}
}
結果を確認するとグラフがそれとなく生成されています。
裏側でPythonスクリプトが実行されています。
テキストでは後続で取り扱えないので、JSONにします。
本来だと入れ子構造のJSON形式で出てくるのですが、取り扱いが面倒なので、今回は形式を変えてしまいます。
エージェントフローから呼び出す
エージェントフローを作成し、前の手順で作成したAI Toolsを呼び出すフローを作成します。
今回は最低限の処理だけを実行します。
最終的に作成したエージェントフローです。
作成したエージェントフローをエージェントに追加します。説明などはお任せします。
重要なのは出力の形式でBase64形式のイメージで直接扱うため、アダプティブカードで表示させる必要があります。トピック内で処理させてもいいですが、今回はアダプティブカードのImageとして表示させたいと思います。
Copilot Studioでテストする(結合)
Copilot Studioからテストします。
生成オーケストレーションモードなので、指示文を書きますが、今回は最低限にグラフを作成できるエージェントフローが実行する指示文でOKです。
※ データは後続のFabric Agentからもらうので、今回は直接Copilot Studioのエージェントに渡しちゃいます
Fabric Agentを作成する
Fabricに実績vs予算のデータを用意する
FabricにCSVデータを投入し、セマンティックモデルを用意します。グラフに必要な列は最低限用意してあげます。
Fabric Agentを作成する
データエージェントを作成し、さきほど作成したセマンティックモデルをデータソースとして指定します。
AIへの指示文も適宜変更します。今回は最低限だけです。
場合によっては、JSON形式に出力させるなどした方が後続で扱いやすいと思います。
あなたは売上データ集計アシスタントです。
[条件]
- FY = 2025
- SCENARIO = "ACT" と "BGT"
- 粒度はユーザーの質問に応じる:
・「Apr」「May」など単月指定なら、その月だけ集計
・「Q1」「Q2」「Q3」「Q4」指定なら、定義に従って3ヶ月を集計
- Q1 = Apr, May, Jun
- Q2 = Jul, Aug, Sep
- Q3 = Oct, Nov, Dec
- Q4 = Jan, Feb, Mar
- 集計値 = SUM(AMOUNT)
- 出力値:
- Current = ACT
- Base = BGT
- Difference = Current - Base
- AchievementRate = Current / Base * 100
いい感じにアウトプットが得られました。
このエージェントをCopilot Studioから呼び出しましょう。
こちらの手順で忘れずにFabricのデータエージェントを公開します。
Copilot Studioから呼び出しテストする(最終結合)
うえの手順で作成したFabricのデータエージェントをCopilot Studioから呼び出します。
マルチエージェントとして呼び出しますが、実態はMCPです。
設定ができたら、Copilot Studioの指示文です。こちらも最低限で忖度気味に書きたいと思います。
企業経営者向けに PL データ分析を支援します。
FabricAgent を呼び出してデータを取得・整形します。
最終返答は FabricAgentの出力をベースに簡潔化したMarkdown形式 で提示します。必要に応じて、比較分析やグラフ生成を行い、経営層が理解しやすい形に変換します。
# タスクの流れ
## Step1|PL データ取得(PL_FabricAgent 呼び出し)
入力文を 英語1000字未満に要約翻訳し、userQuestion_en を作成
返答は FabricAgent の Markdown をそのまま返す。ただし冗長な表現は省き、経営層が理解しやすいように整形可
## Step2|比較分析・グラフ作成
その数値をそのまま利用し、 エージェントフロー_グラフ作成 を呼び出し実行します
テストしてみましょう。
Fabricからのデータをエージェントフローを利用して、Code Interpreterを実行するAI Toolsを呼び出すことに成功しました。
おわり
今回はFabricのデータを分析するFabricエージェントをCopilot Studioから呼び出す方法、グラフを作成するCode Interpreter機能の紹介、その呼び出し方についてご説明しました。
お役にたてれば幸いです。