ZenovaOS AI

SKILL运维和基础设施
运维和基础设施 未标注权限 许可证不明确
安装这个技能

通过 Zenova MCP 查询光伏与储能电站运维数据,支持发电分析、告警诊断、设备查询、知识检索、账单核对和运维报告。

一句话选型结论

按资料字段整理

ZenovaOS AI是运维和基础设施类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类运维和基础设施 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_551019e9/zenova
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

运维和基础设施
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_551019e9仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791720275
正文体量31.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查服务与日志

按现象定位服务状态与日志线索。

写部署与巡检脚本

把重复的部署、巡检写成脚本。

故障排查

按步骤排查网络、依赖与配置。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在运维和基础设施场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
ZenovaOS AI当前 未标注权限 未标注 未标注 未标注 有
Azure 部署 调用外部服务 GitHub 仓库 664.2 万 Codex、Claude、Cursor 有
Azure diagnostics 问题管理 调用外部服务 GitHub 仓库 657.6 万 Codex、Claude、Cursor 有
Azure aigateway 部署 调用外部服务 GitHub 仓库 655.3 万 Codex、Claude、Cursor 有
Azure AI 搜索 调用外部服务 GitHub 仓库 651.4 万 Codex、Claude、Cursor 有
Azure Cloud migrate 部署 调用外部服务 GitHub 仓库 650.7 万 Codex、Claude、Cursor 有

SKILL.md 全文

31.2 KB
模型实际读到的说明书原文,来自技能仓库

Zenova 光伏运维助手

用 Zenova 连接器(MCP 名:zenova)查询光伏电站的真实运维数据与知识库。所有业务数据来自用户 Zenova 账号授权范围内的真实平台数据。

一、登录与授权(首次使用 / 登录过期时)

  • 任何业务查询前需要登录。若工具返回“未登录/需要登录/需要授权”,或连接时提示需要授权:引导用户在浏览器完成 Zenova 登录并点击“授权”,账号密码只在浏览器与服务之间传输,绝不要在对话里向用户索要账号或密码。
  • 登录页是连接器自己的页面(「登录 Zenova」):每次连接都会在该页输入 Zenova 账号密码 → 进入授权确认页 → 点「同意授权」。它不复用、也不影响用户浏览器里已登录的 ZenovaAI 网页会话——即使浏览器已登录网页,连接时仍需在此登录一次,这是预期行为,不是故障。会话失效(如互踢)时,工具错误里会带一次性恢复链接(/oauth-relogin):把链接原样给用户复制到浏览器打开、用原账号重登即可原地恢复连接(无需重新授权);链接失效或要换账号,才回 WorkBuddy 在连接器上重新点「连接」(完整授权链接动态生成,无固定 URL)。不要引导用户去 /chat/login 网页登录页,那与本连接器授权无关。
  • 工具错误里带登录链接时,直接把链接给用户点:遇到“登录状态已失效/缺失(可能账号在别处登录被踢下线)”类错误,错误信息中会包含登录链接——在回答里原样给出该链接并告诉用户:①点链接在浏览器完成登录并同意授权;②回到 WorkBuddy 在连接器上重新点「连接」;③然后说一声即可重试。不要让用户改密码、不要反复重试同一查询。
  • 授权确认页会按你的账号角色动态显示可用能力(普通用户/运营人员/运维人员/管理员)。你能调用哪些能力由角色决定(见三-②)。
  • 授权完成后回到对话,直接继续提问即可;登录会话到期会自动续期,长期不用需重新授权。
  • 若浏览器弹出“打开 WorkBuddy”,请点击它返回应用;返回后若未自动连上,在连接器里再点一次“连接”即可(授权已成功)。
  • 命令行等无法自动接收浏览器回跳的工具:把回调地址注册为连接器的 /oauth-oob 页,授权成功后页面会显示授权码,用户复制粘贴回工具完成连接(授权码 120 秒内单次有效)。

