Microsoft 365 Agents SDK documentationとは?互換性・導入条件・2026年7月の注意点

Microsoft 365 Agents SDK documentationの更新を見て、「既存のボットやAIエージェントをすぐ改修すべきか」「Microsoft 365 Copilotのライセンスが必要なのか」と迷う担当者も多いでしょう。

結論から言えば、2026年7月7日付の公式情報だけを理由に、既存のMicrosoft 365 Agents SDK実装を一律で変更する必要はありません。7月7日付で更新された公式ページは、名称がよく似た「Microsoft Agent 365 SDK」の説明であり、Microsoft 365 Agents SDKを置き換えるものではないためです。Microsoft Agent 365 SDKは、既存エージェントへID、監査、通知、ガバナンスなどを追加する補完レイヤーとして位置付けられています。(マイクロソフトラーニング)

ただし、Azure Bot Frameworkから移行する場合、Python SDKを更新する場合、Microsoft 365 CopilotでOAuthを利用する場合は、互換性の確認や再テストが必要です。本記事では、2つのSDKの違い、既存実装への影響、導入条件、テストで見落としやすいポイントを実務目線で整理します。

目次

Microsoft 365 Agents SDK documentationで最初に確認すべき結論

対応が必要かどうかは、ドキュメントが更新された日付ではなく、現在の実装がどのSDK、パッケージ、認証方式、チャネルに依存しているかで判断します。

現在の状況対応要否最初に実施すること
Microsoft 365 Agents SDKを利用していない原則不要新規エージェント開発で必要かを評価する
安定版パッケージを固定し、既存テストも通っている緊急対応は不要リリースノートと依存関係を定期確認する
Azure Bot Frameworkから移行予定対応が必要非対応機能と代替手段を洗い出す
Adaptive DialogsやBot Framework Composerを利用中設計変更が必要単純移植ではなく会話設計を見直す
Pythonの旧インポート形式を利用中SDK更新時に修正が必要microsoft.agentsの利用箇所を検索する
Microsoft 365 Copilot WebでOAuthを利用再テストを推奨実チャネルでサインインとトークン交換を確認する
エージェントの監査や組織統制を強化したい別途評価が必要Microsoft Agent 365 SDKの追加を検討する

Microsoft 365 Agents SDKはAzure Bot Framework SDKの発展形ですが、Adaptive Dialogs、Composerの成果物、旧Bot Framework CLI、従来のストリーミング接続などは、そのまま移行できません。また、Pythonではインポート構造の変更が明示されています。(マイクロソフトラーニング)

Microsoft 365 Agents SDK documentationとは

Microsoft 365 Agents SDK documentationは、C#、JavaScript、Pythonで会話型エージェントを構築するための公式ドキュメントです。クイックスタート、サンプル、ローカルテスト、Azureへの展開、各言語のリファレンスがまとめられています。(マイクロソフトラーニング)

Microsoft 365 Agents SDKの主な役割は、ユーザーとエージェント本体の間に入る「通信・状態管理の基盤」です。

Teams/Microsoft 365 Copilot/Web/Slack
                ↓
            Activity
                ↓
     Microsoft 365 Agents SDK
                ↓
  業務ロジック/LLM/オーケストレーター
                ↓
            応答を返す

各チャネルから届くメッセージは、共通形式であるActivityに正規化されます。その後、メッセージ、ユーザー参加、イベントなどの種類に応じてハンドラーへ振り分けられ、応答が元のチャネルへ返されます。SDKは認証、メッセージ形式の変換、チャネル接続、会話状態の管理を担当します。(マイクロソフトラーニング)

一方、Microsoft 365 Agents SDK自体は次のものではありません。

  • AIモデル
  • プロンプトや推論を管理するオーケストレーター
  • ノーコードでエージェントを作るサービス
  • 回答内容を自動的に決める仕組み

Azure AI Foundry、Semantic Kernel、OpenAI Agents、LangChain、独自ロジックなどを組み合わせ、SDKの外側で回答生成やツール実行を実装します。AIサービスを固定しない設計である点が、Microsoft 365 Agents SDKの特徴です。(マイクロソフトラーニング)

