Skip to content

M4 异常能耗侦探(Demo 场景 PRD) ​

项内容
文档定位08_移动端AI场景设计.md §10 中反引号标记的 demo 模块的场景 PRD。本文是 M4;模板见 公共规范.md §8
通用规范前端形态、系统提示词边界、定时任务方式、数据与输出规范见 公共规范.md;本文只写 M4 场景本身
能力来源01_能源类AI能力-现状与自有发挥.md §2 规则诊断、§4 示例 3/4(异常诊断)
版本v0.1

1. 场景定义 ​

1.1 一句话 ​

管理者问「最近哪些地方能耗不正常」,Agent 查规则诊断命中项,按时段类 / 阈值类分组列出异常、超出电量、证据和可能原因,并可按需转工单。

1.2 用户与价值 ​

项内容
用户管理者(demo 固定账号 M1001,数据范围全院)
价值不用逐条翻规则报警和运行记录,一句话拿到「哪里不正常、超了多少、可能是为什么」
频次按需,无定时推送
层级L2 数据查询 + L3 转工单(需确认)

1.3 触发方式 ​

  • 被动问答,没有定时任务。
  • 典型 query:
    • 「最近哪些地方设备/能耗不正常?」
    • 「上周有没有该停没停的设备?」
    • 「东塔客房新风温度正常吗?」
    • 「3 楼空调能耗为什么高?」(只给规则诊断证据,不做优化建议)
  • 时间范围不明确时默认「最近 7 天」,并在回答中写明。

1.4 边界 ​

不做原因
不做用能画像总量、分项、同类对比归 M3
不做碳核算和月报归 M5 双碳与能源月报
不生成优化策略只解释规则诊断结果;参数调整、运行方式改变暂不作为自动建议(01 已定)
不通过对话下发控制控制由自控系统按策略执行,Agent 只查询、解释、建单
不把异常直接判成故障报警不等于故障;可能由传感器、除霜、开门等正常波动导致
不替工单系统派单只调用建单接口,派单与处置由工单系统负责
不展示设备原始运行明细全表只给命中时段、证据摘要和关键曲线

2. Demo 形态 ​

通用形态见 公共规范.md(小程序悬浮球打开 DeerFlow 聊天区、单会话、Markdown + Mermaid)。

本场景只约定:

  • 管理者在常驻会话里直接提问,回答落在聊天区,不写首页洞察卡片(M4 不是 L4 主动服务;运维侧主动告警归 O5)。
  • 追问沿用上下文:先看异常清单,再问「第二条的证据」,Agent 取同一异常 ID 的证据。
  • 同一轮只处理一个主意图:先列异常,用户明确说「转工单」再建单,不把建单和清单塞进一条回复。

注:演示方式——登录管理者账号,点悬浮球,输入「最近哪些地方能耗不正常?」。


3. Agent 输出设计 ​

3.1 输出元素 ​

元素用途
Markdown 文字结论、口径说明、可能原因、数据缺口
Markdown 表格异常清单(分组)
Mermaid xychart-beta(line)单设备异常时段曲线(深挖时)
Markdown 文字转工单确认

一次回复最多 2 张图;不输出快捷按钮、不输出自定义业务卡片。

3.2 异常清单(主场景) ​

用户

最近哪些地方能耗不正常?

Agent

近 7 天命中 5 条:时段类 3 条、阈值类 2 条;按规则诊断口径,异常不等于故障。

时段类(该开没开 / 该关没关)

#设备异常时段超出电量
1EF_B1_16 中餐后厨排风机21:30 后仍运行 47 分钟计划 5:30–14:30、16:30–21:3018 kWh
2FAU_B1_4 西塔客房新风应关时段运行 1 小时 12 分10:00–14:0026 kWh
3FAU_B1_5 等夏季不开启设备2 台被手动开启—9 kWh

阈值类(开着但不达标)

#设备异常时段最低/最高值
4FAU_B1_7 东塔客房新风低于目标 25℃14:20–15:1023.8℃
5FAU_B1_18 中餐厅厨房新风低于目标 27℃16:40–17:2026.1℃

可能原因(只列可能,不判定故障):

  • 时段类多为计划外加班、检修或手动覆盖,需现场核实;
  • 阈值类可能由冷量过大、阀门控制异常或温度传感器偏差导致;
  • 夏季不开启设备被手动开启,需确认是否临时需求。

口径:近 7 天,规则诊断按现有配置;异常不等于故障。需要把前 3 条转工单吗?

3.3 单设备深挖 ​

用户

东塔客房新风温度正常吗?

Agent

FAU_B1_7 今天在计划时段(6:00–10:00、14:00–21:00)应保持 25℃。 异常:14:20–15:10 低于 25℃,最低 23.8℃,持续 50 分钟,已触发报警。 其余时段正常。可能原因:冷量过大、阀门控制异常、温度传感器偏差。 建议先核对传感器,再检查阀门开度;需要我建一张排查工单吗?

