Graph APIをAIに使わせる!Azure AI Agentの関数呼び出し活用術

2025.05.15
Graph APIをAIに使わせる!Azure AI Agentの関数呼び出し活用術

はじめに

MS開発部の松坂です。

Azure OpenAI Serviceでは、「関数呼び出し(Function Calling)」機能を使って、AIが外部サービスに動的にアクセスすることができます。

本記事では、Azure AI AgentとMicrosoft Graph APIを連携し、AIにOutlookメール情報を取得させる方法を解説します。
C#で実装し、AIから安全にGraph APIを操作できる構成を構築します。

「業務に合わせたAIエージェントを作ってみたい」「API呼び出しをAIにやらせたい」
そんな方におすすめの内容です。

構成概要

  • Azure AI Agent Service

  • Outlook(Microsoft Graph API経由でメール情報取得)

  • C# SDK

1. 事前準備

  • Azureサブスクリプション

  • Azure AI Agent Serviceのプロジェクト作成

  • Microsoft Graph APIのアプリ登録(Outlookメールアクセス権限付与)

  • 必要なNuGetパッケージのインストール(例: Azure.IdentityMicrosoft.Graphazure.ai.projects等)

2. Outlookのメールを取得する関数の作成

Azure AI Agentの関数呼び出しを用いてOutlookのメール情報を取得する関数を作成します。 まずはエージェントとGraph APIを連携するために必要な検索パラメータのDTOクラスを作成します。今回は簡易的なものとして、送り先と時刻でチャット検索できるように構築します。 次に、Graph APIを用いてメールを検索する実行関数を作成します。 今回は、Graph APIを実行する際はあらかじめトークンが取得できている前提で定義していきます。WebアプリならFrontEndから、ローカルアプリ等であればDefaultCredentialから取得できると思います。 次にエージェントを呼び出す関数を定義します。 また、C#ではエージェントが適切に関数を実行するためにヘルパー関数を定義する必要があります。 なお、プロパティ名の大文字・小文字の区別には注意が必要です(例: ‘From’ や ‘from’ など)。Microsoft Graph APIおよびAzure AI Agent SDK間で命名規則の違いがあるため、明示的なマッピングが必要になる場合があります。

3. Azure AI Agent のエージェント作成

次にAzureAIAgentのクライアント初期化からエージェント作成を行います。

※接続文字列はAzureポータルから取得し、環境変数に設定してください。

エージェント作成時には、先ほど定義したメール取得用のFunctionToolDefinitionをtoolsとして設定します。

4. スレッドの作成

スレッド作成から、ユーザーメッセージ作成までは基本的な形と変わりません。

※userMessageには任意の質問するチャット内容を入れてください。

5. メール取得クエリの実行

C#では先ほど作成したヘルパー関数をエージェント実行中に呼び出すよう設定をする必要があります。

ツールの実行状態および、エージェントの実行状態を見て適切なエラー処理やレスポンスの設定を行ってください。

6. 動作例

今回は動作確認の例としてReact+TypeScriptでトークンを取得し、上記内容をバックエンドでAPI通信を通じて送受信処理を実行します。

MSALを使ってサインインし、トークンを取得して実行します。

Graph API呼び出しの例

 

7. おわりに

本記事では、Azure OpenAIのFunction Calling機能を使い、AIエージェントがC#経由でGraph APIを呼び出し、Outlookメールを動的に取得する方法を紹介しました。

このアプローチにより、業務に最適化された独自のAIアシスタントを構築することが可能になります。
Graph APIを使えば、メールだけでなく予定表、連絡先、ユーザー情報などへのアクセスも可能です。
AIとAPIの橋渡しをすることで、実用的かつ拡張性の高いAIエージェントが生まれます。

次は、メール要約、重要度判定、Teams連携など、用途に応じて機能を拡張してみてください。

以上、最後までご愛読いただき
ありがとうございました。

お問い合わせは、
以下のフォームへご連絡ください。

お問い合わせ

PAGETOP