2026年7月7日更新の正体はMicrosoft Agent 365 SDK

名称が似ているため、次の2つを混同しないことが重要です。

指定されたMicrosoft 365 Agents SDKの概要ページは2026年4月29日、Azureへの展開ページは2026年5月14日が更新日です。一方、2026年7月7日付で更新されているのは「Microsoft Agent 365 SDK and CLI」および「Microsoft Agent 365 SDK Overview」です。(マイクロソフトラーニング)

比較項目Microsoft 365 Agents SDKMicrosoft Agent 365 SDK
主な目的会話型エージェントの構築、ホスト、チャネル接続既存エージェントへの企業向け機能の追加
エージェントの作成・ホスト対応する作成・ホストは行わない
主な機能Activity処理、状態管理、ストレージ、認証、チャネル抽象化Agent Identity、通知、監査、OpenTelemetry、管理されたMicrosoft 365データ利用
対応する基盤C#、JavaScript、PythonのAgents SDK実装任意のSDK、プラットフォーム、クラウド
既存実装との関係エージェント本体の実装基盤既存エージェントに追加する補完レイヤー
導入判断マルチチャネル対応やBot Framework移行時組織統制、監査、ID管理を強化するとき

Microsoft Agent 365 SDKは、Microsoft Entraに基づくエージェントID、OpenTelemetryによる可観測性、Microsoft 365アプリからの通知、管理されたMCPサーバーへのアクセス、管理者承認済みのブループリントなどを提供します。ただし、エージェント本体を作成したり、ホストしたりするSDKではありません。公式にも、Microsoft 365 Agents SDKを置き換えず、ガバナンスやライフサイクル管理を上乗せする関係であることが明記されています。(マイクロソフトラーニング)

したがって、2026年7月7日の情報は、Microsoft 365 Agents SDKに破壊的変更が一斉適用されたという意味ではありません。既存エージェントに企業向けの管理機能を追加するかどうかを、別レイヤーとして検討する更新です。

Azure Bot Frameworkからの仕様差分

Microsoft 365 Agents SDKはAzure Bot Frameworkの考え方を受け継いでいます。Activity、ハンドラー、会話状態、チャネルといった基本概念は似ていますが、ソースコードやパッケージを変更せずに置き換えられるわけではありません。

既存の機能・構成Microsoft 365 Agents SDKでの扱い実務上の対応
BotFrameworkAdapter削除済みCloudAdapterを前提に認証と処理経路を見直す
Adaptive Dialogs非対応会話フローをハンドラーやLLMオーケストレーションで再設計する
Bot Framework Composer成果物直接移行できないComposer依存部分を分解して再実装する
旧Application Insights統合モダンな可観測性へ移行ログ、メトリクス、トレースの設計をやり直す
ASP.NET WebAPI旧方式は非対応現行のASP.NET Core Web APIへ移行する
Bot Framework CLI、Yeoman生成非推奨・非対応Microsoft 365 Agents Toolkitを利用する
LUIS、Orchestrator、QnA Maker旧AIツールとして非継承LLM、RAG、現行サービスへ置き換える
従来のStreaming Connections互換性なしストリーミング処理を新SDK向けに再設計する

特にAdaptive DialogsやComposerを大規模に利用しているボットは、パッケージ名を変更するだけでは移行できません。既存のダイアログを「入力判定」「状態管理」「外部処理」「応答生成」に分解し、どこを通常コード、どこをLLM、どこをワークフローとして実装するかを決める必要があります。(マイクロソフトラーニング)

JavaScriptでは、旧パッケージとの主な対応関係も示されています。

旧パッケージ新しいパッケージ
botframework-schema@microsoft/agents-activity
botbuilder@microsoft/agents-hosting
botbuilder-dialogs@microsoft/agents-hosting-dialogs
botbuilder-azureのBlob関連@microsoft/agents-hosting-storage-blob
botbuilder-azureのCosmos DB関連@microsoft/agents-hosting-storage-cosmos