3.4 转工单 ​

用户确认「转工单」后:

  • 只对用户点名或确认的异常建单,不批量默认建;
  • 工单标题带设备与异常摘要,描述带异常 ID、时段、证据链接;
  • 返回工单号与状态,不承诺处置时限;
  • 用户没确认时不建单,只给建议。

3.5 异常与降级 ​

情况输出
规则未配置明确说「该范围未配置诊断规则」,不推断异常
无异常明说「近 N 天未发现异常」,不编原因
证据数据缺失给清单但标注「证据不可用」,不补数
异常条数过多(>20)按类型汇总,列前 10 条,其余按设备/空间聚合
设备台账映射缺失标「设备未映射」,不猜位置
建单失败说明失败原因,给工单系统入口,不反复重试
越权空间拒绝并说明授权范围

3.6 输出模板(开发参考) ​

本节给 Skill 组装输出用,业务评审可跳过。

异常清单:

结构固定:结论 → 时段类表 → 阈值类表 → 可能原因 → 口径注。

单设备深挖:

{设备}今天在计划时段({时段})应保持 **{目标值}**。
异常:**{起止时间}** {偏高/偏低},{最低/最高值},持续 {时长},已触发报警。
其余时段正常。可能原因:{2–3 条}。
需要我建一张排查工单吗?

(Mermaid 折线图:异常时段温度)

4. MCP 设计 ​

空间树解析复用 M3 §4.1 的 query_space_tree:先把用户说的楼/层/房间解析成空间树节点,再把 node_id 传给异常查询。M4 不重复定义空间树工具。

4.1 异常查询 MCP ​

Tool:query_energy_anomalies

项内容
作用查时间窗内命中的规则诊断异常
入参start_date、end_date、types(可选:not_stopped / vacant_use / frequent_start_stop / yoy_jump / threshold)、scope_node_id(空间树节点,默认根节点)、device_id(可选)

返回:

字段类型说明
anomaliesarray异常数组,字段见下
total_countint命中总数
by_typeobject类型 → 数量

anomalies[] 字段:

字段类型说明
anomaly_idstring异常 ID
typeenumnot_stopped / vacant_use / frequent_start_stop / yoy_jump / threshold
categoryenumtime_window(时段类)/ threshold(阈值类)
device_idstring设备编码
device_namestring设备名称
space_idstring空间树节点 ID;未映射时为 null
space_namestring空间名;未映射时写「未映射」
node_pathstring空间树路径,如「A 楼/3F/302」
rule_namestring命中规则
start_time / end_timestring异常时段
excess_kwhnumber超出电量;阈值类可能为 null
severityenumhigh / medium / low
statusenumopen / closed / ignored
evidence_availablebool是否有证据数据

注:规则底座是现有的「行为诊断 + 异常诊断」;对外统一叫异常,按「时段类 / 阈值类」分组输出。

4.2 异常证据 MCP ​

Tool:query_anomaly_evidence

项内容
作用取单条异常的设备时序、规则配置与周边记录
入参anomaly_id

返回:

字段类型说明
anomaly_idstring异常 ID
deviceobjectdevice_id、device_name、system、space_id、space_name
evidence_typeenumruntime(运行状态)/ temperature / power / other
seriesarray{time, value, target, status};status 为 running / stopped / above / below / normal
ruleobjectplan_windows[]、target_value、threshold、duration_min、effective_period
alarm_recordsarrayIoT 告警记录:{time, alarm_type, level, status, description};可为空
maintenance_recordsarray资产维修/保养/巡检记录:{time, type, source, summary, status};可为空
evidence_urlstring运行记录或证据图链接,可为空
data_qualityobjectmissing_points、note

注:4.1 是诊断结果清单,4.2 是同一 anomaly_id 的证据明细;数据来自设备时序 + 规则配置 + 周边记录,不是第二套诊断。不假设有基线:没有历史/同类基线时只陈述时序与记录,不给偏差判断。周边记录(IoT 告警、维修/保养/巡检)取不到时对应字段为空,不编造。证据只用于解释,不用于重新判定。series 只返回异常前后必要时段,不返回全天全表。

4.3 工单 MCP ​

Tool:create_workorder

项内容
作用按确认后的异常建工单
入参anomaly_id、title、description、priority
返回workorder_id、status

注:写操作必须先由用户确认;M4 不封装派单、转办、关闭。


5. Skill 设计 ​

5.1 职责 ​

Skill 把「定范围 → 查异常 → 分组 → 取证据 → 输出 → 确认建单」写死,保证异常口径和输出结构一致。

5.2 流程 ​

5.3 Skill 提示词草稿 ​

