Microsoft FoundryにおけるFabricデータエージェントの可観測性

Microsoft FoundryでビルドしたエージェントにツールとしてFabricデータエージェントを追加できます。 接続後、FoundryエージェントはFabric OneLakeに保管されているエンタープライズデータに基づく質問に答えるためにFabricのデータエージェントに連絡します。

この記事はそのセットアップの観測可能性について述べています。 Foundryでエージェントを構築し、Fabricのデータエージェントを接続する際は、最終的な回答だけでなく、各リクエストに対してデータエージェントが何をしたかを見たいのです。 Foundryの観察機能はその可視性を提供します。 データエージェントのログやトレースは、Foundryエージェントがすでに報告している場所と同じ場所に送信されるため、FoundryエージェントからFabricデータエージェント、さらに問い合わせたデータソースまでリクエストを追いかけることができます。

この記事の残りの部分では、そのテレメトリーがどこに保存されているのか、どのように到達し、どのように読み取るのか、誰が見ることができるのか、そしてどのように制御するかを説明します。

一般的な概要については、 生成AIにおける観察可能性 を参照してください。 FabricデータエージェントをFoundryに接続するには、「Microsoft Foundryでデータエージェントを消費する」をご覧ください。

ファウンドリプロジェクトと応用洞察

ファウンドリープロジェクトとは、エージェントを構築・実行する場所です。 FoundryはエージェントトレースをAzure MonitorのApplication Insightsリソースに保存し、各プロジェクトはそのようなリソースの一つに接続します。

エージェントビルダーとして、一度だけ設定してください。 Foundryプロジェクト でエージェントセクション を開き、「 トレース」を選択し、「 接続」を選択します。 新しいApplication Insightsリソースを作成したり、既存のリソースを接続することもできます。 リソースを接続すると、Foundryは自動的にプロジェクトのサーバー側トレーシングを開始します。 コードの変更は不要で、トレースは数分で流れ始めます。

関係は単純で、プロジェクトは1つのApplication Insightsリソースを指し示し、そのプロジェクト内のすべてのエージェントがそのリソースにトレースを送信します。 このプロジェクトはテレメトリがどこで収集されるかを定義しています。Application Insightsは、その場所であり、クエリする場所です。

Foundryエージェントの 「トレース」 タブでトレースを見るか、接続されたアプリケーションインサイトリソースで直接クエリを表示できます。 ファウンドリーのポータルには過去90日間の痕跡が残っています。

ステップバイステップの設定については、Microsoft Foundryの「AIエージェントのトレーシング設定」をご覧ください。

Fabricのデータエージェントログとトレースがプロジェクトに到達する仕組み

FabricのデータエージェントをFoundryに接続するには、Foundryプロジェクトで作業してください。 Application Insightsリソースをそのプロジェクトに接続すると、Fabricのデータエージェントはログとトレースを同じリソースに送信します。 Foundry エージェントのテレメトリーと Fabric データ エージェントのテレメトリーは 1 か所に集約されるため、まとめて確認できます。

流れはこうです:

  1. Foundryプロジェクトでは、前節で説明したApplication Insightsリソースを接続してください。
  2. そのプロジェクトの Foundry エージェントに、ツールとして Fabric のデータ エージェントを追加してください。
  3. Foundryエージェントが動作すると、Fabric OneLake内のエンタープライズデータからインサイトを取得するためにFabricデータエージェントを呼び出します。
  4. Fabricはプロジェクトに接続されたApplication Insightsリソースを検証し、データエージェントのログとトレースを送信します。
  5. データ エージェントのテレメトリは、接続されている Application Insights リソースと、エージェントの Traces ビューの両方に、お使いの Foundry エージェントのトレースと並んで表示されます。

その結果、Fabricのデータエージェントが行った作業はリクエストのトレースの一部となります。 Foundryエージェントがデータエージェントに連絡し、データエージェントが回答を生成するためにどのデータソースを問い合わせたか、各ステップにかかる時間、成功したかどうかなどを確認します。

痕跡を読め

Foundry Observabilityは各リクエストをトレースとして記録します。 トレースはスパンで構成され、それぞれのスパンはそれぞれの作業単位を表し、それぞれの開始時間、時間、状態を示します。 スパンは入れ子状なので、上から下へのトレースを読むとリクエストの経路と時間がどこにかかったことがわかります。

Fabricのデータエージェントはトレースに2種類のスパンを追加します:

  • エージェントスパン:単一のリクエストに対するFabricデータエージェント全体の実行。
  • ツールスパン:データエージェントがリクエストに応答する際に呼び出した単一のデータソースまたはツール。 1つのリクエストが複数のツールスパンを生み出すことがあります。

以下の例は、Foundryエージェントが2つのデータソースに問い合わせて質問に答えるFabricデータエージェントを呼び出す様子を示しています。