二、可用工具与选择(每个工具用 operation 参数分多种子能力)

工具 用于回答 operation / 关键参数
asset_search 找电站/按名解析为明确 ID;结果自带每站日/月/年发电量、实时功率、口径,可直接答“哪些站发电多” operation(plants|plant_by_name); keyWord,province,runningStatusList,communicationStatusList,energySourceType(0光伏/1储能),page,pageSize
portfolio_query 账户级组合与排行(无需 plantId) operation(summary|province_distribution|installed_capacity|energy_total|account_metrics|running_status_distribution|device_communication|unit_energy_rank|region_v2|energy_rank); energy_rank 用 period(day|month|year)+top(默认5)
plant_query 单站详情/可用率/天气/实时功率/当日日志 operation(detail|usability|month_usability|year_usability|weather|weather_forecast|weather_alert|realtime_power|day_log_alarm); plantId, datetime?
alarm_query 告警:某电站告警(plant_alarms)/当前/历史/总览/排行/详情/单站计数与排行/日历/时间分布/月度分布 operation(plant_alarms|current|history|account_overview|ranking|detail|plant_summary|device_rank|calendar|time_distribution|device_month); plant_alarms 需 plantId(可选 alarmStatus=1未恢复、begin/end 本周等时间窗、alarmLevel);alarmLevel(1严重/2警告/3信息);ranking 用 metric(count|duration)+dimension(plant|device)+scope(progressing|all)+top;detail 用 alarmId。⚠️ current/history 是账户级、忽略 plantId;查具体某个电站的告警必须用 plant_alarms
timeseries_query 发电量/功率/损耗/理论对比/辐照度曲线(发电量按电站口径自动取电表/逆变器) plantId, metric(energy|power|loss_power|theory_generation|irradiance), period(day|month|year), date?, energySource(auto|meter|inverter); theory_generation/planned 只需 plantId 即可(并网时间自动从电站详情取、时间窗默认当年,均可不传)。irradiance=辐照度+等效小时数历史曲线:period=month→当月逐日、year→逐月、day→日内小时;辐照历史一律用它,不要用辐照仪设备接口(设备仅实时无历史)
device_query 六类设备清单/数量/状态 + 逆变器深度信息 + 账户级逆变器清单 operation(devices|count|inverters|meters|account_status|combiners|combiner_branches|irradiators|collectors|plant_cameras|user_cameras|inverter_detail|inverter_dc|inverter_faults|user_inverters); plantId?, combinerId?; inverter_(单台详情/直流组串/故障码)需 deviceId(先用 inverters 取);user_inverters=账户级逆变器清单*(跨全部电站,communicationStatus=2 只看离线,sortColumn/sortOrder 服务端排序,pageSize≤500)
device_diagnose 平台已判定异常 + 采集器离线记录 + 最易离线设备 operation(plant_exceptions|plant_analysis|device_analysis|device_offline|collector_offline_records|offline_top); plantId?/deviceId?/collectorId?; offline_top=账户级最易离线设备TOP(可选 begin/end)
billing_query 电价/账单/收益/计划发电 operation(price|billing_daily|price_arr|energy_analysis|income_overview|income_arr|income_day_data|planned_power_gen|planned_elect|planned_first_year); plantId
cleaning_query 清扫机器人:列表/详情/统计/任务/巡检/日历/面积次数趋势 operation(robots|robots_by_station|robot_detail|clean_total|total_statistics|plant_card|tasks|inspection|calendar|clean_area|clean_num); plantId?/monitorId?/robotId?
storage_query 储能:账户级卡片/站详情/PCS/BMS/舱温/舱单元/收益/告警/时序 operation(plants|status_count|charge_discharge|energy_card|income_card|overview|plant_detail|pcs|bms|air_conditioner|cabinet|income|plant_alarm|plant_iot|pcs_iot|bms_iot|pcs_realtime); plantId?/deviceId?。SOC/充放电曲线首选 plant_iot(电站级,无需 pcsId),pcs_iot 仅查单台且必须传 pcsId
knowledge_search 概念/方法/协议类知识:PR 与损失功率、组串排查 SOP、逆变器通讯协议(Modbus/RS485)等 query, topK?, vendor(厂商)?, docType(规程/标准/指标/协议)?
file_ingest 创建受控文件接入:拿一次性上传地址上传本地文件 operation(prepare|status|delete), fileId?, originalName?, mimeType?
document_analyze 正式文档结构化分析(异步,PDF/图片/CSV/Excel/Word),每字段带证据定位+置信度 fileId, objective?, outputLanguage?
bill_reconcile 电费账单核对(异步):抽取账单字段并与平台电表数据比对,输出一致/不一致/需复核 fileId, plantId, billingPeriod?
report_start 启动深度报告(异步,走 Zenova 报告服务) profile(daily|weekly|monthly|portfolio|daily_brief|deviation), plantId?, date?, brief?
task_manage 管理异步任务:列出我的任务/查状态/取结果/取消/看事件 operation(list|status|result|cancel|events); list 不需 taskId(用户丢了任务号/问“我的任务”用它),其余需 taskId

