7.8 配置动作
动作区段(分析表单第 5 段)让实时分析在每次触发并满足指定条件时,自动执行预定义的动作。动作通过引用动作模板进行配置——模板定义"做什么",实时分析侧的动作规则定义"何时做"以及对本实时分析生效的局部参数调整。
系统提供四种动作类型,每种对应一个由系统预置的动作模板:
| 动作类型 | 用途 |
|---|---|
| 通知任务(NOTIFICATION) | 通过联系方式(邮件 / 飞书 / 企业微信等)发送告警通知 |
| 飞书任务(FEISHU) | 在飞书中创建任务并指派处理人 |
| IDMP 任务(IDMP) | 向元素 / 事件追加一条注释 |
| 智能体任务(AGENT) | 调用一个 AI Function,结合元素上下文做智能诊断或处理 |
典型场景:一个配电变压器元素的实时分析每 5 分钟输出一次平均电压 avg_voltage。希望当 avg_voltage 超过 235 时,自动向飞书运维群发送一条告警通知。只需在分析第 5 段添加一条动作规则引用"通知任务"模板,并把触发条件设为 attributes['avg_voltage'] > 235 即可。
7.8.1 动作规则
动作区段由一条或多条动作规则组成。点击添加动作新增一条规则,每条规则包含以下部分:
| 部分 | 说明 |
|---|---|
| 触发条件(可选) | 判断本次输出是否执行该动作的条件表达式。留空表示无条件触发——每次分析触发都执行该动作。 |
| 动作模板(必填) | 引用的动作模板。选定模板后,模板的描述以提示形式展示在选择框旁,并展开该模板的可编辑配置。 |
可为同一实时分析添加多条动作规则,各规则相互独立、依次评估。点击规则上的删除移除该规则。
7.8.2 触发条件
触发条件使用 attributes['属性名'] 语法引用实时分析的输出属性,结果须为布尔值。点击条件输入框打开条件编辑器,通过选择输出属性来构造表达式。
| 表达式示例 | 含义 |
|---|---|
| (留空) | 无条件触发:每次分析触发都执行该动作 |
attributes['avg_voltage'] > 235 | 平均电压超过 235 时执行动作 |
attributes['max_current'] > 50 && attributes['avg_voltage'] > 220 | 两个条件同时满足时执行 |
触发条件为可选:
- 留空 → 视为无条件,动作始终执行。
- 填写表达式 → 采用保守(fail-closed)策略,只有当表达式明确求值为真时才执行;以下情况不执行:
- 表达式引用的属性取不到最新值;
- 表达式存在语法错误或求值结果非布尔值。
触发条件中的属性引用使用 attributes['属性名'] 语法,与通知标题 / 内容中的 {属性名} 占位符、智能体执行命令中的 ${属性名} 占位符语法均不同(见 13.4.3)。前者用于条件判断,后两者用于文本插值。
7.8.3 动作配置
引用一个动作模板后,规则会按模板的动作类型展开对应的可编辑字段。这些字段以模板的预设值为初值,在此处的修改仅作用于当前实时分析,不会回写模板。
7.8.3.1 通知任务
| 字段 | 说明 |
|---|---|
| 联系方式 | 发送通知所使用的联系方式,可在此重新选择。模板未指定联系方式时,默认选中列表中的第一个。 |
| 最小通知间隔(分钟) | 同一实时分析对同一联系方式连续两次发送通知的最小间隔,可在此调整。 |
| 通知标题 | 通知标题,可在此编辑。支持 {...} 占位符,留空时使用默认标题。 |
| 通知内容 | 通知正文,可在此编辑。支持 {...} 占位符。 |
通知标题与内容的占位符语法及默认文本,详见动作模板 - 文本占位符。
7.8.3.2 飞书任务
| 字段 | 说明 |
|---|---|
| 飞书 App ID | 飞书开放平台自建应用的 App ID(在自建应用详情页获取)。 |
| 飞书 App Secret | 对应自建应用的 App Secret。查看态以掩码 ****** 展示。 |
| 任务处理人 | IDMP 用户列表中选择一个或多个处理人。执行时按用户邮箱解析为飞书 open_id 并加为任务成员;无法匹配邮箱的用户会被跳过。 |
| 标题 | 飞书任务的标题。支持 {...} 占位符。 |
| 内容 | 飞书任务的描述内容。支持 {...} 占位符。 |
| 动作描述(JSON) | 附加到飞书任务的自由 JSON 负载,留空时视为 {}。 |
飞书 App ID 与 App Secret 需在飞书开放平台的自建应用中获取。该应用须具备创建任务、读取用户(按邮箱解析 open_id)等相应权限。
7.8.3.3 IDMP 任务
IDMP 任务向所选的目标对象追加一条注释。支持的目标对象类型为元素与事件。
| 字段 | 说明 |
|---|---|
| 对象类型 | 目标对象类型,取元素或事件。 |
| 目标对象 | 选定类型下的具体对象。元素目标默认指向当前分析所属元素;事件目标从该元素的事件列表中选择。 |
| 注释内容 | 追加到目标对象的注释正文。支持 {...} 占位符。 |
7.8.3.4 智能体任务
| 字段 | 说明 |
|---|---|
| AI Function | 要调用的 AI Function(从系统已注册的 AI Function 列表中单选)。 |
| 执行命令 | 传给 AI Function 的自由文本指令,提供额外上下文。支持 ${...} 占位符,运行时替换为元素名称等上下文(如 Diagnose the anomaly on ${elementName})。 |
智能体任务执行时会调用所选 AI Function,系统会自动创建一个用于该任务的 API Key 完成鉴权。请勿在 API Key 列表中删除它,否则智能体任务将无法调用 AI 服务。
7.8.4 快照与配置覆盖
保存实时分析时,系统会按所引用的模板 ID 读取模板,并将模板的名称、动作类型、描述、类别作为快照保存到动作规则中;这些基础信息以模板当前值为准回填,不信任表单提交值。各字段的局部调整(如重选联系方式、修改飞书任务标题、改写智能体执行命令)作为配置覆盖随实时分析一同保存。
因此:
- 重新打开实时分析时,动作规则直接回显已保存的快照与配置覆盖,不依赖模板的当前状态——即使模板随后被修改,已保存实时分析的运行参数保持不变。
- 即使引用的模板之后被删除,实时分析仍能依据已保存的快照与配置覆盖回显并运行。
7.8.5 运行时执行
实时分析每次触发并产生输出后,系统按动作规则依次执行动作。对每条动作规则:
- 求值触发条件。 触发条件留空时视为无条件、直接继续;否则按 7.8.2 的规则评估,仅当结果为真时继续,否则跳过该规则。
- 按类型执行。
- 通知任务:先以"实时分析 + 动作模板 + 联系方式"为键做节流判定,距上次发送不足最小通知间隔时跳过本次发送;否则对标题和内容做
{...}占位符替换后,通过联系方式对应的通道发送通知。 - 飞书任务:使用 App ID / App Secret 获取飞书访问凭证,按处理人邮箱解析
open_id,创建飞书任务并指派处理人。 - IDMP 任务:向目标元素或事件追加一条注释(注释内容经
{...}占位符替换后写入)。 - 智能体任务:对执行命令做
${...}占位符替换,连同元素上下文(元素名称、属性值、所属分析等)以会话形式调用所选 AI Function 的执行接口。调用为异步触发,不阻塞分析主流程。
- 通知任务:先以"实时分析 + 动作模板 + 联系方式"为键做节流判定,距上次发送不足最小通知间隔时跳过本次发送;否则对标题和内容做
失败隔离。 每条动作独立执行,单条动作执行失败(如联系方式不存在、飞书凭证无效、AI Function 调用失败)只记录日志,不影响同一分析的其他动作,也不影响分析本身的计算与输出写入。
7.8.6 向后兼容
| 场景 | 行为 |
|---|---|
| 旧实时分析没有动作配置 | 不执行任何动作,行为与之前一致。 |
| 触发条件留空 | 视为无条件,每次触发都执行该动作。 |
| 触发条件求值不为真 | 跳过该动作(保守策略,见 7.8.2)。 |
| 引用的模板已被删除 | 依据已保存的快照与配置覆盖回显并运行。 |
| 某条动作执行异常 | 记录日志并跳过,不影响其余动作与分析主流程。 |