Request (trace)
└─ Foundry agent run
   └─ Fabric data agent (called as a tool)
      └─ Agent span            Overall run of the Fabric data agent
         ├─ Tool span          First data source the data agent queried
         └─ Tool span          Second data source the data agent queried

以下の表は、トレースの各レベルとそれに付随するメタデータの種類を説明しています。

Level 発信元 表現 メタデータの例
鋳造所エージェントの運営 鋳造所 ユーザーリクエストを処理するFoundryエージェント 会話ID、ステータス、持続時間
Fabric データ エージェント (ツール呼び出し) 鋳造所 FoundryエージェントがFabricデータエージェントを呼び出すポイント エージェント表示名、ステータス、所要時間
エージェントスパン ファブリックデータエージェント リクエストに対するFabricデータエージェントの全体的な実行 エージェント表示名、会話ID、ステータス、通話時間
ツールの範囲 ファブリックデータエージェント データエージェントが応答するために呼びかける各データソースやツール データソース名、推論ステップID、ステータス、持続時間

この構造を使えば、何かがおかしいと感じたときに重要な質問に答えることができます。

  • 応答が遅い場合、各スパンの持続時間がどのステップで最も時間がかかったかを示します。
  • 誤答の場合、ツールスパンはどのデータソースがどの順序でクエリされたかを示します。
  • リクエストが失敗すると、各スパンのステータスに失敗が発生した場所が表示されます。

ログや痕跡を見ることができる人

データエージェントのログやトレースを保存するApplication Insightsリソースがアクセスを管理します。 そのリソースにリードアクセス権がある人なら誰でもテレメトリーを見ることができます。 リソースをプロジェクトに接続しても、そのデータへのアクセスは得られません。

データの閲覧場所 必要なアクセス
Application Insights Monitoring ReaderやLog Analytics Readerなど、接続されたApplication Insightsリソースに対して読み取り権限を持つ役割
Microsoft Foundry プロジェクト 接続された Application Insights リソースに対する読み取りアクセス許可に加え、Foundry プロジェクト ロールとして Foundry User 以上が必要です

Foundryプロジェクトへのアクセスだけではテレメトリへのアクセスは含まれません。 Application Insightsリソースの読み取り権限は常に必要です。

運用メタデータのテナント設定

Fabric管理ポータル内のテナント設定は、FabricデータエージェントがFoundryで可視性のために運用メタデータを送信するかどうかを制御します。 この設定は既定でオンになっています。

この設定は運用メタデータのみを送信します。 このメタデータには、エージェントの表示名、データソース名、推論ステップID、会話IDが含まれます。 Fabricは顧客向けコンテンツを一切送っていません。 ユーザープロンプトやデータエージェントの応答はFabricのコンプライアンス範囲内に収まり、このテレメトリには含まれません。

Fabric管理者はテナントに対してこれをオフにできます。 テナント設定の変更は、効果が発揮されるまでに最大1時間かかることがあります。

設定は以下の通りです。

Fabric データ エージェントは、Microsoft Foundry での可観測性のために運用メタデータを送信できます

エージェント作成者は、運用メタデータを活用してエージェントの健康状態を監視し、問題を検出し、公開されたエージェントがアプリケーションやサービス間でどのように使われているかを理解できます。 これらの洞察はエージェント作成者がエージェントの信頼性とパフォーマンスを向上させるのに役立ちます。

この設定をオンにすると、Fabricデータエージェントは運用メタデータを設定済みのApplication Insightsリソースに送信し、処理と保存を行います。 このデータにはエージェント表示名、データソース名、推論ステップID、会話IDが含まれます。 このデータを処理・保存するApplication Insightsリソースは、テナントの地理的地域、コンプライアンス境界、または国のクラウドインスタンスの外にある場合があります。

運用メタデータにアクセスするには、設定済みのApplication Insightsリソースに対してMonitoring ReaderやLog Analytics Readerなどの読み取り権限を持つロールが必要です。 このアクセス権を持つユーザーは、アプリケーションインサイトでデータを閲覧できます。 ユーザーはまた、設定済みのApplication Insightsリソースに接続するFoundryプロジェクトを通じてデータを閲覧することもできます。 Foundryを通じたアクセスは、Foundryプロジェクト(Foundry User以上)へのロールベースのアクセスと、Application Insightsリソースの読み取り権限を必要とします。 Foundryプロジェクトへのアクセスだけではテレメトリーデータへのアクセスは含まれません。

Important

このメタデータを保存するApplication Insightsリソースは、テナントの地理的地域、コンプライアンス境界、または国のクラウドインスタンスの外にある場合があります。 設定をオンにする前に、データの居住要件とコンプライアンス要件を確認しましょう。