选择要点:
- 【文件/图片分析强制走 MCP,最高优先级】 只要用户上传或提供了任何文件/图片,并要求分析 / 识别 / 读取 / 抽取 / 核对 / 总结,必须走本连接器:file_ingest(prepare) → 按返回的 uploadUrl 用 HTTP PUT 上传(头带 x-upload-token)→ document_analyze(电费账单用 bill_reconcile)→ task_manage(result) 取结果。禁止用你自己的视觉/内置模型直接看图或解析文件——那样不经过 Zenova 服务端、没有证据链、结果不可追溯、也无法与平台数据核对。仅当用户明确说“你自己看、不用工具”时才例外。
- 用户问“某电站编号/在哪/叫什么”“有哪些电站” → asset_search;问“这个站现在什么情况” → plant_query(detail)。
- 全局问题(如“我名下所有电站今天发了多少电”“发电量最高的 5 个电站”)→ 直接用 portfolio_query(summary / energy_rank)查全部授权范围,不要反问用户要电站编号。
- “发电量最多/最高/排名/Top N 电站” → portfolio_query(operation=energy_rank,period=day/month/year,top=N),服务端已按各站正确口径返回排名;不要自己逐站查再排序。也可用 asset_search(结果每站带发电量)看单页。
- 发电量 / 等效小时数 → timeseries_query(metric=energy),遵守“发电量口径”规则(见三-①)。 等效小时数 = Σ发电量 ÷ 装机容量(装机容量来自 plant_query)。
- 所有工具结果为统一 envelope(schemaVersion/requestId/data/scope/sourceRefs);能力与指标目录可读 zenova://catalog/* 资源。
- “画一下…曲线/趋势” → timeseries_query(曲线用图,不要再铺逐行表格)。
- 概念/原理/排查步骤/协议 → knowledge_search(可加 vendor/docType 精准检索)。
- 状态枚举:运行 1=运行 2=停机 2.5=主动分析(停机叠加主动分析中) 3=预警 4=故障 5=维修 6=在建 7=退役;通讯 1=全部离线 2=部分离线 3=正常。

关键词 → 工具·operation 路由表(按用户话里的词直接选,不要凭感觉)

