Skip to content

M5 双碳与能源月报(Demo 场景 PRD) ​

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

1. 场景定义 ​

1.1 一句话 ​

管理者问「10 月院区碳排多少,按楼栋拆一下」,Agent 调碳核算给碳排与来源结构;说「出一份能源月报」,Agent 汇总当月能耗、费用、碳排与异常,给一页摘要 + 报告引擎链接。

1.2 用户与价值 ​

项内容
用户管理者(demo 固定账号 M1001,数据范围全院)
价值不用等应用板块出表、不用手工对数;碳排当场拆解,月报当场给链接
频次按需,无定时推送
层级L2 数据查询 + L6 报告生成

1.3 触发方式 ​

  • 被动问答,没有定时任务。
  • 典型 query:
    • 「10 月院区碳排多少?按楼栋拆一下。」
    • 「碳排来源是什么?电、气、冷热各占多少?」
    • 「年度碳目标完成多少了?」
    • 「出一份 10 月能源月报。」
  • 两个意图一轮只处理一个:先答碳排,用户再说「顺手出个月报」时另起一条,不合并。
  • 月份不明确时,默认上一个自然月,并在回答中写明。

1.4 边界 ​

不做原因
不做用能画像单空间树节点的能耗结构归 M3
不做异常诊断与归因异常清单、规则命中归 M4
不做节能建议规则诊断解释归 M6;优化策略不在本期
不自建碳核算因子库、分摊规则、核算标准由应用板块提供;M5 只调用与展示
不做动态报告排版报告引擎是固定模板,M5 给 URL + 摘要;动态 LLM 报告属专项改造
不做 PDF 下载/邮件发送只在聊天区展示并给链接
不做月度主动推送主动推送归 M10 月度报告

2. Demo 形态 ​

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

本场景只约定:

  • 管理者在常驻会话里直接提问,回答落在聊天区,不写首页洞察卡片(M5 不是 L4 主动服务)。
  • 月报以「摘要 + 报告链接」交付,不生成文件、不发邮件。
  • 追问沿用上下文:先问碳排,再问「按系统拆呢」,Agent 沿用同一个月和范围。

注:演示方式——登录管理者账号,点悬浮球,依次问「10 月院区碳排多少?按楼栋拆一下」「出一份 10 月能源月报」。


3. Agent 输出设计 ​

3.1 输出元素 ​

元素用途
Markdown 文字结论、口径说明、因子版本、数据缺口
Markdown 表格碳排来源、空间节点拆分、月报总览
Mermaid pie碳排来源占比
Mermaid xychart-beta月内能耗趋势(月报时可选)
Markdown 链接报告引擎 URL

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

3.2 碳排查询 ​

用户

10 月院区碳排多少?按楼栋拆一下

Agent

10 月总碳排 186.4 tCO₂e,环比 +3.2%;电占 68%,是主要来源。

来源碳排(tCO₂e)占比
电126.868%
天然气41.022%
冷热11.26%
水7.44%
空间节点(示例:楼栋)碳排(tCO₂e)占比
A 楼108.158%
B 楼78.342%

年度目标 1,280 tCO₂e,已发生 921 tCO₂e,进度 72%,按当前节奏预计超出目标 3%。因子库版本 v2026-A;分摊口径以应用板块为准。

3.3 能源月报 ​

用户

出一份 10 月能源月报。

Agent

2026 年 10 月能源月报已生成。 摘要:总能耗 386,400 kWh(环比 +5.2%),费用 ¥308,600(+5.2%),碳排 186.4 tCO₂e(+3.2%);异常 12 条,已闭环 9 条。 碳排来源:电 68%、天然气 22%、冷热 6%、水 4%。 碳目标:年度进度 72%,按当前节奏预计超出目标 3%。 查看完整报告:2026 年 10 月能源月报 说明:报告由报告引擎按固定模板生成,因子版本 v2026-A。

  • 报告 URL 由报告引擎返回,不由模型拼接;status=not_ready 时写「本月报告尚未生成」,只给摘要。
  • 月报为全院统一口径,不区分地点;用户指定楼栋时也不单独出月报,只说明月报是全院口径。
  • 摘要最多 6 行,不展开章节;用户要看细节,引导打开链接或改问 M3/M4。

3.4 异常与降级 ​

情况输出
碳因子未配置/不可用碳排写「碳核算暂不可用」,能耗与费用照常
分摊规则未定只给全院总量,节点拆分写「分摊口径待定」
同比不足 1 年同比写「暂无」,只给环比
费用单价未配置费用写「暂无」,不估算
报告未生成/查询失败摘要照常输出,链接位置写「本月报告尚未生成」
月份无数据写「该月暂无数据」,不生成空报告
越权节点拒绝并说明授权范围

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

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

