チュートリアル: agentic AI を使用してエンド ツー エンドのアクティベーター ルールを作成する

Fabric アクティベーターは、ストリーミング データのパターンを検出し、条件が満たされたときにアクションを実行します。 このチュートリアルでは、AI エージェントを使用してエンドツーエンドのパイプラインを構築します。 パイプラインは、テレメトリ イベントのストリームを監視し、持続的な過熱を検出し、Fabricユーザー データ関数 (UDF) を呼び出して修復ジョブを提出します。 プロンプトを記述します。エージェントが作成を行います。

このチュートリアルでは、実行中の例としてウィジェット作成マシンテレメトリを使用しますが、IoT デバイス、車両フリート、ロジスティクス イベント、財務ティック、アプリケーション メトリックなど、エンティティごとの安定した ID を持つほぼすべての時系列データに対して同じプロンプトが機能します。 フィールド名としきい値をデータ図形に合わせて置き換えます。

このチュートリアルでは、次のタスクを実行します。

  • イベント ハブを介してイベントストリームを設定します。
  • 修復ジョブを提出するユーザー データ関数を作成します。
  • 関数をトリガーするアクティベーター ルールを作成します。

Fabric Activator を初めて使用する場合は、「Fabric Activator とは?」を参照してください。 Fabric User Data Functions を初めて使用する場合は、「Fabric User Data Functions とは」を参照してください。

シナリオの概要

メーカーは、複数のプラントにわたってウィジェット製造マシンの艦隊を運営しています。 各マシンは、テレメトリ (温度、振動、圧力、実行状態) をAzureイベント ハブに出力します。 マシンが高い実行温度を維持する場合は、故障する前にメンテナンス訪問が必要です。