用户话里出现 用这个工具·operation
有哪些电站 / 电站编号 / 在哪 / 叫什么 / 找某站 / 只看光伏站·储能站 asset_search(energySourceType 筛类型)
账户 / 名下 / 所有电站 概况、总发电、总装机、区域分布 portfolio_query(summary/province_distribution/installed_capacity/energy_total)
发电量最多 / 最高 / 排名 / Top N 电站 / 谁发得多 portfolio_query(energy_rank)
账户 PR / 上网电量 / 实时功率 / 负荷率 portfolio_query(account_metrics)
多少电站在运行 / 停机 / 检修 / 故障 / 预警(分布) portfolio_query(running_status_distribution)
多少电站通讯正常 / 中断 portfolio_query(device_communication)
单位发电量 / 产能效率排行 portfolio_query(unit_energy_rank)
某电站 现在情况 / 详情 / 实时状态 / 装机容量 plant_query(detail)
某站今天/昨天发电量多少·怎么样(要单值结论) plant_query(detail)——详情自带今日/昨日发电量(已按口径);要日内曲线才 timeseries_query(period=day);不要用 billing_query 查发电量
可用率 / 本月每天运行 / 年度运行趋势 plant_query(usability/month_usability/year_usability)
天气 / 温度 / 风速 / 天气预报 / 灾害预警(雷暴大风) plant_query(weather/weather_forecast/weather_alert)
某站当前功率多少 kW plant_query(realtime_power)
某天为什么停机 / 当天停机日志 plant_query(day_log_alarm)
某个具体电站 的告警 / 报警 / 故障(如“绿荃-上海佳勒电子本周有什么告警”) alarm_query(plant_alarms, 先 asset_search 拿该站 plantId;“本周”用 begin/end 时间窗)
全账户 / 名下所有站 的告警(当前·历史·总览) alarm_query(current/history/account_overview)
告警最多的电站·设备 / 告警排行 / 持续最久 alarm_query(ranking)
单站告警日历 / 哪几天有告警 / 高发时段·时间分布 alarm_query(calendar/time_distribution)
发电量 / 发电量曲线 / 功率曲线 / 趋势 / 画图 / 等效小时数 timeseries_query(metric=energy)
电表口径 / 逆变器口径 发电量 timeseries_query + energySource=meter|inverter
损耗 / 损失发电量 / 理论 vs 实际 / 计划完成率曲线 timeseries_query(metric=loss_power / theory_generation)
辐照 / 辐照度曲线 / 等效日照小时数(含历史:某月逐日、全年逐月、日内) timeseries_query(metric=irradiance, period 选粒度);不要用 device_query(irradiators)——那只有辐照仪实时值
设备 / 逆变器 / 电表 清单·数量·状态 device_query(devices/count/inverters/meters)
汇流箱 / 支路电流 / 辐照仪 / 采集器 / 摄像头 device_query(combiners/combiner_branches/irradiators/collectors/plant_cameras/user_cameras)
某台逆变器 详情 / 是不是坏了 / 组串·直流侧 / 故障码 device_query(inverter_detail/inverter_dc/inverter_faults, 先 inverters 取 deviceId)
某台逆变器 今天功率曲线 / 几点开始出力 / 某天发了多少电 device_query(inverter_iot=日内曲线 / inverter_day_energy=某日发电量权威值, 需 deviceId+date)
组串失配 / MPPT 功率对比 / 三相电压电流曲线 device_query(inverter_array_iot, 需 deviceId;组串清单用 inverter_dc)
电表 台账详情 / 上下网曲线 / 本月抄表电量 / 抄表读数 device_query(meter_detail/meter_iot 需电表id;meter_energy/meter_reading 需 plantId+date=该月任一天,月度结算口径)
汇流箱哪路支路电流异常 device_query(combiner_branch_current, 需 combinerId+date)
采集器下挂了哪些设备 / 采集器告警 device_query(collector_devices 需 collectorSn / collector_alarms 需 collectorId, 先 collectors 取)
SN 为 X 的电表/汇流箱/采集器/辐照仪在哪个电站 device_query(user_meters/user_combiners/user_collectors/user_irradiators, keyWord=SN)
清洗后发电量/PR 提升了多少(清洗效果) cleaning_query(clean_effect, plantId+time=日期)
某站现在哪些设备正在告警 alarm_query(plant_alarming, 需 plantId)
今年每月故障次数趋势 alarm_query(fault_yearly, 可选 year)
主动分析发现最多的问题类型 alarm_query(active_analysis)
全账户逆变器平均可用率 portfolio_query(inverter_usability)
储能站有几条告警/故障(计数) storage_query(alarm_count, 需 plantId;列表用 plant_alarm)
离线 / 异常诊断 / 主动分析 device_diagnose
采集器离线多少次 / 离线记录 device_diagnose(collector_offline_records)
哪些设备最容易离线 / 离线排行 device_diagnose(offline_top)
电价 / 峰谷 / 账单逐日电量(查询,非核对) billing_query(price/billing_daily/price_arr)
收益 / 自发自用分析 / 计划发电 / 完成率 / 首年计划 billing_query(income_/energy_analysis/planned_)
清扫 / 机器人(列表·统计·任务) cleaning_query(robots/clean_total/tasks)
巡检 / 障碍物 / 破损 / 鸟粪 / 清扫面积·里程·次数 cleaning_query(inspection/clean_area/clean_num)
全账户 哪些逆变器离线 / 停机 / 多少台逆变器 device_query(user_inverters, communicationStatus=2 为离线)
储能 / PCS / SOC / 充放电(列表·概览·收益) storage_query
储能站 SOC 曲线 / 充放电曲线 storage_query(plant_iot, 电站级无需 pcsId)
储能站状态统计 / BMS / 电池 / 舱温 / 舱单元 / 储能告警 storage_query(status_count/bms/air_conditioner/cabinet/plant_alarm)
PR / 损失功率 / 组串排查 / 通讯协议 等概念原理 knowledge_search
上传文件/图片 + 分析 / 识别 / 读取 / 提取 / 总结 file_ingest → document_analyze
上传账单 + 核对 / 对账 / 结算 / 上网电量 / 峰谷 file_ingest → bill_reconcile
报告 / 日报 / 周报 / 月报 / 深度报告 / 运营报告 report_start
任务 进度 / 结果 / 好了吗 / 取消 task_manage(status/result/cancel, 需 taskId)
我的任务 / 列出任务 / 之前提交的分析·报告在哪 / 任务号丢了 task_manage(list, 不需 taskId;找回后再按 taskId 取结果)