パッケージの役割は近くても、初期化方法、依存性注入、認証設定、ルーティングAPIが異なる可能性があります。置換表を機械的な検索・置換に使うのではなく、移行対象を洗い出すために使うのが適切です。(GitHub)

言語別の導入条件と互換性

Microsoft 365 Agents SDK documentationを利用する際は、単一ページの必要バージョンだけを見て環境を決めないことが重要です。2026年7月19日時点では、概要ページ、クイックスタート、言語別リポジトリでランタイム要件の記載に差があります。

言語公式情報に記載された条件新規構築時の実務的な基準主な互換性確認
C#/.NET.NET 8.0以上.NET 8以上と安定版NuGetを使用DI登録、認証、CloudAdapter、状態管理
JavaScript/TypeScript概要はNode.js 18以上、リポジトリは20以上、クイックスタートは22以上Node.js 22以上を基準にCIでも固定CommonJS/ESM、OAuth、パッケージのengines
Python概要は3.9~3.11、リポジトリは3.10~3.14で3.11以上を推奨Python 3.11以上を基準に仮想環境を固定インポート名、依存パッケージ、非同期処理

公式概要ではNode.js 18以上、Python 3.9~3.11とされています。一方、JavaScriptの公式リポジトリではNode.js 20以上、JavaScriptクイックスタートではNode.js 22以上です。Pythonの公式リポジトリでは3.10~3.14をサポートし、3.11以上が推奨されています。(マイクロソフトラーニング)

このような記載差がある場合は、次の優先順位で判断すると安全です。

  1. 実際に導入するパッケージの依存条件
  2. 対象バージョンのリリースノート
  3. 言語別の公式リポジトリ
  4. 対象言語の最新クイックスタート
  5. SDK全体の概要ページ

CI/CDではランタイムを固定し、ローカル環境だけ新しいバージョンへ更新しないようにします。JavaScriptならpackage-lock.json、Pythonならロックファイルやrequirementsファイル、.NETなら中央パッケージ管理などを利用し、開発・検証・本番で同じ依存関係を再現できる状態にします。

Pythonではインポート名の変更に注意

Python版では、インポート構造が次のように変更されています。

# 旧形式
from microsoft.agents import ...

# 新形式
from microsoft_agents.activity import Activity
from microsoft_agents.hosting.core import TurnContext

公式リポジトリでは、この変更が破壊的変更として明示されています。SDK更新後に起動時のModuleNotFoundErrorが発生する場合は、パッケージのインストールだけでなく、ソースコード内のmicrosoft.agentsをリポジトリ全体で検索してください。(GitHub)

ベータ版やNightly版を本番へ直接入れない

.NETのNightlyパッケージはバージョン末尾が-betaとなり、最新コードを早く試せる一方、安定性は保証されていません。JavaScriptの@nextも開発中の機能を含む可能性があります。(GitHub)

本番環境では安定版を明示的に固定し、ベータ版は検証ブランチや専用環境でのみ試す運用が安全です。

Microsoft 365 Agents SDKの導入条件

ローカル開発だけならMicrosoft 365 Copilot契約は必須ではない

Microsoft 365 Copilotは対応チャネルの一つです。SDKの利用開始やWeb、ローカル環境での開発だけであれば、Microsoft 365 Copilotのサブスクリプションは必須ではありません。Microsoft 365 Copilotを実際の公開先やテスト先として使用する場合は、そのチャネルに必要な契約や環境が必要です。(GitHub)

ローカル開発では、一般に次の環境を用意します。

  • C#、JavaScript、Pythonのいずれかの対応ランタイム
  • Visual StudioまたはVisual Studio Code
  • 使用言語に対応するAgents SDKパッケージ
  • /api/messagesを受け付けるローカルWebアプリ
  • Microsoft 365 Agents Playground
  • 認証テストを行う場合はMicrosoft Entra IDのアプリ登録

Microsoft 365 Agents Toolkitを使うと、プロジェクト生成、ローカルテスト、デプロイ設定、認証設定の一部を自動化できます。Agents Playgroundによる匿名のローカルシミュレーションでは、Microsoft 365開発者テナント、トンネリングサービス、アプリ登録を用意せずに基本動作を確認できます。(マイクロソフトラーニング)

