Agent observabilityとは?Microsoft Agent 365で変わる監視・権限・移行ポイント

Agent observabilityは、Microsoft Agent 365で動くAIエージェントの「呼び出し」「ツール実行」「推論」「出力」を追跡し、管理者がMicrosoft 365管理センター、Microsoft Defender、Microsoft Purviewで監査・調査しやすくするための仕組みです。今回の公式情報で特に重要なのは、開発者はMicrosoft OpenTelemetry Distroを使った実装を優先し、既存実装を更新する場合はAgent365.Observability.OtelWrite権限やトークン解決、tenant ID / agent IDの伝播を必ず確認する必要がある点です。(Microsoft Learn)

AIエージェントは、ユーザーの質問に答えるだけでなく、メール検索、ファイル参照、外部API呼び出し、他エージェントとの連携まで行うようになっています。つまり、障害調査では「エラーが出たか」だけでなく、「どのエージェントが、誰の依頼で、どのツールを、どのテナント権限で、どのモデルに対して使ったか」を追えることが重要になります。Agent observabilityは、この追跡性をMicrosoft 365の管理・監査の文脈に乗せるための実装ポイントです。

目次

MicrosoftのAgent observabilityで何が変わるのか

Microsoftの公式情報では、Agent 365 ObservabilityはOpenTelemetryを土台にし、Agent 365、Microsoft Foundry、Azure Monitorなどをまたいでテレメトリを扱う方向に整理されています。特に「Microsoft OpenTelemetry Distro」が推奨されており、従来の個別パッケージや個別設定をまとめ、1つの導入体験でトレース、メトリック、ログを収集できる構成になっています。既存のAgent 365 Observability SDKによる実装は破壊的変更なしに継続利用できるとされていますが、新規実装や将来の標準化を考えるなら、Microsoft OpenTelemetry Distroへの移行方針を確認しておくべきです。(Microsoft Learn)

実務上の変更点は、次の3つに集約できます。

観点これまで起きやすかった課題今回確認すべきこと
実装方式言語やフレームワークごとに監視実装が分散しやすいMicrosoft OpenTelemetry Distroで統一できるか確認する
管理者の可視化エージェントの実行履歴、ツール呼び出し、推論の追跡が不足しやすいMicrosoft 365管理センターでActivityにセッションやツール呼び出しが出るか確認する
認証・権限トークン、スコープ、Entra権限の不足でエクスポートが失敗しやすいAgent365.Observability.OtelWrite、token resolver、管理者同意を確認する

ここで重要なのは、Agent observabilityが単なるログ出力ではないことです。アプリケーションログのように「処理が成功した」「例外が出た」を記録するだけでは、AIエージェントのガバナンスには足りません。エージェントの呼び出し、ツールの引数と結果、モデル推論、トークン使用量、最終出力を、同じリクエストの文脈でつなげて見る必要があります。

影響を受けるエージェントと対象範囲

公式ドキュメントでは、Agent 365 observabilityの対象として、Microsoft Agent 365-enabled agents、Custom engine agents、Declarative agentsが示されています。Microsoft Agent 365-enabled agentsとCustom engine agentsではSDKによるインストルメンテーションが必要で、Declarative agentsは標準で可観測性がサポートされ、SDK実装は不要とされています。(Microsoft Learn)

エージェント種別開発者の対応管理者の確認ポイント
Microsoft Agent 365-enabled agentsSDKまたはMicrosoft OpenTelemetry Distroで実装管理センター上でアクティビティが確認できるか
Custom engine agents呼び出し、ツール、推論、出力を明示的に計測tenant ID / agent IDが正しく付与されているか
Declarative agentsSDK実装は不要組織の監査・管理要件に合う形で可視化されているか

特に注意したいのは、カスタムエンジン型のエージェントです。独自ランタイムや外部フレームワークを使っている場合、「動作はしているが管理センターに何も出ない」という状態になりやすくなります。この場合、アプリケーション側のログだけを見ても原因が分からず、Agent 365 exporterの有効化、token resolver、BaggageBuilderによるID伝播を順番に確認する必要があります。

