Microsoft 365 Agents SDK (.NET)
Build Microsoft 365 Agents with .NET
Microsoft 365用のマルチチャネルエージェントを構築するには、Microsoft.Agents SDKホスティングモデル、認証パターン、ルーティングアーキテクチャを理解する必要があります。このスキルでは、ASP.NET Coreホスティング、MSAL認証、Copilot Studio統合のための本番対応コード例を提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「Microsoft 365 Agents SDK (.NET)」を使用しています。 ユーザー入力をエコーするメッセージハンドラーを持つAgentApplicationサブクラスを作成します
期待される結果:
OnActivity(ActivityTypes.Message, OnMessageAsync)を登録するコンストラクタと、エコーメッセージをを含むturnContext.SendActivityAsyncを呼び出すOnMessageAsyncメソッドを持つAgentApplicationを継承するC#クラスを生成します。
「Microsoft 365 Agents SDK (.NET)」を使用しています。 TokenValidationとServiceConnectionを含むappsettings.jsonを生成します
期待される結果:
TokenValidationセクション(Enabled、Audiences配列、TenantIdを含む)とapi.botframework.com用のAuthType、ClientId、ClientSecret、AuthorityEndpoint、Scopesを含むConnectionsセクションを持つJSON設定を生成します。
「Microsoft 365 Agents SDK (.NET)」を使用しています。 本番環境で/api/messagesエンドポイントに認可を追加する方法を示す
期待される結果:
開発環境以外で認証を強制するために、if (!app.Environment.IsDevelopment()) { incomingRoute.RequireAuthorization(); }でPOSTルートをラップすることを示します。
セキュリティ監査
安全Documentation-only skill with no executable code. Contains C# code examples and configuration templates for Microsoft 365 Agents SDK. No scripts, network operations, file system access, or external commands detected. Static analysis correctly identified this as a prompt-only skill with zero security risk.
品質スコア
作れるもの
認証付きTeamsボットの作成
MSALでユーザーを認証し、Microsoft Teamsチャネルでメッセージに応答する本番対応ASP.NET Core botを生成します。
Copilot Studioとの統合
委任トークンを使用した直接エンジンクライアントパターンでCopilot Studioに接続するコンソールまたはWebアプリケーションを構築します。
エージェントエラー処理の実装
適切なクリーンアップと会話終了フローを備えたAgentApplicationサブクラスに包括的なエラー処理と状態管理を追加します。
これらのプロンプトを試す
Microsoft.Agents SDK bot用のASP.NET Core Minimal APIホストを生成します。AddAgentApplicationOptions、MyAgentクラスのAddAgent、MemoryStorage、AddAgentAspNetAuthentication、IAgentHttpAdapterを含むPOST /api/messagesエンドポイントを含めます。
歓迎メッセージ用のOnConversationUpdate、アクティビティハンドラーメソッドにルーティングされるOnActivity(ActivityTypes.Message)、状態クリーンアップ付きのOnTurnErrorを持つSupportAgentというAgentApplicationサブクラスを作成します。
MSAL PublicClientApplicationでトークンを取得し、AcquireTokenSilentからAcquireTokenInteractiveにフォールバックするDelegatingHandler called AddTokenHandlerを作成します。Bearerヘッダー注入とCopilotClient.ScopeFromSettingsの使用を含めます。
AddHttpClientでCopilotClientを登録し、カスタムDelegatingHandler for tokensを使用し、StartConversationAsyncとAskQuestionAsyncでCopilot Studioと対話するHostApplicationBuilderコンソールアプリケーションを生成します。
ベストプラクティス
- ルーティングロジック、イベントハンドラー、エラー処理を1つの場所に集中させるためにAgentApplicationベースクラスを使用し、ミドルウェアに散らばることを避けてください。
- 本番デプロイでは、サーバー再起動間で会話状態を維持するために、MemoryStorageの代わりにBlobStorageやCosmosDbStorageなどの永続化ストレージを使用してください。
- appsettings.jsonでTokenValidationを有効にし、/api/messagesエンドポイントにRequireAuthorizationを適用して、エージェントへの不正アクセスを防止してください。
回避
- Azure Key Vault、環境変数、マネージドIDなどの構成プロバイダーの代わりに、ClientSecretやその他の認証情報をコードに直接格納すること。
- IHttpClientFactoryを使用してHTTP接続を効率的に登録して再利用する代わりに、各リクエストに対して新しいHttpClientインスタンスを作成すること。
- 非同期SDKメソッドを適切にawaitし、CancellationTokenを渡す代わりに、.Resultや.Wait()を使用して非同期呼び出しを同期的にブロックすること。