Agents Playgroundの基本的な使い方

現在の専用テストページでは、Windows版のスタンドアロンツールまたはnpmパッケージを利用します。

winget install agentsplayground

または、npmを利用します。

npm install -g @microsoft/m365agentsplayground

エージェントが既定の3978番ポートで動いている場合は、次のように接続します。

agentsplayground -e "http://localhost:3978/api/messages" -c "emulator"

匿名モードでは追加の認証設定は不要です。認証を含めてテストする場合は、Agents Playground側とエージェント側の両方にMicrosoft Entra IDのアプリ登録が必要です。(マイクロソフトラーニング)

TeamsやMicrosoft 365 Copilotへ公開する条件

公式の手動展開手順では、Agents SDKアプリをWebアプリとしてAzureへ配置し、Azure Botリソースのメッセージングエンドポイントへ接続します。

https://{公開先ホスト名}/api/messages

TeamsまたはMicrosoft 365 Copilotへ公開する場合は、主に次の作業が必要です。

  1. エージェントをAzure App Serviceまたはコンテナーへ展開する
  2. Azure Botリソースを作成して認証を構成する
  3. メッセージングエンドポイントを設定する
  4. Azure BotリソースにMicrosoft Teamsチャネルを追加する
  5. Teamsアプリマニフェストを作成する
  6. Microsoft 365管理センターの「統合アプリ」からカスタムアプリをアップロードする
  7. 組織のアプリ利用ポリシーや承認手順を確認する

TeamsやMicrosoft 365 Copilotで利用するマニフェストは、すべての機能に共通する一つのテンプレートではありません。タブ、メッセージ拡張、SSOなど、使用する機能に応じて必要項目が変わります。マニフェストもソースコードと同様にバージョン管理し、変更時には権限と公開範囲を再確認してください。(マイクロソフトラーニング)

テスト時に見落としやすい注意点

匿名テストが成功しても認証成功とは限らない

Agents Playgroundの匿名モードは、メッセージの受信、ルーティング、応答生成を早く確認する用途に適しています。しかし、次の処理は匿名テストだけでは保証できません。

  • Microsoft Entra IDによるサインイン
  • SSO
  • OAuthトークン交換
  • ユーザーごとの権限判定
  • Microsoft GraphやMicrosoft 365データへのアクセス
  • 管理者同意が必要なアクセス許可

最低でも、匿名モードと認証モードを分けてテストしてください。

チャネルごとにActivityの内容が異なる

Agents Playgroundでは、emulator、webchat、msteamsなどのチャネルIDを指定できます。公式ドキュメントでも、チャネルによってユーザー体験とActivityのプロパティが異なると説明されています。(マイクロソフトラーニング)

次のようなコードは、ローカルエミュレーターでは動いても、実チャネルで想定外の結果になることがあります。

  • channelIdを完全一致で判定している
  • channelDataの存在を前提にしている
  • Teams固有のユーザーIDを他チャネルでも使っている
  • 添付ファイルのURL形式を固定している
  • メンション情報が必ず存在すると仮定している

共通ロジックとチャネル固有ロジックを分離し、実際に公開するチャネルごとにテストケースを用意することが重要です。

Microsoft 365 Copilot WebのOAuthは実チャネルで確認する

JavaScript SDKでは、Microsoft 365 Copilot Webが複合形式のchannelIdを送信するため、OAuthトークン交換時に基底チャネルを使用する修正が行われています。これは、一般的なエミュレーターテストだけでは見つけにくい問題です。(GitHub)

Microsoft 365 Copilot Webで認証を利用する場合は、次の一連の動作を実環境で確認してください。

  1. サインインカードが表示される
  2. ユーザーが認証を完了できる
  3. トークン交換が成功する
  4. 必要なスコープだけが付与される
  5. トークン失効後に再認証できる
  6. サインインをキャンセルしても会話を継続できる

クイックスタートとテスト専用ページのコマンドを混在させない