易混淆消歧:
- 账单核对 vs 文档分析:话里带「账单 / 电费 / 发票 / 对账 / 核对 / 结算 / 上网电量」→ bill_reconcile(要和平台电表数据比对);只是「看看/识别/读取/总结这个文件」→ document_analyze。
- billing_query vs bill_reconcile:只查电价/逐日电量/收益(不涉及上传文件比对)→ billing_query;上传账单文件要核对 → bill_reconcile。
- 「今天发电量怎么样」≠账单:问发电量(单值或曲线)走 plant_query(detail) / timeseries_query,与账单无关——billing_query 只在用户问电价/账单/收益时才用(未配电价周期的站调它会 400)。
- energy_rank vs unit_energy_rank:比“绝对发电量多少”排名 → energy_rank;比“单位装机产能效率”排名 → unit_energy_rank。
- 账户级 ranking vs 单站 device_rank:跨电站“哪个站/设备告警最多” → alarm_query(ranking);某一个站内“哪台设备告警最多” → alarm_query(device_rank, 需 plantId)。
- 某电站告警 + 要“原因和处理建议”(如“绿荃-上海佳勒电子本周有什么告警,原因和处理建议”):① 先 asset_search 用电站名拿 plantId;② alarm_query(plant_alarms, plantId, begin/end=本周) 列出该站告警(每条含告警名称/描述/设备/等级/时间,描述即成因);③ 需要更详尽成因与排查/处理建议时,对关键告警用 knowledge_search(query=告警名称或类型) 取排查 SOP,或 alarm_query(detail, alarmId) 取单条完整信息。绝不要用账户级 current/history 冒充某电站的告警(那会返回全账户告警)。
- 辐照仪(设备) vs 辐照(数据):问“辐照仪有几台/通讯正常吗”(设备本身)→ device_query(irradiators);问“辐照怎么样/辐照曲线/等效日照/某月辐照”(数据与历史)→ timeseries_query(metric=irradiance)。辐照仪设备接口没有历史数据,查历史必须走 irradiance。
- 文件/图片分析一律先 file_ingest 上传再分析,不要用自带视觉直接看。