開発者が最初に確認すべき実装方針

新規開発なら、まずMicrosoft OpenTelemetry Distroを検討します。Distroは.NET、Node.js、Pythonをサポートし、Agent 365、Azure Monitor、OTLP互換バックエンドにテレメトリを送れる構成です。Pythonではmicrosoft-opentelemetry、Node.jsでは@microsoft/opentelemetry、.NETではMicrosoft.OpenTelemetryを利用する形で説明されています。(Microsoft Learn)

既存エージェントを運用中の場合は、いきなり全面移行するより、次の順で棚卸しすると安全です。

確認項目判断基準対応の目安
現在の実装既存のAgent 365 Observability SDKを使っているか破壊的変更はないため、まず動作継続を確認
対象言語Python、Node.js、.NETのどれかDistroの対応状況に合わせて移行計画を作る
利用フレームワークSemantic Kernel、OpenAI、Agent Framework、LangChainなど自動インストルメンテーション対応可否を確認
監査要件Defender / Purviewで見たいかPurview監査、Defender Advanced Huntingの準備も確認
ストア公開Agent 365 Store公開を想定するか必須スコープの実装漏れを事前検証

Distroを使う場合でも、エージェント固有の操作をすべて自動で推測できるわけではありません。HTTPやAzure SDKのような一般的なアプリケーション計測は自動化しやすい一方、エージェントの呼び出し、ツール実行、推論、非同期出力の意味付けは、必要に応じて手動スコープで補う必要があります。(Microsoft Learn)

必須になる4つのスコープを理解する

Agent observabilityの実装では、何をどの粒度で記録するかが重要です。公式ドキュメントでは、手動インストルメンテーション用にInvokeAgentScope、ExecuteToolScope、InferenceScope、OutputScopeが示されています。(Microsoft Learn)

スコープ記録する内容実務での使いどころ
InvokeAgentScopeエージェント呼び出し、入力、出力、ユーザー、会話IDユーザーがエージェントを呼び出した入口を追跡する
ExecuteToolScopeツール名、ツール種別、引数、結果メール検索、CRM更新、SharePoint参照などの外部操作を監査する
InferenceScopeモデル名、プロバイダー、入力・出力、トークン使用量Azure OpenAIなどの推論呼び出しを分析する
OutputScope非同期処理後の最終出力親スコープ終了後に結果が返るワークフローを補足する

ストア公開を想定する場合、InvokeAgentScope、InferenceScope、ExecuteToolScopeの実装が必要とされています。公開前には、コンソールログで必須属性が揃っているかを確認し、エージェントのログと属性一覧を突き合わせる必要があります。(Microsoft Learn)

たとえば、メール整理エージェントなら次のように考えると分かりやすくなります。

処理対応するスコープ記録したい情報
ユーザーが「上司からの重要メールを整理して」と依頼InvokeAgentScopeユーザー、会話ID、入力メッセージ、エージェントID
メール検索ツールを呼び出すExecuteToolScopeツール名、検索条件、ツール呼び出しID、結果
取得したメールを要約するInferenceScopeモデル名、入力・出力トークン、応答理由
整理結果を後からTeamsへ投稿OutputScope最終出力メッセージ、親スパンとの関連

この整理をしないまま「とりあえずログだけ出す」と、障害調査時に「どのツール呼び出しが問題だったのか」「モデル推論の前後で何が変わったのか」が追えません。AIエージェントでは、処理の成功・失敗だけでなく、意思決定に関係する操作の流れを再現できることが重要です。

自動インストルメンテーションの対応範囲

Agent observabilityでは、対応フレームワークを使っている場合、自動インストルメンテーションでテレメトリ収集を簡略化できます。公式情報では、.NETはSemantic Kernel、OpenAI、Agent Framework、PythonはSemantic Kernel、OpenAI、Agent Framework、LangChain、Node.jsはOpenAI、LangChainに対応する形で説明されています。対応状況は言語やSDKの実装により異なるため、利用中のフレームワークごとに確認が必要です。(Microsoft Learn)