一部のクイックスタートには、旧パッケージ名である@microsoft/teams-app-test-toolとteamsapptesterコマンドが残っています。一方、専用のローカルテストページでは@microsoft/m365agentsplaygroundとagentsplaygroundが案内されています。(マイクロソフトラーニング)

手順を実行する際は、一つのページからコマンドを断片的にコピーするのではなく、次の情報をセットで記録してください。

  • 参照したページの更新日
  • SDKパッケージのバージョン
  • Playgroundのパッケージ名とバージョン
  • Node.jsやPythonなどのランタイム
  • 実行したコマンド
  • 使用したサンプルのコミットまたはタグ

MemoryStorageの成功を本番運用の根拠にしない

クイックスタートでは、会話状態の保存にMemoryStorageが使われています。これは動作確認には便利ですが、本番の永続化設計を代替するものではありません。クイックスタートの成功後は、Blob Storage、Cosmos DBなど、要件に合った永続ストレージへ切り替えてください。(マイクロソフトラーニング)

特に次のテストが必要です。

  • アプリ再起動後も会話状態を復元できるか
  • 複数インスタンスで状態が競合しないか
  • 同一会話へ同時にメッセージが届いた場合に破損しないか
  • ストレージ障害時に再試行やエラー通知が機能するか
  • スキーマ変更後も既存データを読み込めるか

.NET SDKでは、ストリーミング時のAgentStateのスレッド安全性や、配列を含む状態データのシリアライズに関する修正も行われています。状態管理を使うアプリでは、正常系だけでなく同時実行と再起動を含む負荷テストが重要です。(GitHub)

シークレットをコマンド履歴やリポジトリへ残さない

公式手順では--client-secretをコマンドライン引数として渡す例も示されていますが、共有PCやCI/CDで直接指定すると、シェル履歴や実行ログに残る可能性があります。

ローカルではユーザー単位のシークレット管理、CI/CDではシークレットストアやワークロードIDを利用し、次の情報をGitへ登録しないようにします。

  • クライアントシークレット
  • テナント固有の認証情報
  • 接続文字列
  • ストレージキー
  • APIキー
  • 開発用の一時トークン

実施すべき最小テストセット

Microsoft 365 Agents SDKを更新または移行する場合は、少なくとも次のテストを実施します。

テスト確認内容
起動テスト依存関係、設定値、DI登録、エンドポイント
メッセージテスト通常メッセージ、空文字、長文、特殊文字
Activityテストメッセージ、参加、退出、イベント、インストール更新
状態管理テスト複数ターン、再起動、同時実行、期限切れ
認証テストログイン、キャンセル、失効、再認証、権限不足
チャネルテストemulator、Web Chat、Teams、Microsoft 365 Copilot
添付ファイルテストファイル、画像、サイズ超過、不正形式
障害テストLLM停止、外部API遅延、ストレージ停止、タイムアウト
デプロイテストAzure Bot接続、マニフェスト、管理者承認、公開範囲
ロールバックテスト旧バージョンへ安全に戻せるか

LLMの回答品質だけを確認してテスト完了としないことがポイントです。Agents SDKが担当するのは、通信、認証、Activity処理、状態管理、チャネル接続であるため、これらを独立したテスト項目として扱う必要があります。

安全に導入・更新するための管理策

パッケージとランタイムの組み合わせを台帳化する

プロジェクトごとに、最低限次の情報を記録します。

管理項目記録例
SDK言語C#、JavaScript、Python
SDKパッケージMicrosoft.Agents.*など
固定バージョン本番で使用している正確なバージョン
ランタイム.NET、Node.js、Pythonのバージョン
公開チャネルTeams、Microsoft 365 Copilot、Web
認証方式シークレット、証明書、マネージドID
状態保存先Memory、Blob、Cosmos DBなど
AI基盤Azure AI Foundry、Semantic Kernel、外部LLMなど
最終テスト日チャネル別の実施日
ロールバック先直前の安定版

「SDKは最新版」とだけ記録すると、障害時に環境を再現できません。正確なバージョンと組み合わせを残してください。

更新を自動適用しない

Dependabotなどで更新候補を検出することは有効ですが、Agents SDKを本番へ自動マージする運用は避けた方が安全です。

