この記事は NTT ドコモソリューションズ Advent Calendar 2025 の 21 日目の記事です。
はじめに
こんにちは、NTT ドコモソリューションズの北山です。普段の業務では Azure などの Microsoft のサービスを用いた開発や技術的なサポートを行いつつ、業務外ではプレミアリーグのサッカーチーム (スパーズ) を応援しています。
さて、いまや生成 AI は誰もが使う時代になりました。私自身、仕事では主に Copilot を利用しています。しかし、Copilot をそのまま使うだけでは、一般的な情報は得られても、業務特有の課題を解決するには限界があります。
そこで登場するのが Microsoft 365 Agents Toolkit & SDK です。これを使えば、業務に特化した AI エージェントを構築できます。
本記事では、API 連携やコードインタプリタなどを活用し、業務に特化した AI エージェントを実践的に開発する手順を詳しく紹介します。
Microsoft 365 Agents Toolkit & SDK とは
Copilot は、組織の生産性を革新する強力な AI アシスタントとして登場しました。この Copilot の能力を特定の業務プロセスや知識領域に特化させるため、AI エージェントは重要なものとして位置づけられています。これらのエージェントは、大規模言語モデル (LLM) のパワーと組織のデータを統合し、ユーザーの自然言語による指示を基にして様々な操作を行います。企業が AI の恩恵を最大限に引き出すためには、組織のニーズに合致した AI
エージェント作成アプローチを選択することが不可欠です。
Microsoft 365 Agents Toolkit & SDK は、Microsoft 365 Copilot 環境向けに AI エージェントを構築するための開発ツール群です。Agents Toolkit は Visual Studio Code の拡張機能として提供され、テンプレートによるプロジェクトの自動構築やデバッグ機能を備え、Teams や Outlook、Copilot Chat 上で動作するアプリの開発を容易にします。Agents SDK は、Azure OpenAI や Semantic Kernel、カスタム LLM など任意の AI スタックを組み込んだエージェントを開発し、Microsoft 365 Copilot へのデプロイを可能にするソフトウェア開発キットです。
これらを使うことで、企業独自の知識や業務フローに沿ったカスタム AI エージェントを迅速に構築し、Microsoft 365 の作業フローに統合できます。
メリットと注意点
Microsoft 365 Agents Toolkit & SDK は、Visual Studio Code の無料拡張機能として提供され、開発者は Visual Studio Code 内から Teams、Outlook、Copilot 向けアプリケーションを直接実行およびデバッグできます。
コードベースのアプローチとして、Toolkit は以下の機能を提供します。
- プロジェクトテンプレート: タブ、ボット、メッセージ拡張機能など、一般的なアプリシナリオに焦点を当てたテンプレートを提供します
- 構成可能な自動化タスク: アプリ ID、ボット登録、Microsoft Entra アプリの作成など、反復的または面倒な構成を自動化します
- 複数の環境: dev、test、prod など、異なるホストリソースグループでアプリをテストするためのユニークな構成を可能にします
- Infrastructure as Code (IaC) と Bicep: Azure でのホスティングに関して、すぐに使えるような最適化された初期設定や構成を提供しています
これらの機能は、開発者が AI エージェントの構築、テスト、デバッグ、デプロイメントのライフサイクル全体を通じて、効率的かつ体系的に作業を進められるように設計されています。開発者向けの包括的なツールセットとコードベースのアプローチは、AI エージェント開発の複雑性を管理し、エラーを最小限に抑え、開発サイクルを短縮することを可能にします。これにより、企業は高リスクで複雑な業務プロセスに AI を適用する際にも、必要な精度と信頼性を確保できます。
主なユースケースは、高リスクの金融取引や厳密な規制遵守が必要な業務などのエラーが許されない複雑なワークフロー、特定の業界や業務に特化した、高度にカスタマイズされた AI エージェントの開発などが挙げられます。
ライセンス
Microsoft 365 Agents Toolkit & SDK は、Visual Studio Code の無料拡張機能として提供されているため、このツールそのものを利用するために必要なライセンスはありません。ライセンスが無くても、エージェントの開発・テストを行うことができます。
しかし、作成したエージェントを Teams で配布するなど、本番環境で利用するために Microsoft 365 Copilot へエージェントを統合・表示するには、Microsoft 365 Copilot ライセンスが必要です。また、Copilot Studio エージェントと統合するには、Copilot Studio のライセンスが必要となります。
AI エージェントを作成する
本記事では、Microsoft 365 Agents Toolkit & SDK の特徴である プロコードレベルで高度にカスタマイズされたエージェントを構築できる ことを紹介するために、外部の API と連携したエージェントを構築します。
手順の概要は、下記の通りです。
-
環境のセットアップ: Microsoft 365 Agents Toolkit & SDK を利用するために、テナントの設定や必要なツールをインストールします。
- Teams のアップロードポリシーの構成: Microsoft 365 Agents Toolkit & SDK で作成したエージェントなどのアプリケーションは、既定では、エンドユーザーが直接アップロードすることができません。
- Visual Studio Code のインストール: Microsoft 365 Agents Toolkit & SDK を利用するには、Visual Studio Code が必要です。Visual Studio Code は、Microsoft が開発しているソースコードエディタです。
- Node.js のインストール: 本手順では、TypeSpec の CLI やツール群を用います。その際に、Node.js が必要です。Node.js は、JavaScript をローカルで実行できるプログラムです。また、TypeSpec とは、API を構造化し、型安全に設計・記述するために Microsoft が開発した言語です。API が受け取るデータ、返すデータ、および API とそのアクション間の関連を含め、API がどのように見え、どのように動作するかを設計する設計書のようなものとして扱われます。
- Microsoft 365 Agents Toolkit & SDK のインストール: Microsoft 365 Agents Toolkit & SDK をインストールします。
-
宣言型エージェントのベースの作成: Microsoft 365 Agents Toolkit & SDK を用いて、宣言型エージェントのベースを作成します。
- プロジェクトの作成: 宣言型エージェントのベースの作成やカスタマイズを行うために、プロジェクトを作成します。
- Microsoft 365 Agents Toolkit へのサインイン: エージェントをアップロードしてテストするには、Microsoft 365 Agents Toolkit にサインインする必要があります。
- エージェントの定義: エージェント名やエージェントへの指示を定義します。
- エージェントのビルド: 作成したエージェントをビルドします。
-
宣言型エージェントの強化: 宣言型エージェントの基本的な機能に加えて、エージェントの応答や API との連携などを行い、エージェントを強化します。
- アイコンの変更: エージェントのアイコンを変更します。
- API の定義: 呼び出す API を定義します。Microsoft 365 Agents Toolkit & SDK で作成するエージェントは、プロンプトの内容を解釈し、外部の API を呼び出して、GET 操作や POST 操作などを行うことができます。なお、本記事では API として、httpbin.org を用います。
- Adaptive Card の定義: エージェントからの回答においてユーザーから見やすいデザインとなる Adaptive Card を定義します。Adaptive Card は、メッセージのデータフォーマットであり、エージェントだけではなく、Teams や Outlook などでも共通して使えるものです。
- エージェントの定義: エージェントへの指示の定義や機能の拡張を行います。Web 検索機能やコードインタプリタ (コードを用いた画像やグラフの生成) を有効として、それらの機能拡張や API 連携を実装した内容に基づいて、エージェントへの指示の定義を行います。
-
エージェントのテスト: 作成したエージェントをテストします。
- エージェントのビルド: 作成したエージェントをビルドします。
- API 連携 (GET): GET 操作の API 連携を行います。
- API 連携 (POST): POST 操作の API 連携を行います。
- API 連携 (DELETE): DELETE 操作の API 連携を行います。
- WEB 検索: WEB 検索を用いた回答の生成を行います。
- コードインタプリタ (グラフ作成): コードインタプリタを用いて、グラフを作成します。
- コードインタプリタ (ワードクラウド作成): コードインタプリタを用いて、ワードクラウドを作成します。
本記事で用いる API (httpbin.org) は、HTTP の動作を簡単に確認・学習できる便利なツールであり、API 開発やテストに広く使われています。httpbin.org に A simple HTTP Request & Response Service. と記載されている通り、シンプルな HTTP リクエストとレスポンスの動作を確認できるサービスです。
例えば、GET リクエストを行うと、下記のように HTTP レスポンスが返却されます。
PS C:\> $response = Invoke-WebRequest -Uri "https://httpbin.org/get?systemId=1&title=System&summary=Azure" -Method GET
PS C:\> $response
StatusCode : 200
StatusDescription : OK
Content : {
"args": {
"summary": "Azure",
"systemId": "1",
"title": "System"
},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX…
RawContent : HTTP/1.1 200 OK
Date: Wed, 23 Jul 2025 05:02:35 GMT
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Proxy-Connection: Keep-Alive
Content-Type: appli…
Headers : {[Date, System.String[]], [Server, System.String[]], [Access-Control-Allow-Origin, System.String[]], [Access-Control-Allow-Credentials, System.String[]]…}
Images : {}
InputFields : {}
Links : {}
RawContentLength : 504
RelationLink : {}
レスポンスの Content パラメーターには、様々なキーと値が含まれています。例えば、args キーにリクエストで送信したパラメーターが格納されていることや、origin キーに送信元の IP アドレスが格納されていることが分かります。
なお、下記の具体例では、origin キーなどの具体的な値はマスクしています。
PS C:\> $response = Invoke-WebRequest -Uri "https://httpbin.org/get?systemId=1&title=System&summary=Azure" -Method GET
PS C:\> $response.Content
{
"args": {
"summary": "Azure",
"systemId": "1",
"title": "System"
},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X-Amzn-Trace-Id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"X-If-Via": "XXXXXXXXXXXXXX"
},
"origin": "XXX.XXX.XXX.XXX",
"url": "https://httpbin.org/get?systemId=1&title=System&summary=Azure"
}
環境のセットアップ
1-1. Teams のアップロードポリシーの構成
-
Microsoft 365 管理センター (https://admin.microsoft.com/) へアクセスし、[Teams] をクリックします。

出典:Microsoft Corporation「Microsoft 365 管理センター」(2025.07.23) -
[カスタムアプリをアップロード] のトグルボタンをクリックし、[オン] となっていることを確認し、[保存] をクリックします。

1-2. Visual Studio Code のインストール
Download Visual Studio Code - Mac, Linux, Windows へアクセスし、インストーラーをダウンロードします。
ダウンロードした後のインストール手順は、演習 - Visual Studio Code をダウンロードしてインストールする - Training | Microsoft Learn などを参照ください。
1-3. Node.js のインストール
Node.js --- Download Node.js® へアクセスし、インストーラーをダウンロードします。
ダウンロードした後のインストール手順は、WindowsにNode.jsをインストールする手順 #初心者向け - Qiita などを参照ください。
1-4. Microsoft 365 Agents Toolkit & SDK のインストール
- Visual Studio Code を起動し、左側の拡張機能アイコンをクリックします。テキストボックスに[Microsoft 365 Agents Toolkit] と入力し、表示された [Microsoft 365 Agents Toolkit] をクリックし、[インストール] をクリックします。

出典:「Visual Studio Code (バージョン1.102)」(筆者ローカル環境/スクリーンショット取得日:2025.07.23) - インストールが完了すると、左側に Microsoft 365 Agents Toolkit のアイコンが表示されることを確認します。
宣言型エージェントのベースの作成
2-1. プロジェクトの作成
-
Visual Studio Code を起動し、左側の Microsoft 365 Agents Toolkit アイコンをクリックし、[Create a New Agent/App] をクリックします。

-
アプリケーションの名前 (エージェントの名前) を入力し、Enter キーを押下します。本記事では、
SampleAgentとします。
2-2. Microsoft 365 Agents Toolkit へのサインイン
-
左側の Microsoft 365 Agents Toolkit アイコンをクリックし、[Microsoft 365 にサインインする] をクリックします。

-
[サインイン] をクリックし、任意のアカウントでサインインします。なお、ここでは省略しますが、ブラウザが起動して、任意のアカウントでサインインする形となります。

-
[ACCOUNTS] にサインインしたアカウントの UPN (User Principal Name) と、[カスタムアプリのアップロードが有効] が表示されることを確認します。

2-3. エージェントの定義
-
左側のファイルアイコンをクリックし、
main.tspをクリックします。表示されたソースコードの@agent、@instructions部分を後述するソースコードへ変更します。

@agent( "SampleAgent", "ITシステム情報の管理を行うエージェント" ) @instructions(""" # システムロール あなたは、ITシステム情報の取得・管理を支援するAIエージェントです。 ユーザーが提供する情報をもとに、業務をサポートします。 """)@agentはエージェントの識別と目的を設定します。"SampleAgent"はエージェントの識別名で、Copilot が内部的に認識するためのものです。"ITシステム情報の管理を行うエージェント"は、ユーザー向けの説明文で、Copilot Studio などの UI 上で表示されます。@instructionsはエージェントがどのように振る舞うべきかを記述するプロンプトです。 -
次に、
@conversationStarter部分を後述するソースコードへ変更します。

@conversationStarter(#{ title: "ITシステム情報の管理", text: "ITシステム情報を管理する方法を教えてください。" })エージェントの会話スターターを設定します。
title:は、エージェントを開いた際に表示される会話スターターのタイトルです。これをユーザーがクリックして会話を開始できます。text:は、実際にエージェントに送信されるメッセージです。会話スターターとは、下記の部分です。このように、タイトルとテキストが表示され、これをクリックするとテキストがテキストボックスに入力されます。

出典:Microsoft Corporation「Microsoft 365 Copilot」(2025.07.23)
2-4. エージェントのビルド
-
下側にターミナルなどが表示され、Microsoft 365 Agents Toolkit へサインインしたユーザーのみがテストできるようにアプリパッケージがビルドされるため、完了するまで待機します。

-
Copilot Chat (https://m365.cloud.microsoft/chat/) へアクセスし、ビルドしたエージェントをクリックします。

宣言型エージェントの強化
3-1. アイコンの変更
3-2. API の定義
-
左側のファイルアイコンをクリックし、
action.tspをクリックします。表示されたソースコードには、デフォルトで GitHub の API と連携するソースコードが記載されています。
まず、GitHubAPIと記載されている個所をSampleAgentAPIに置換します。

このソースコードは、AI エージェントが外部 API (https://httpbin.org) と連携するための設定です。
@serviceはサービスの定義、@serverは接続先URL、@actionsは操作の説明や利用規約を指定します。これにより、Copilot が API と連携できるようになります。 -
ACTIONS_METADATAとSERVER_URL部分を後述するソースコードへ変更します。

const ACTIONS_METADATA = #{ nameForHuman: "Sample Service Agent", descriptionForHuman: "ITシステムの情報を管理します。", descriptionForModel: "ITシステムの情報を管理できます。", legalInfoUrl: "https://httpbin.org/", privacyPolicyUrl: "https://httpbin.org/" }; const SERVER_URL = "https://httpbin.org";エージェントが API 連携する際のサービス名・説明・接続先 URL を設定しています。
ACTIONS_METADATAはユーザーと AI モデルの両方に向けた説明を含み、SERVER_URLは API の送信先を指定します。 -
具体的な API 操作を記載する部分を後述するソースコードへ変更します。


/** * 下記のパラメーターを指定してGET操作を行い、ITシステム情報を取得します。 * @param systemId システムIDとして扱う数値のパラメーターです。 * @param title システムのタイトルとして扱う文字列のパラメーターです。 * @param summary システムの情報として扱う文字列のパラメーターです。 */ @route("/get") @card(#{ dataPath: "$", title: "ITシステム情報", file: "cards/item.json" }) @get op getItem(@query systemId?: integer, @query title?: string, @query summary?: string): Item[]; /** * 下記のパラメーターを指定してPOST操作を行い、ITシステム情報を登録します。 * @param item 登録するシステムの内容として扱うモデルのパラメーターです。 */ @route("/post") @post op postItem(@body item: Item): Item; /** * 下記のパラメーターを指定してDELETE操作を行い、ITシステム情報を削除します。 * @param item 削除するシステムの内容として扱うモデルのパラメーターです。 */ @route("/delete") @delete op deleteItem(@body item: Item): void; model Item { systemId: integer; title: string; summary: string; }エージェントが情報を取得・登録・削除するための API 操作を定義しています。各操作は
/get、/post、/deleteのルートに対応しています。Itemモデルを使ってデータをやり取りします。
また、GET 操作を行う際のレスポンスは、 Adaptive Card を用いるように設定しています。なお、Adaptive Card は、次の手順で定義します。
3-3. Adaptive Card の定義
-
左側のファイルアイコンをクリックし、
appPackageフォルダーを右クリックし、[新しいフォルダー] をクリックします。
-
[cards] と入力し、
cardsフォルダーを作成します。cardsフォルダーを右クリックし、[新しいファイル] をクリックします。
-
[item.json] と入力し、
item.jsonファイルを作成します。item.jsonファイルをクリックします。
-
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.5", "body": [ { "type": "Container", "$data": "${$root}", "items": [ { "type": "TextBlock", "text": "APIによるレスポンス", "weight": "Bolder", "wrap": true }, { "type": "TextBlock", "text": "API 発行先 URL: ${if(url, url, 'N/A')}", "wrap": true }, { "type": "TextBlock", "text": "送信元 IP アドレス: ${if(origin, origin, 'N/A')}", "wrap": true }, { "type": "TextBlock", "text": "パラメーター一覧", "weight": "Bolder", "wrap": true, "spacing": "Medium" }, { "type": "FactSet", "$data": "${args}", "facts": [ { "title": "1つ目のパラメーター (systemId)", "value": "${if(systemId, systemId, 'N/A')}" }, { "title": "2つ目のパラメーター (title)", "value": "${if(title, title, 'N/A')}" }, { "title": "3つ目のパラメーター (summary)", "value": "${if(summary, summary, 'N/A')}" } ] } ] } ], "actions": [ { "type": "Action.OpenUrl", "title": "API のリファレンス", "url": "https://httpbin.org/" } ] }API レスポンスを視覚的に表示するための Adaptive Card テンプレートを定義しています。情報の各パラメーターや API の送信先・IP アドレスを整理して表示します。
主な構成要素は下記の通りです。
要素 内容 $schemaAdaptive Card のバージョンと仕様を定義(1.5) typeカードの種類(AdaptiveCard) body表示する内容 actionsユーザーがクリックできるリンク 具体的に表示される情報は下記の通りです。
- API によるレスポンス(見出し)
-
API 発行先 URL(
urlパラメーター) -
送信元 IP アドレス(
originパラメーター) -
パラメーター一覧(
systemId,title,summaryをFactSetで表示)
3-4. エージェントの定義
-
左側のファイルアイコンをクリックし、
main.tspをクリックします。namespace SampleAgent部分を後述するソースコードに置き換えます。

@service @server(global.SampleAgentAPI.SERVER_URL) @actions(global.SampleAgentAPI.ACTIONS_METADATA) namespace SampleServiceActions { op getItem is global.SampleAgentAPI.getItem; op postItem is global.SampleAgentAPI.postItem; op deleteItem is global.SampleAgentAPI.deleteItem; } op codeInterpreter is AgentCapabilities.CodeInterpreter; op webSearch is AgentCapabilities.WebSearch<TSites = [ { url: "https://learn.microsoft.com/" } ]>;エージェントの操作(API 連携・視覚化・情報検索)をまとめて定義しています。
SampleServiceActionsでは、API を利用した情報の取得・登録・削除を定義しています。
codeInterpreterでは、円グラフやワードクラウドなど、データの視覚化を行う機能を有効化し、webSearchでは、Microsoft Learn を対象に、Web の検索を行う機能を有効化しています。 -
@instructions部分を後述するソースコードに置き換えます。

@instructions(""" # システムロール あなたは、ITシステム情報の取得・管理を支援するAIエージェントです。 ユーザーが提供する情報をもとに、API連携・Microsoft Learn での情報検索(webSearch)・情報の視覚化 (codeInterpreter)などを通じて、業務をサポートします。 --- # メインインストラクション - ユーザーが求めるITシステム情報を、APIを通じて取得・登録・削除する。 - ITシステム情報を取得した際のレスポンスは、Adaptive Card(item.json)を用いて視覚的に提示する。 - Microsoft Learn から関連情報を検索し、補足説明を行う。 - 情報の視覚化 (codeInterpreter) を行い、補足説明を行う。 --- ## はじめの挨拶プロンプト こんにちは!ITシステム情報エージェントです🔧 APIやドキュメントを活用して、システム情報の取得・管理をサポートします。お気軽にご相談ください! --- ## ユーザーへの応答方針 - **口調**:丁寧で親しみやすく、業務に適したプロフェッショナルなトーン - **表現**:複数項目は表形式やカード形式で整理し、絵文字を活用して視認性を高める - **提案**:回答後は、関連する操作や次のステップを提案する - **明確さ**:専門用語は避け、必要に応じて簡潔に補足する --- # 実行ステップ 1. ユーザーの意図を把握し、対象となるAPI操作(取得・登録・削除)を特定する 2. `https://httpbin.org/` に対して適切なAPIリクエストを送信する 3. ITシステム情報を取得した際のレスポンスは `item.json` に基づくAdaptive Cardで表示する 4. ITシステム情報を登録・削除した際のレスポンスは、リクエストした情報を元にメッセージで表示する 5. 必要に応じて、以下の機能を活用する: - Microsoft Learn での情報検索(webSearch) - 情報の視覚化 (codeInterpreter) --- # 一般ルール - コードや技術的な詳細は表示しない - 個人情報や機密情報は一切出力しない - 回答は常に公式ドキュメントに基づくものとする - 不明確な質問には、追加情報を丁寧に尋ねる --- # エラー対応 問題が発生した場合は、以下のプロンプトを使用してください: 申し訳ありません、現在情報の取得に問題が発生しています。少し時間を置いて再度お試しください🙏 --- # 例:ユーザーとのやり取り **ユーザー**:「ITシステムの情報を取得したい」 **エージェント**: 取得した情報は下記のとおりです📄 (Adaptive Card 表示) --- **ユーザー**:「ITシステム情報を登録できますか?」 **エージェント**: もちろんです!登録内容として、システムID、タイトル、内容を教えていただければ、すぐに反映いたします🛠️ --- """)@instructionsはエージェントがどのように振る舞うべきかを記述するプロンプトです。機能拡張や API 連携を実装した内容に基づいて、エージェントへの指示の定義を行います。 -
@conversationStarter部分を後述するソースコードに置き換えます。

@conversationStarter(#{ title: "ITシステム情報の取得", text: "ITシステム情報を取得してください。パラメーターは、「システムID: 1、タイトル: Aシステム、内容: Azure」としてください。" }) @conversationStarter(#{ title: "ITシステム情報の登録", text: "ITシステム情報を登録してください。パラメーターは、「システムID: 2、タイトル: Bシステム、内容: Microsoft 365」としてください。" }) @conversationStarter(#{ title: "ITシステム情報の削除", text: "ITシステム情報を削除してください。パラメーターは、「システムID: 3、タイトル: Cシステム、内容: Microsoft Entra」としてください。" }) @conversationStarter(#{ title: "グラフの作成", text: "以下のカテゴリ別のMicrosoftサービスの割合を円グラフで表示してください。\nProductivity (Microsoft 365, Office): 35%\nCloud (Azure): 25%\nOperating Systems (Windows): 15%\nDeveloper Tools (Visual Studio, GitHub): 10%\nGaming (Xbox, Game Pass): 10%\nOthers (LinkedIn, Dynamics 365, etc.): 5%" }) @conversationStarter(#{ title: "ワードクラウドの作成", text: "NTTに関連するワードクラウドを作成してください。" }) @conversationStarter(#{ title: "Microsoft 365 Copilotの宣言型エージェントスキーマの調査", text: "Microsoft 365 Copilotの宣言型エージェントスキーマ 1.4について、Microsoftの公式情報を参照し、分かりやすく整理して教えてください。" })エージェントの会話スターターを設定します。
title:は、エージェントを開いた際に表示される会話スターターのタイトルです。これをユーザーがクリックして会話を開始できます。text:は、実際にエージェントに送信されるメッセージです。
エージェントのテスト
4-1. エージェントのビルド
4-2. API 連携 (GET)
-
Copilot Chat (https://m365.cloud.microsoft/chat/) へアクセスし、ビルドしたエージェントをクリックします。

-
エージェントから API 連携を行う旨のメッセージが表示されることを確認します。[一度のみ許可] (あるいは、[常に許可する]) をクリックします。

API 連携を行う際に表示されるメッセージは、
action.tspに記載したソースコードやコメントを参照して生成されています。/** * 下記のパラメーターを指定してGET操作を行い、ITシステム情報を取得します。 * @param systemId システムIDとして扱う数値のパラメーターです。 * @param title システムのタイトルとして扱う文字列のパラメーターです。 * @param summary システムの情報として扱う文字列のパラメーターです。 */ @route("/get") @card(#{ dataPath: "$", title: "ITシステム情報", file: "cards/item.json" }) @get op getItem(@query systemId?: integer, @query title?: string, @query summary?: string): Item[];GET 操作を行う API は、
action.tspにて上記のように定義されていますが、下記のパラメーターを指定して GET 操作を行い、IT システム情報を取得します。というコメントの部分がエージェントからのメッセージへ反映されていることが分かります。
また、API 連携を行う際のパラメーターについても、systemId、title、summaryそれぞれのパラメーターへ指定する値も表示されていることが分かります。このように、API 連携を行う前に、何のリクエストを行うか、パラメーターとして何を指定するか、という具体的な内容も確認することができます。 -
API 連携が行われ、連携した内容が表示されることを確認します。また、エージェントからの回答の末尾には Adaptive Card が表示されていることを確認します。

-
Adaptive Card の [API のリファレンス] をクリックします。
これは、Adaptive Card でユーザーがクリックできるリンクとして、httpbin.org へのリンクを設定しています。
-
httpbin.org の Web サイトが表示されることを確認します。

出典:「httpbin.org」 https://httpbin.org/ (参照日:2025.07.23)
4-3. API 連携 (POST)
-
Copilot Chat (https://m365.cloud.microsoft/chat/) へアクセスし、ビルドしたエージェントをクリックします。

4-4. API 連携 (DELETE)
-
Copilot Chat (https://m365.cloud.microsoft/chat/) へアクセスし、ビルドしたエージェントをクリックします。

4-5. WEB 検索
-
Copilot Chat (https://m365.cloud.microsoft/chat/) へアクセスし、ビルドしたエージェントをクリックします。

4-6. コードインタプリタ (グラフ作成)
-
Copilot Chat (https://m365.cloud.microsoft/chat/) へアクセスし、ビルドしたエージェントをクリックします。

4-7. コードインタプリタ (ワードクラウド作成)
-
Copilot Chat (https://m365.cloud.microsoft/chat/) へアクセスし、ビルドしたエージェントをクリックします。

おわりに
Microsoft 365 Agents Toolkit & SDK を利用することで、独自の カスタム AI エージェントを構築し、Microsoft 365 プラットフォーム上で展開することが可能になりました。Toolkit は素早く簡単にエージェントを立ち上げる手段を提供し、SDK は強力で柔軟なエージェントを作り込む開発基盤を提供します。
本記事では、宣言型エージェントを作成し、API 連携を行いましたが、他の機能を実装することや、他のサービスと連携することも可能です。
また、AI エージェントを作成する方法の紹介として、Microsoft 社から下記の Web サイトにて様々な情報が公開されています。
こちらの Web サイトには、目的に応じてどの AI エージェントを作成すれば良いかというフローチャートも記載されているため、自身の目的に合わせて AI エージェントの作成方法を学ぶことができます。自身も上記の Web サイトなどを通して、AI エージェントなどの生成 AI に関するスキルを高めていこうと考えております。
本記事が AI エージェントを作成する際の手助けとなれば幸いです。
記載されている会社名、製品名、サービス名は、各社の商標または登録商標です。





