言語主な対応フレームワーク注意点
PythonSemantic Kernel、OpenAI Agents SDK、Agent Framework、LangChain対応範囲が広いが、BaggageBuilderでIDを設定する必要がある
Node.jsOpenAI、LangChainSemantic KernelやAgent Frameworkは対象外として示されている箇所がある
.NETSemantic Kernel、OpenAI、Agent FrameworkLangChainは対象外として扱われている

自動インストルメンテーションを使っても、tenant IDとagent IDの設定を省略してはいけません。公式ドキュメントでは、サポート対象フレームワークでもBaggageBuilderを使ってagent IDとtenant IDを設定する必要があると説明されています。IDがないスパンはエクスポート前に除外され、管理センターに表示されない原因になります。(Microsoft Learn)

管理者が確認すべき設定と権限

管理者が最初に確認すべきなのは、「エージェントが動いているか」ではなく、「組織の管理画面・監査基盤にテレメトリが届く状態になっているか」です。

Agent 365 exporterを使う場合、token resolverが認証トークンを返す必要があります。Microsoft OpenTelemetry Distroでも、Agent 365 exporterは接続文字列ではなく、tenantに基づいてエンドポイントを検出し、agent IDとtenant IDに対してアクセストークンを返すtoken resolverを使います。(Microsoft Learn)

確認項目確認する場所失敗した場合に起きること
Agent 365 exporterが有効か環境変数、コード、appsettingsコンソール出力だけになり、サービスへ送信されない
token resolverが実装済みかアプリケーションコードエクスポートがスキップ、または401になる
tenant ID / agent IDが付与されるかBaggageBuilder、TurnContextスパンが送信前に破棄される
Agent365.Observability.OtelWrite権限があるかManaged Identityまたはアプリ登録HTTP 403でエクスポート失敗
Purview監査が有効かMicrosoft Purviewエクスポート成功後も監査ログで見えない
Defender Advanced Huntingが使えるかMicrosoft DefenderCloudAppEventsで調査できない

Microsoft Purviewでエージェントテレメトリを見るには組織で監査が有効である必要があり、Microsoft DefenderではAdvanced HuntingでCloudAppEventsテーブルへアクセスできる構成が必要です。エクスポート自体が成功していても、これらの前提が整っていないとDefenderやPurview側で見えないことがあります。(Microsoft Learn)

既存エージェント更新時の移行注意点

既存エージェントを更新する場合、最も見落としやすいのはAgent365.Observability.OtelWrite権限です。公式ドキュメントでは、既存エージェントを.NET 0.3-beta、Node.js 0.2.0-preview.1、Python 0.3.0以上へアップグレードする場合、Managed Identityまたはアプリ登録に新しいAgent365.Observability.OtelWrite権限を付与しないとHTTP 403でテレメトリのエクスポートに失敗すると説明されています。(Microsoft Learn)

プラットフォーム追加確認が必要な最小バージョン必要な対応
.NET0.3-betaAgent365.Observability.OtelWriteを付与
Node.js0.2.0-preview.1Agent365.Observability.OtelWriteを付与
Python0.3.0Agent365.Observability.OtelWriteを付与

権限付与は、Agent 365 CLIまたはMicrosoft Entra管理センターから行う方法が示されています。CLIを使う場合は、構成ディレクトリにa365.config.jsonとa365.generated.config.jsonがあり、Global AdministratorアカウントとAgent 365 CLI v1.1.139-preview以降が必要とされています。Entra管理センターで行う場合は、Blueprint app registrationに対してDelegated permissionsとApplication permissionsの両方でAgent365.Observability.OtelWriteを追加し、管理者同意を付与します。(Microsoft Learn)

実務では、次の順番で移行作業を進めると失敗を減らせます。