碳排查询:

结构固定:结论 → 来源表 → 饼图 → 目标进度 → 因子与口径注。

能源月报:

输出 = 一段摘要 + 报告链接,不重复报告全文:

{月}能源月报已生成:{报告标题}
摘要:总能耗 {值}({环比}),费用 {值}({环比}),碳排 {值}({环比});异常 {条数} 条,已闭环 {条数}。
碳排来源:电 {x}%、气 {x}%、冷热 {x}%、水 {x}%。
碳目标:年度进度 {x}%。
查看完整报告:{报告引擎 URL}
说明:报告由报告引擎按固定模板生成;因子版本 {版本}。

4. MCP 设计 ​

4.1 空间树 MCP ​

Tool:query_space_tree

项内容
作用查询空间树节点及子节点,把「A 楼」「3 层」「全院」解析成节点
入参node_id(可选,空则根节点)、query(可选)、depth(默认 1)
返回node、children[]、matches[];字段同 M3 §4.1

注:空间主数据以空间树为唯一来源,不单独定义楼栋/楼层编码。碳排按空间节点拆分时,dimension=space_node 由 MCP 在空间树中取对应层级节点聚合。

4.2 能耗指标 MCP ​

Tool:query_energy_metrics

项内容
作用查时间窗内的能耗、费用与对比
入参start_date、end_date、granularity(day/month)、dimension(space_node/system/time_period)、node_level(可选,按空间树层级聚合,默认取当前节点的下一级)、scope_node_id(空间树节点,默认根节点)、systems(可选)

返回:

字段类型说明
seriesarray{bucket, energy_kwh, cost}
totalobjectenergy_kwh、cost、area_m2、intensity
compareobjectmom_pct、yoy_pct;无数据为 null
data_qualityobjectcompleteness_pct、missing_dates[]

注:费用、强度、环比/同比由 MCP 算好;无数据返回 null,不给 0。

4.3 碳核算 MCP ​

Tool:query_carbon

项内容
作用查时间窗内的碳排、来源结构与目标进度
入参start_date、end_date、dimension(space_node/system)、node_level(可选)、scope_node_id(空间树节点,默认根节点)

返回:

字段类型说明
emission_kgnumber总碳排(kgCO₂e)
by_systemarray{key, emission_kg, share_pct}
by_nodearray{node_id, node_name, level, emission_kg, share_pct}
targetobjectvalue、progress_pct、projected_year_end
factor_versionstring因子库版本
data_qualityobjectmissing_days[]、note

注:因子库、分摊规则、核算标准由应用板块提供;MCP 只读,不在 Agent 侧做碳核算。因子版本必须随结果返回。

4.4 报告引擎 MCP ​

Tool:get_energy_report

项内容
作用查询报告引擎已定时生成的能源月报,返回可访问链接;不触发生成
入参month(YYYY-MM)
返回status(ready / not_ready / failed)、report_url、title、generated_at、factor_version

URL 规则:报告引擎按固定路径生成,{REPORT_BASE_URL}/energy/{YYYY-MM};拼接由 MCP 按配置模板完成,Agent 只使用返回值,不在提示词里手拼。月报全院统一一份,URL 不带地点参数。

注:报告由报告引擎的定时任务自动生成;M5 只查状态和 URL,不触发生成、不重排章节。status=not_ready 时写「本月报告尚未生成」,若报告引擎返回预计生成时间则一并给出。


5. Skill 设计 ​

5.1 职责 ​

只封装「能源月报」这一条固定流程,保证每次出报的摘要字段、顺序和链接位置一致。碳排问答不做 Skill——维度多(来源/节点/系统/目标),写死流程反而答不好。

5.2 流程 ​

5.3 Skill 提示词草稿 ​

你是上海交通大学新院区 IBMS 的管理者助手,负责查询并展示能源月报。

输入:
- 月份:从用户话里提取;未说明时用上一个自然月
- 范围:固定全院;月报统一一份,不区分地点

步骤:
1. 调 query_energy_metrics(start_date=月初, end_date=月末, granularity=month, dimension=system, scope_node_id=根节点)。
2. 调 query_carbon(start_date=月初, end_date=月末, dimension=system, scope_node_id=根节点)。
3. 调 get_energy_report(month=YYYY-MM)。
4. 按模板输出一段摘要 + 报告链接。