你是上海交通大学新院区 IBMS 的管理者助手,负责回答能耗异常。

输入:
- 管理者 ID:demo 固定 M1001
- 默认时间范围:最近 7 天;用户指定时以用户为准

步骤:
1. 解析范围:时间、楼/层/空间、设备(可选)。
2. 调 query_energy_anomalies(start_date, end_date, types, scope_node_id)。
3. 有异常时按「时段类 / 阈值类」分组输出;用户要证据或单设备深挖时,调 query_anomaly_evidence。
4. 用户明确确认转工单时,调 create_workorder;未确认不建单。

输出要求:
- 只用 Markdown 和 Mermaid,不输出 JSON、不用 HTML。
- 先给结论(命中多少条、两类各多少),再给分组表。
- 每条异常写:设备、异常现象、时段、超出电量或越限值。
- 可能原因最多 3 条,用「可能/需核实」表述,不判定故障。
- 无异常时明确说「未发现异常」,不编造原因。
- 规则未配置时说明未配置,不推断。
- 不生成优化策略,不通过对话下发控制。
- 一次回复最多 2 张图,只在深挖单设备时画证据曲线。

5.4 工具调用顺序与失败策略 ​

步骤调用失败时
1query_energy_anomalies说明失败,不出清单;不推断
2query_anomaly_evidence给清单但标注「证据不可用」
3create_workorder说明失败原因,给工单系统入口

注:异常清单是主数据,拿不到就不出;证据是辅助,失败不影响清单。


6. 定时任务配置 ​

无。

M4 是被动问答。运维侧的能源异常主动处置归 O5;管理者侧的月度汇总归 M10。


7. 权限与数据范围 ​

  • 管理者账号 M1001,demo 数据范围「全院」;生产按授权空间树节点裁剪。
  • 数据裁剪在 MCP 层按 scope_node_id 校验,不靠提示词约束。
  • 只返回设备与空间维度的异常摘要,不返回设备原始运行全表、个人数据。
  • 建单权限单独校验:只允许对授权范围内的异常建单。

8. 验收要点 ​

#验收项标准
1分组异常按「时段类 / 阈值类」分组,不混排
2字段每条含设备、现象、时段、超出电量或越限值
3无异常明确说「未发现异常」,不编原因
4规则未配置说明未配置,不推断异常
5故障口径用「可能/需核实」,不把异常直接判成故障
6证据深挖时曲线与规则目标值一致;证据缺失时标注
7建单只有用户确认后才建单,返回工单号
8边界不生成优化策略、不下发控制、不替代工单系统派单
9数据范围只出现授权范围内的设备和空间

9. 已确认与待确认 ​

9.1 已确认 ​

#事项结论
1交互形态被动问答,无定时任务
2异常口径对外统一叫异常,按时段类/阈值类分组
3输出结论 + 分组表 + 可能原因,最多 2 张图
4建单用户确认后才建单,不批量默认建
5边界不做优化策略、不下发控制、异常≠故障
6空间主数据以空间树为唯一来源,异常查询用 scope_node_id

9.2 待确认 ​

  1. 新院区规则配置:行为诊断/异常诊断规则是否已按空间、设备、时段配置;未配置则异常清单为空。
  2. 诊断与地点的关联:现有诊断是否都绑定空间/设备?是否存在只按系统或设备类型配置、无法落到空间树的规则?若有,Agent 只能按设备维度展示,不做空间汇总,需要先补设备—空间映射。
  3. 超出电量算法:没有基线数据时按额定功率 × 超时时段估算;若后续有同类/历史基线再考虑差值法。口径由能源板块定。
  4. 证据保存期限:运行记录与温度点位保留多久;超过期限无法回看。
  5. 周边记录来源:IoT 告警、资产维修/保养/巡检记录由哪些系统提供、能否按设备和时间窗查询;取不到时只给设备时序,不编造。
  6. 建单字段与工单系统接口:标题、描述、优先级、附件(证据图)如何映射。
  7. 重复异常处理:同一设备连续多天命中,是每天一条还是合并为一条;与 O5 的推送口径如何对齐。
  8. 阈值与持续时间可配:温度阈值、持续时长由谁维护。

10. 关联文档 ​

文档关联内容
01_能源类AI能力-现状与自有发挥.md §2、§4 示例 3/4行为诊断/异常诊断规则、证据与可能原因示例
03_设备预测性维护-技术路径与项目方案.md设备台账与异常/工单闭环(建单边界)
08_移动端AI场景设计.md §6、§7、§10运维侧 O5、管理者时间线、M4 模块定义
公共规范.md前端形态、常驻会话、智能体边界、输出规范、场景 PRD 模板

注:上述文档与本文保持一致。如有差异,以本文为准,回写更新对应文档。

内部方案材料,请勿外传