このチュートリアルでは、各イベントは小さな代表的なスキーマ (マシンごとの ID (machine_id)、場所タグ (plant_id)、監視する数値メトリック (temperature_c)、実行状態フィールド (state) を使用します。 フィールド名そのものは重要ではありません。エンティティごとの ID と、しきい値を設定したいメトリックであれば何であっても、同じプロンプトの形式が使えます。

テレメトリ ストリームを監視し、持続的しきい値ルールを適用し、ユーザー データ関数を呼び出して修復ジョブを提出するFabric パイプラインを構築します。 ルールは machine_id ごとにイベントをグループ化し、temperature_c が 50°C を超えた状態が 5 分間続くと発動します。 起動すると、 machine_idplant_id、および現在の温度がアクションに渡されます。

マシンから Azure Event Hubs、Fabric Eventstream、Activator ルール、UDF を経由して流れるテレメトリのアーキテクチャ図。

前提条件

開始する前に、次のものが必要です。

  • 作成権限を持つ、F4 以上のキャパシティ上の Fabric ワークスペース。 ワークスペースの詳細については、「 ワークスペース」を参照してください。
  • Fabric スキルがインストールされたスキル対応エージェント。たとえば、GitHub Copilot CLI や Visual Studio Code の GitHub Copilot など。
  • テレメトリをストリーミングするAzure Event Hubs名前空間とハブ。 名前空間の FQDN、ハブ名、および Listen+Send 接続文字列が必要です。

eventstream を設定する

この手順では、イベント ハブにサブスクライブするイベントストリームを作成します。 エージェントにプロンプトを表示し、ポータルで結果を検証します。

  1. プレースホルダーをイベント ハブの値に置き換えて、エージェントにこのプロンプトを表示します。

    Create a Fabric eventstream in my workspace called `WidgetMachineTelemetry` that ingests from this Azure event hub:
    
    - Namespace: `<your namespace FQDN>`
    - Hub name: `<your hub name>`
    - Connection string: `<your Listen+Send connection string>`
    
    When you're done, give me a direct portal link to the eventstream item so I can verify it.
    
  2. エージェントは、eventstream オーサリング スキルを呼び出します。 イベントストリーム項目を作成し、イベント ハブをソースとして構成し、Fabric ポータルで項目にクリック可能な URL を返します。 宛先は必要ありません。Activator はストリームに直接サブスクライブします。

  3. エージェントから提供されたリンクを選択します。 ライブ ビューで、イベント ハブソースが接続済みであり、ウィジェットマシンのテレメトリ イベントがフローしていることを確認します。

    WidgetMachineTelemetry イベントストリームのスクリーンショット。ライブ データ プレビューを使用して、接続されているイベント ハブ ソースとアクティベーターの宛先を示しています。

    図 1: WidgetMachineTelemetry イベントストリーム- イベントは、 widget-telemetry イベント ハブ ソースからストリームを経由して、 WidgetMachineMaintenance アクティベーターの宛先にフローします。

ユーザー データ関数を作成する

この手順では、アクティベーター ルールが呼び出すユーザー データ関数を作成します。 この関数は、修復ジョブ要求をダウンストリーム API に送信します。

  1. エージェントに次のプロンプトを表示します。

    Create a Fabric User Data Function called `MaintenanceDispatcher` in my workspace, written in Python, with a function `file_repair_job(machine_id, plant_id, temperature_c)` that sends those values as JSON in a POST request to `https://contoso.com/maintenance/fileRepairJob` and returns the parsed response.
    
    When you're done, give me a direct portal link to the UDF item so I can verify it.
    
  2. エージェントは、Fabric UDF オーサリング スキルを呼び出します。 Python UDF 項目をスキャフォールディングし、file_repair_jobhttpx を実装し、UDF を発行し、関数が呼び出し可能であることを確認し、項目にクリック可能な URL を返します。

  3. エージェントから提供されたリンクを選択し、組み込みの [テスト ] ウィンドウを使用して、サンプル ペイロードで file_repair_job を呼び出します。 例: machine_id="widget-press-042"plant_id="plant-eu-01"temperature_c=52.7contoso.comの呼び出しでは HTTP エラーが返されます。これは、プレースホルダー エンドポイントが解決されないためです。 重要な動作は、UDF がデプロイされ、登録され、送信 HTTP 呼び出しに到達したということです。

    ポータル エディターのfile_repair_job Python ソースを示す MaintenanceDispatcher ユーザー データ関数のスクリーンショット。

    図 2: MaintenanceDispatcher ユーザー データ機能— file_repair_job は、過熱装置の詳細をメンテナンス システムに送信します。

Note

このチュートリアルでは、実際のメンテナンス システム エンドポイントのプレースホルダーとして https://contoso.com/maintenance/fileRepairJob を使用します。 これを、独自の任意の HTTPS エンドポイントに置き換えます。 認証済みエンドポイントの場合は、UDF 汎用接続を介してAzure Key Vaultから資格情報を取得します。 詳細については、Fabric ユーザー データ関数でデータ ソースにアクセスするを参照してください。

アクティベーター ルールを作成する

この手順では、マシンが過熱したときにイベントストリームを監視し、UDF を呼び出すアクティベーター ルールを作成します。

  1. エージェントに次のプロンプトを表示します。

    Create an Activator rule in my workspace subscribed to the `WidgetMachineTelemetry` eventstream, that triggers my `file_repair_job` UDF when a machine's temperature stays above 50°C for 5 minutes.
    
    When you're done, give me a direct portal link to the rule so I can verify it.
    
  2. エージェントがアクティベーター作成スキルを呼び出し、アクティベーター項目を作成します。 エージェントは、ルールを machine_idしてグループ化し、持続的なしきい値検出を構築し、 machine_idplant_id、および現在の温度で UDF を呼び出すアクションを構成します。 その後、エージェントはクリック可能な URL をルールに返します。

  3. エージェントから提供されたリンクを選択し、次のチェックリストを確認します。

    • データがルールに流れ込みます。 エクスプローラー ウィンドウでルールの基になる Activator オブジェクトを開き、null 以外のmachine_idtemperature_c値を持つライブ テーブルに最近のイベントが表示されることを確認します。
    • ルールが実行されています。 ルールが [開始] 状態または [実行中 ] 状態であることを確認し、Activator オブジェクトの概要にマシンがアクティブなインスタンスとして表示されていることを確認します。
    • エージェントはアクティベーションを記録します。 過熱マシンが 50°C を超えて 5 分間維持されると、ルールの [履歴 ] タブにエントリが表示され、トリガーされた machine_id 、起動時の温度、 file_repair_jobへの正常な呼び出しが表示されます。

    file_repair_job UDF を呼び出し、マシン ID、プラント ID、温度をパラメーターとして渡すアクションを含む、オーバーヒートディスパッチ アクティベーター ルールが実行されているスクリーンショット。

    図 3: OverheatingDispatch アクティベーター ルールは、マシンの温度が 50°C を超えた状態で 5 分間発生し、マシンの ID、プラント、および現在の温度で file_repair_job を呼び出します。

リソースをクリーンアップする

完了したら、ワークスペースから eventstream、User Data Function、Activator 項目を削除し、Azure ポータルから Event Hubs 名前空間を削除して課金を停止します。