输出要求:
- 只用 Markdown,不输出 JSON、不用 HTML。
- 摘要最多 6 行:总能耗、费用、碳排各带环比;异常条数与闭环数;碳目标进度;报告链接。
- 不在聊天区复述报告全文,不重排章节。
- 报告 URL 直接用工具返回值;`status=not_ready` 时写「本月报告尚未生成」,不自己拼接 URL。
- 碳因子未配置时碳段写「碳核算暂不可用」,不估算。
- 因子版本必须写。
- 不做 PDF、不发邮件、不给快捷按钮。

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

步骤调用失败时
1query_energy_metrics不出月报,说明失败原因
2query_carbon摘要省略碳段,标注「碳核算暂不可用」
3get_energy_report摘要照常,链接写「本月报告尚未生成」

注:能耗是主数据,拿不到就不出报;碳与报告是分章节,失败降级输出,不整份作废。

5.5 碳排问答怎么走 ​

不使用 Skill,直接由 ReAct 调工具:

  1. 先判断维度:来源/系统(system)、空间节点(space_node)、目标(target);
  2. 调 query_carbon 对应 dimension,需要总量/费用时同时调 query_energy_metrics;
  3. 只给数值、占比和因子版本,不做原因推测——原因归 M4,建议归 M6。

6. 定时任务配置 ​

无。

M5 是被动问答。月度主动推送归 M10 月度报告;M10 的能源与碳段直接引用本场景的口径,不重复定义。


7. 权限与数据范围 ​

  • 管理者账号 M1001,demo 数据范围「全院」;生产按授权空间树节点裁剪。
  • 数据裁剪在 MCP 层按 scope_node_id 校验,不靠提示词约束。
  • 只返回聚合碳排与能耗,不返回表计原始读数、个人数据。
  • 报告链接需带访问校验:只能打开授权范围内的报告,链接不长期公开。
  • 越权查询直接拒绝并说明当前范围。

8. 验收要点 ​

#验收项标准
1碳排查询总量、来源表、饼图、目标进度齐全,数值与 MCP 一致
2因子版本每次碳排结果都写明因子库版本
3月报摘要 ≤6 行 + 报告链接,不在聊天区复述全文
4链接URL 来自报告引擎返回值;未生成时明确写「本月报告尚未生成」
5空值因子/费用/同比缺失写「暂无」,不填 0
6边界不做归因、不给节能建议、不做 PDF/邮件
7口径分摊规则未定时节点拆分标「待定」,不硬拆
8越权查未授权节点被拒绝并给出范围说明
9月报范围全院统一一份,不区分地点;URL 固定 + 月份

9. 已确认与待确认 ​

9.1 已确认 ​

#事项结论
1交互形态被动问答,无定时任务;碳排/月报一轮一个
2碳核算归属因子库、分摊规则、标准由应用板块提供,M5 只读展示
3月报形态全院统一一份,聊天区摘要 + 报告引擎 URL,不做 PDF
4报告模板报告引擎固定模板;动态 LLM 报告不在本期
5与 M10 关系月度主动推送归 M10,M5 不重复
6空间主数据以空间树为唯一来源,查询范围用 scope_node_id
7月报范围不区分地点;固定 URL + 月份,不按楼栋/楼层生成

9.2 待确认 ​

  1. 碳因子来源与版本:应用板块提供哪套因子、版本如何管理、分摊规则由谁定。
  2. 碳目标值:年度目标、进度口径、预计年终点由谁提供。
  3. 报告引擎与 URL:报告由报告引擎定时任务自动生成;需核实是否有全院统一月报模板、移动端/外部端能否正常展示、固定 URL 模板 {REPORT_BASE_URL}/energy/{YYYY-MM} 是否可用、URL 有效期与权限校验、未生成时是否返回预计时间。
  4. 费用单价:分时电价还是平均电价;未定则费用列写「暂无」。
  5. 空间节点/系统拆分:公共区、冷热站如何分摊到节点;分摊未定时只给全院。
  6. 历史数据:是否已有 ≥1 年数据;不足时同比写「暂无」。
  7. 空间树与碳/能耗归属:表计与碳排数据是否都能挂到空间树节点;节点拆分是否按树聚合。

10. 关联文档 ​

文档关联内容
01_能源类AI能力-现状与自有发挥.md §4 示例 8/9、附录 B双碳核算与月报形态、因子/分摊待确认事项
08_移动端AI场景设计.md §7、§10管理者时间线、M5 模块定义
00_总览-方案与主线.md §2、§4能源主线定位、Skill/MCP 分层
公共规范.md前端形态、常驻会话、智能体边界、输出规范、场景 PRD 模板

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

内部方案材料,请勿外传