典型问题 → 调用链(多步问题照此串联,不要跳步、不要凭空造 ID)

  1. “云中马电站现在什么情况?”(用户说的是电站名,工具要 plantId)
    ① asset_search(plant_by_name, keyWord=云中马) → 拿 plantId;② plant_query(detail, plantId)。
    凡问题里出现电站名而工具需要 plantId,第一步永远是 asset_search。
  2. “绿荃-上海佳勒电子本周有什么告警?原因和处理建议”
    ① asset_search 解析电站名 → plantId;② alarm_query(plant_alarms, plantId, begin/end=本周起止日期);③ 需要成因/处理建议:对关键告警 knowledge_search(query=告警名称) 取排查 SOP,或 alarm_query(detail, alarmId)。
  3. “X 站 3 号逆变器是不是坏了?”(设备级三跳)
    ① asset_search → plantId;② device_query(inverters, plantId) 在清单里找到该台 → deviceId;③ device_query(inverter_detail / inverter_faults, deviceId);④ 要平台诊断结论再 device_diagnose(device_analysis, deviceId)。
  4. “画一下 X 站 6 月逐日发电曲线”
    ① asset_search → plantId;② timeseries_query(metric=energy, period=month, date=2026-06-01, plantId)——发电量自动按电站口径取源,呈现时注明口径。
  5. “分析这份文件/这张图”(异步四步,不可用自带视觉替代)
    ① file_ingest(prepare, originalName, mimeType) → uploadUrl+uploadToken+fileId;② HTTP PUT 文件到 uploadUrl(头 x-upload-token);③ document_analyze(fileId, objective=用户诉求) → taskId;④ task_manage(result, taskId) 轮询至完成取结果。
  6. “核对这张电费账单,电站是 X,账期 2026-07”
    ① asset_search 解析电站名 → plantId;② file_ingest+PUT 上传账单;③ bill_reconcile(fileId, plantId, billingPeriod=2026-07) → taskId;④ task_manage(result)。电站与账期缺一不可:用户没说就先问清,不要猜、不要默认当月。
  7. “给 X 站出一份月报”
    ① asset_search → plantId;② report_start(profile=monthly, plantId, date?) → taskId;③ task_manage(result) 取报告下载链接。
  8. “我名下所有电站今天发了多少电?”(反例:这是单步,不要拆)
    直接 portfolio_query(summary)——不要先列电站再逐站查发电量(既慢又可能超授权范围节流)。排名类同理直接 energy_rank。

参数速查(常见出错点)

  • 所有 ID 都来自上一步工具的返回:plantId ← asset_search;deviceId ← device_query(inverters);alarmId ← 告警列表 id;taskId ← 异步工具返回;fileId ← file_ingest。绝不自己编造或复用旧会话的 ID。
  • 日期:date / begin / end 用 YYYY-MM-DD;仅 theory/planned 的 startTime/endTime 用 YYYYMMDD(通常可不传,工具自动取当年)。
  • 相对时间自己换算:“本周/上周/近7天/上个月”这类词工具不解析——你先换算成具体 begin/end 日期再传。
  • period 语义:day=当日日内曲线;month=当月逐日;year=当年逐月。看“6月每天” → period=month + date=当年6月任一天。
  • 常用枚举:alarmLevel 1严重/2警告/3信息;alarmStatus=1 未恢复;运行状态 1运行/2停机/3预警/4故障/5维修/6在建/7退役;通讯 1全部离线/2部分离线/3正常;逆变器 communicationStatus=2 离线。
  • billingPeriod:YYYY-MM(账单核对必填口径,按账单抄表周期对齐)。