手順作業完了条件
事前確認現在のSDKバージョン、実行環境、認証方式を確認影響を受けるエージェント一覧がある
権限確認Managed Identityまたはアプリ登録の権限を確認Agent365.Observability.OtelWriteが付与されている
ローカル検証exporterを無効化し、コンソールへスパンを出す必須属性がログに出ている
ステージング検証exporterを有効化し、401/403/429/5xxを確認管理センターでActivityが見える
本番展開段階的にロールアウトエラー率、欠落スパン、遅延を監視できる

移行時に「権限だけ追加すればよい」と考えるのは危険です。tenant IDやagent IDがBaggageBuilderで正しく設定されていない場合、権限があってもスパンは送信対象になりません。逆に、BaggageBuilderが正しくてもtoken resolverが誤ったaudienceのトークンや期限切れトークンを返すと、401で失敗します。

Agent 365 CLIを使う場合の設定注意点

2026年5月13日に更新された関連公式情報では、Agent 365 CLIがMicrosoft Entra IDテナント内のカスタムクライアントアプリ登録を必要とすること、アプリ登録、リダイレクトURI、Application client ID、API権限、widsロールクレームの設定が整理されています。CLIでエージェントIDブループリントを扱う場合、開発者だけで完結せず、管理者ロールを持つ担当者との連携が必要になる場面があります。(Microsoft Learn)

CLI設定で特に重要なのは、Delegated permissionsを使う点です。公式ドキュメントでは、CLIは対話的にサインインし、ユーザーの代理として動作するため、Application permissionsではなくDelegated permissionsを使用する必要があると説明されています。(Microsoft Learn)

設定項目注意点
アプリ登録名Agent 365 CLIにすると、config-freeのa365 setup all --agent-nameで解決しやすい
アカウント種別Single tenantを使う
リダイレクトURIhttp://localhost:8400/、http://localhost、WAM用URIが必要
API権限Delegated permissionsを使う
beta権限Entra管理センターに表示されない場合がある
widsクレームCLIが管理者ロールを判定するために使う

beta権限がMicrosoft Entra管理センターに表示されない場合、Graph APIで権限を追加する方法が示されています。この場合、Graph APIのconsentType: "AllPrincipals"で管理者同意が付与されるため、その後にEntra管理センターの「Grant admin consent」を押すと、表示されないbeta権限が削除される可能性があります。これは設定ミスとして非常に起きやすいため、管理者向け手順書に明記しておくべきです。(Microsoft Learn)

ローカル検証と本番確認の流れ

Agent observabilityの実装後は、いきなり本番で管理センター表示だけを見るのではなく、まずローカルでスパンが生成されているか確認します。公式ドキュメントでは、ENABLE_A365_OBSERVABILITY_EXPORTERをfalseにするとスパンをコンソールへ出力でき、エクスポート失敗の調査では詳細ログを有効化してtoken解決、送信件数、HTTPステータス、correlation IDなどを見る流れが示されています。(Microsoft Learn)

検証の順番は次のとおりです。

段階目的見るべきポイント
ローカルスパン生成の確認入力、出力、tool call、model、tenant ID、agent IDが出ているか
ステージングエクスポートの確認HTTP 200、correlation ID、スキップされたスパン数
管理センター管理者視点の確認エージェントのActivityにsessionsとtool callsが出るか
Defender / Purviewセキュリティ・監査確認Purview監査、Defender Advanced Huntingの前提が満たされているか

Microsoft 365管理センターでは、エージェント一覧から対象エージェントを選び、Activityでsessionsとtool callsが見えることが確認ポイントとして示されています。(Microsoft Learn)

よくある失敗と対処法

Agent observabilityのトラブルは、実装ミスよりも「認証・ID伝播・前提設定」の抜けで起きることが多いです。代表的な症状と確認順を整理します。