特に次の変更を含む場合は、人による確認と実チャネルテストを必須にします。

  • 認証やOAuth関連
  • Activityモデルやシリアライズ
  • 会話状態やストレージ
  • チャネル固有処理
  • マニフェスト
  • ストリーミング
  • プロアクティブメッセージ
  • パッケージ名や名前空間

マニフェストと権限をコードレビュー対象にする

TeamsやMicrosoft 365 Copilotのマニフェスト変更は、単なる表示設定ではありません。エージェントの機能、公開範囲、ドメイン、SSO、権限に影響します。

ソースコードと同様にプルリクエストで差分を確認し、開発担当者だけでなくMicrosoft 365管理者やセキュリティ担当者も確認できるフローを作ります。

組織統制が必要ならMicrosoft Agent 365 SDKを別途評価する

次の要件がある場合は、Microsoft 365 Agents SDKの置き換えではなく、Microsoft Agent 365 SDKの追加を検討します。

  • エージェントごとに一意の企業IDを付与したい
  • LLM呼び出しやツール利用を監査したい
  • Teams、Outlook、Wordなどから通知を受けたい
  • Microsoft 365データへのアクセスを管理者の統制下に置きたい
  • エージェントの作成、配布、廃止をライフサイクル管理したい
  • 未承認エージェントの利用を抑止したい

Microsoft Agent 365 SDKは、任意のエージェント基盤へ企業向け機能を追加できます。Microsoft 365 Agents SDKで構築したエージェントにも追加できますが、ID、アクセス許可、ログの保存先、管理者承認などを含む別の導入設計が必要です。(マイクロソフトラーニング)

対応要否を判断するチェックリスト

まず、対象リポジトリ全体から次の文字列を検索してください。

botbuilder
Microsoft.Bot.Builder
BotFrameworkAdapter
AdaptiveDialog
microsoft.agents
@microsoft/teams-app-test-tool
teamsapptester

検索結果を基に、対応を次の3段階へ分類します。

緊急対応は不要

次の条件をすべて満たす場合は、直ちに本番コードを変更する必要はありません。

  • Microsoft 365 Agents SDKの安定版を固定している
  • Azure Bot Frameworkの非対応機能を使用していない
  • 現在のランタイムがパッケージ要件を満たしている
  • 認証と実チャネルのテストが成功している
  • 2026年7月7日のAgent 365 SDK機能を直ちに必要としていない

この場合は、依存関係の台帳化と定期的なリリースノート確認を行います。

計画的な更新と再テストが必要

次のいずれかに該当する場合は、検証環境でSDK更新を試します。

  • Node.js、Python、.NETのバージョンが古い
  • Quickstartをコピーしたままパッケージを固定していない
  • Pythonで旧インポート名を使っている
  • OAuthやSSOを利用している
  • TeamsとMicrosoft 365 Copilotの両方へ公開している
  • MemoryStorageから永続ストレージへ移行していない
  • ベータ版やNightly版を利用している

再設計を伴う移行が必要

次の機能に強く依存している場合は、単純なSDK更新ではなく移行プロジェクトとして扱います。

  • Adaptive Dialogs
  • Bot Framework Composer
  • BotFrameworkAdapter
  • LUIS、QnA Maker、Orchestrator
  • 旧Bot Framework CLI
  • 従来方式のStreaming Connections
  • 旧ASP.NET WebAPI
  • 独自改変したBot Frameworkミドルウェア

最初に行うべきことは、本番パッケージの即時更新ではありません。現在のSDK、ランタイム、旧Bot Framework依存、公開チャネル、認証方式を一覧化することです。そのうえで、匿名ローカル、認証付きローカル、Teams、Microsoft 365 Copilotの順にテスト範囲を広げます。

2026年7月7日付のMicrosoft Agent 365 SDK情報は、既存のMicrosoft 365 Agents SDKを廃止・置換する更新ではありません。エージェント本体の互換性確認と、企業向けガバナンス機能の追加判断を分けて進めることが、不要な改修とテスト漏れを防ぐ最も確実な対応です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次