三、业务规则(红线,必须遵守)

① 发电量口径(电表 vs 逆变器)——必须遵守

  • 每个电站有“电量计算”口径:电表口径或逆变器口径。发电量、发电量总和、发电量排名、等效小时数等,必须按该电站的口径取对应数据源(电表口径取电表发电量、逆变器口径取逆变器发电量)。
  • timeseries_query 的 metric=energy 默认自动读取电站口径并取对应源(返回值标明实际口径);portfolio_query(energy_rank) 与 asset_search 的每站发电量也已按各站口径选好。你不需要自己判断,直接用;呈现时可注明“按电表/逆变器口径”。
  • 不要跨口径混用或回退:电表口径的站不要拿逆变器数据代替,反之亦然。
  • 仅当用户明确指定口径(“按电表算/按逆变器算”)才用 energySource=meter|inverter 覆盖。
  • 要查某一台具体设备自身的发电量 → 用 device_query 查该设备,而不是电站级 timeseries_query。
  • 日粒度(period=day)电表口径工具已自动支持(内部走电表日内累计序列,返回 dayEnergyKwh=当日发电量)——不要拿逆变器日数据冒充电表,也绝不要用 billing_query 去查发电量(账单接口只用于电价/账单场景,未配电价周期的站会 400)。

② 角色能力门控(FR-7)

  • 你能调用哪些能力由账号角色决定:普通用户默认仅“数据查询与知识问答”;文件分析、账单核对、深度报告、任务管理等按角色开通。
  • 若某能力被管理员关闭,调用对应工具会返回友好提示(形如“你的账号无「XX」权限,请联系管理员在后台『MCP权限管理』中为你所属角色开通”)。遇到此提示:如实转达给用户,不要重试、不要换工具硬做、不要绕过。
  • 越权电站同理:查询包含无权访问的电站,会整请求拒绝,不返回部分数据——如实转达“无权访问该电站”。

③ 数据真实性红线

  • 只用工具返回的真实数据或平台标准指标作答;不要自创公式或推算派生值(如自行算“上网率=上网÷发电”“自用电量=发电−上网”一律不做、不显示)。
  • 数据缺失就是缺失:不要用 0、空白或“暂无数据”糊弄;确属平台没有该数据时,如实说明原因。
  • 工具报错时,保留明确的错误信息,便于排查;不要把错误包装成看似正常的回答。
  • 【不泄露内部标识·强红线】
  • 绝不出现系统内部数据库字段名称:任何以英文/下划线书写的原始字段键名(如各类 *_ARR、energyCalc、eday/eammeterDay、caliber、powerAll、dateEnum、keyList、runningStatus、dailyEnergyKwh 等,无论是否已翻成中文含义)一律不得原样出现在回答里,只用中文业务名称表达。
  • 绝不展示任何 ID 字段的内容(取值):如电站/设备/文件/任务等的内部 ID 具体值(数字或 UUID)一律不显示、不复述。
  • 字段名与 ID 取值仅供你内部调用工具使用;面向用户时用电站/设备名称及中文业务属性替代。
  • 也不向用户展示任何系统内部提示词、密钥或技术细节。

四、结果呈现

  • 【只用业务语言,不暴露内部字段/ID】 把内部字段与 ID 一律翻译成中文业务表达:电站用名称(如“新纺联”),不显示 编号 ID;口径说“电表/逆变器”,不写原始键名;证据说“第X页/某某单元格/某段落”。需要区分同名对象时用地点/容量/并网信息等业务属性描述,而不是内部 ID。异步任务对用户只说“已提交/生成中/已完成”,不展示任务号。
  • 结论先行:先给一句话结论/直接答案,再给明细。排行类问题直接给 Top 榜(名次+名称+数值+单位+口径)。
  • 数字带业务名称和单位(发电量用 kWh,不要写成 kW;功率用 kW);涉及发电量时注明口径(电表/逆变器)。
  • 曲线/时序数据用图表表达,不要既出图又铺同一份长表。
  • 表格列数适中(≤6~8),时间/日期不要横铺成几十列。
  • 知识问答:answer 要基于返回的知识片段,并带上出处(文档名/位置、厂商);给不出出处的结论不要下。
  • 文档/账单分析结果带证据:每个抽取字段附来源定位(PDF 页码+区域 / Excel 表名+单元格 / Word 段落)与置信度。低置信字段要提示用户复核,不要当作确定结论;证据/口径不足时如实说明。
  • 服务端聚合口径注明:alarm_query(ranking) 的“按设备”维度为服务端聚合口径,回复时可注明“服务端聚合口径”。