症状主な原因最初に確認すること
管理センターにデータが出ないexporter未有効、設定ミス、token resolver不備Agent 365 exporterが明示的に有効か
スパンが送られないtenant IDまたはagent IDがないBaggageBuilderがスパン作成前に設定されているか
401 Unauthorizedtoken audience不一致、期限切れ、誤ったトークンtoken resolverが正しいBearer tokenを返すか
403 Forbiddenライセンス不足、権限不足Agent365.Observability.OtelWriteと管理者同意
429 / 5xx一時的なサービス・負荷問題リトライ、バッチ間隔、サービス正常性
Defender / Purviewに出ない表示側の前提不足Purview監査、Defender Advanced Hunting

HTTP 429や5xxについては、PythonとJavaScript SDKではHTTP 408、429、5xxに対して最大3回の指数バックオフリトライが行われる一方、.NET SDKでは自動リトライしないと説明されています。大量のツール呼び出しや推論を短時間に送信するエージェントでは、バッチ間隔や最大バッチサイズの調整も検討します。(Microsoft Learn)

なお、HTTP 403が出た場合は、ライセンス不足と権限不足を切り分けます。公式ドキュメントでは、Test – Microsoft 365 E7、Microsoft 365 E7、Microsoft Agent 365 Frontierのいずれかが必要なライセンスとして示されています。実際の契約や提供状況は時期やテナントにより変わる可能性があるため、導入前にMicrosoft 365管理センターや契約担当者で確認してください。(Microsoft Learn)

管理者と開発者で分担すべきこと

Agent observabilityは、開発者だけで完結する機能ではありません。開発者はスコープ実装やID伝播を担い、管理者はEntra権限、ライセンス、Purview、Defender、管理センター表示を確認する必要があります。

役割主な担当成果物
開発者SDK / Distro導入、スコープ実装、token resolver、ローカル検証スパンが生成され、必須属性が揃っている状態
Microsoft 365管理者ライセンス、Agent 365管理センター確認、管理者同意Activityでセッションとツール呼び出しが見える状態
Entra管理者アプリ登録、Managed Identity、API permissions、widsクレーム認証・権限エラーが出ない状態
セキュリティ担当Defender、Purview、監査要件、ログ保持ポリシー監査・調査に使えるクエリと運用手順
運用担当障害対応、429/5xx、タイムアウト、サービス正常性確認エクスポート失敗時の切り分け手順

導入プロジェクトでは、「エージェントを作る」タスクと「エージェントを観測できる状態にする」タスクを分けて管理すると失敗しにくくなります。特に本番展開前のチェックリストには、次の項目を入れてください。

  • InvokeAgentScope、ExecuteToolScope、InferenceScopeが必要な箇所に入っている
  • 非同期出力がある場合はOutputScopeで最終出力を補足している
  • tenant ID、agent ID、conversation IDがスパンに付与されている
  • token resolverが正しいスコープのBearer tokenを返す
  • Agent365.Observability.OtelWriteが必要なIDに付与されている
  • Purview監査とDefender Advanced Huntingの前提が確認済み
  • Microsoft 365管理センターでActivityを確認済み
  • 401、403、429、5xx、timeout時の一次対応手順がある

まず取るべき次のアクション

Microsoft Agent 365のAgent observability対応では、最初からすべてを作り込むより、対象エージェントを1つ選び、呼び出し、ツール実行、推論、出力の4点を小さく検証するのが現実的です。管理センターにActivityが出るところまで確認できれば、次にDefenderやPurviewでの監査、バッチ設定、ストア公開要件へ進めます。

既存エージェントを運用している場合は、まずSDKバージョンとAgent365.Observability.OtelWrite権限を確認してください。新規開発の場合は、Microsoft OpenTelemetry Distroを前提に、使用言語、フレームワーク、自動インストルメンテーションの対応範囲を決めます。開発者、Entra管理者、Microsoft 365管理者、セキュリティ担当が同じチェックリストを使い、「動くエージェント」ではなく「監査できるエージェント」として展開することが、今回のAgent observability対応で最も重要なポイントです。

この記事を書いた人

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

コメント

コメントする

目次