教程:使用代理 AI 创建端到端激活器规则

Fabric激活器检测流数据中的模式,并在满足条件时采取措施。 在本教程中,将使用 AI 代理生成端到端管道。 管道监视遥测事件流,检测持续过热,并调用Fabric用户数据函数(UDF)来提交修复作业。 你编写提示词;智能体负责撰写。

本教程以组件制造机器的遥测数据作为贯穿示例,但同样的提示几乎适用于任何每个实体都有稳定 ID 的时序数据,例如 IoT 设备、车队、物流事件、金融逐笔数据、应用指标等。 替换字段名称和阈值以适合数据形状。

在本教程中,你将完成以下任务:

  • 在事件中心上创建事件流。
  • 创建用户数据函数以提交修复作业。
  • 创作触发函数的激活器规则。

如果你刚开始接触 Fabric Activator,请参阅 什么是 Fabric Activator?。 如果你不熟悉Fabric用户数据函数,请参阅 什么是Fabric用户数据函数?

场景概述

一家制造商在多个工厂运营着多台用于制造小组件的机器。 每台计算机都会将遥测数据(温度、振动、压力、运行状态)发送到Azure事件中心。 当机器运行温度持续偏高时,需要在发生故障前进行一次维护检查。

在本教程中,每个事件都使用一个较小的代表性架构:每台计算机 ID(machine_id)、位置标记()、用于监视的数字plant_id指标(temperature_c)和运行状态字段(state)。 确切的字段名称并不重要——相同的提示词结构适用于任何实体级 ID 加上一个需要设定阈值的指标。

你生成一个Fabric管道,该管道监视遥测流、应用持续阈值规则,并调用用户数据函数来提交修复作业。 该规则按 machine_id 对事件进行分组,并在 temperature_c 持续高于 50°C 达 5 分钟时触发。 当它触发时,它会将 machine_idplant_id 和当前温度传递给该操作。

遥测数据从设备流经 Azure 事件中心、Fabric 事件流、Activator 规则和 UDF 的架构图。

Prerequisites

在开始之前,需要:

  • 位于 F4(或更高)容量上且具有创作权限的 Fabric 工作区。 若要了解工作区,请参阅 工作区
  • 已安装 Fabric skills 的技能兼容型代理(例如,GitHub Copilot CLI 或 Visual Studio Code 中的 GitHub Copilot)。
  • 用于流式传输遥测数据的 Azure 事件中心 命名空间和事件中心。 您需要命名空间 FQDN、中心名称以及 Listen+Send 连接字符串。

设置事件流

在此步骤中,您将创建订阅您的事件中心的事件流。 向代理发出提示,并在门户中验证结果。

  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. 代理调用事件流编写技能。 它会创建事件流项目,将事件中心配置为源,并返回 Fabric 门户中该项目的可点击 URL。 无需目标地址——激活器会直接订阅该流。

  3. 选择代理提供的链接。 在 实时视图 中,确认事件中心源已连接,并且 widget-machine 遥测事件正在传输。

    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_job 实现 httpx,发布 UDF,确认该函数是可调用的,并返回项的可单击 URL。

  3. 选择智能体提供的链接,然后使用内置的测试窗格,借助示例负载调用file_repair_job。 例如: machine_id="widget-press-042"plant_id="plant-eu-01"temperature_c=52.7. 对 contoso.com 的调用会返回 HTTP 错误——这是预期的,因为占位符端点无法解析。 关键在于,UDF 已完成部署和注册,并触发了出站 HTTP 调用。

    MaintenanceDispatcher 用户数据函数的屏幕截图,显示了门户编辑器中的 file_repair_job Python 源代码。

    图 2: MaintenanceDispatcher 用户数据功能 -file_repair_job 将过热计算机的详细信息发送到维护系统。

备注

本教程使用 https://contoso.com/maintenance/fileRepairJob 作为真实维护系统端点的占位符。 将其替换为你自己的任意 HTTPS 端点。 对于经过身份验证的终结点,请通过 UDF 泛型连接从Azure 密钥保管库检索凭据。 有关详细信息,请参阅 Fabric 用户数据函数中的 Access 数据源

编写 Activator 规则

在此步骤中,将创建激活器规则,用于监视事件流,并在计算机过热时调用 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 对象,并确认最近的事件显示在实时表中,且 machine_idtemperature_c 的值均非 null。
    • 规则正在运行。 确认规则处于 “已启动 ”或 “正在运行 ”状态,激活器对象摘要将计算机显示为活动实例。
    • 代理记录激活值。 当过热的机器温度连续 5 分钟高于 50°C 时,规则的 历史记录 选项卡中会出现条目;每个条目都会显示触发的 machine_id、触发时的温度,以及成功调用 file_repair_job

    正在运行的 OverheatingDispatch Activator 规则的屏幕截图,其中该操作调用了 file_repair_job UDF,并将机器 ID、工厂 ID 和温度作为参数传递。

    图 3:OverheatingDispatch 激活器规则——当机器温度持续高于 50°C 达 5 分钟时触发,并调用 file_repair_job,传入该机器的标识、工厂和当前温度。

清理资源

完成后,请从工作区中删除事件流、用户数据函数和 Activator 项,并从 Azure 门户中删除 Event Hubs 命名空间,以停止计费。