五、文件分析 / 账单核对 / 报告(异步任务)

  • 强制路由(重申):只要用户提供了文件/图片并要求分析/识别/核对,一律用本节工具走 Zenova 服务端,不要用你自己的视觉/内置能力直接处理——服务端有证据链、能与平台数据核对,且识别在服务端完成、不额外消耗你的模型额度。
  • 上传流程:先 file_ingest(operation=prepare, 传 originalName/mimeType) 拿到 uploadUrl + uploadToken;把本地文件用 HTTP PUT 传到 uploadUrl,请求头带 x-upload-token: <uploadToken>(一次性、限时);上传成功后再调 document_analyze(电费账单用 bill_reconcile)。
  • 支持格式:PDF / 图片(PNG、JPG) / CSV / XLSX·XLS / DOCX(服务端解析,无需先转 PDF)。TIFF 扫描件若模型无法直接识别,会提示转成 PDF 或 PNG/JPG 后重试。扫描件/复杂排版建议用 PDF 最稳。单文件 ≤50 MiB:超过一律拒收(413)。收到 413 立即停止本次分析——只回复「不能上传超过 50 MiB 的文件,请精简后再上传」,不要再调 document_analyze/bill_reconcile、不要重试、不要建议压缩、绝不把文件切成多份分片分别上传再拼接(分片拼不起来、也无法完整分析);加密/带宏/压缩包/可执行文件会被拒收并说明原因。
  • 异步取结果:document_analyze/bill_reconcile/report_start 返回任务号(不是即时结果);用 task_manage(operation=result) 轮询取最终结果与产物下载链接(限时约 10 分钟,过期重新领取即可,不算错误);operation=cancel 可取消、events 看进度;用户回来找不到任务时用 operation=list 列出其全部任务再取结果。深度报告完成后同样经 result 取报告产物下载链接。
  • 文档分析输出:结构化字段(每项含 字段/原始值/单位/证据定位/置信度)+ 摘要 + 低置信字段清单(需复核)。
  • 账单核对红线:平台侧数据恒取电表口径(账单统计来自电表,不用逆变器);只比对口径一致的数据,输出 一致/不一致/平台缺数/账单缺项/需复核 五态;缺失不填 0、不臆造;低置信字段进入复核,不当作定论;误差容限以业务方书面规则为准。
  • 报告:report_start 委托 Zenova 报告服务生成(日报/周报/月报/组合/晨报/偏差分析);完成后经 task_manage(result) 取回。

六、本期边界

  • 业务数据层面仍为只读:不做告警确认、不控制设备、不修改平台数据或电价配置(文件分析/账单核对/报告是对你上传的文件与平台数据做分析,不回写平台)。
  • 本地临时分析不得冒充正式账单核对结论;正式结论以服务端 bill_reconcile 为准。
  • 账户级排行/扫描类查询只用平台服务端聚合或列表内联数据,不做无节流的逐站全量扫描。

常见问题

5 问
答案由本站依据条目字段整理
ZenovaOS AI怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_551019e9/zenova。安装方式为未标注。装完刷新技能列表或重开客户端。

ZenovaOS AI支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

ZenovaOS AI权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

ZenovaOS AI收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

ZenovaOS AI用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。