# 主通风机本地月度批次 宿主已完成筛矿、测点发现、40天取数、切换与风量整理,以及报告下载和hash核验。Agent只分析本井资料,不提交测点计划或重新取数。 ## 读取给Agent的数据 先 `prepare_main_fan_task`,取得本轮身份、规则和 `prepared_data.agent_data_path`。读取该路径的 JSON,即导出的 `给Agent的数据.json`,内部文件名以返回路径为准。所有时间均为北京时间。 - `states`:安监开停区间,直接用于说明运行情况。 - `flows`:风量概况,`samples`是整个查询期的样本数,单位在`unit`中。 - `switch_candidates`:已经整理的切换候选。`from_fan/to_fan`是方向,`time_range`是采样定位范围;不能将其相减作为停机至启动耗时。只有提供`duration_minutes`时才引用该间隔。 - 每个候选的`flow`:两路风量前后的`[时间,原值]`;`comparison.before_value/after_value/change_percent`:程序已经选好、算好的对比结果。直接引用,不重新识别事件、选点、求平均、计算比例或建立稳定窗口。 - `notes`和`comparison.reason`:需要写明的限制。零值照实保留,null表示该项未能形成有效结果;不自动交换风机编号,不用重大设备状态覆盖安监开停,也不把0风量直接写成矿井停风。 - `reports`:本轮PDF或可信档案。 不读取原始日段或解压历史ZIP,不编写时序处理脚本。只有JSON标记结果截断时,按`details_path`读取剩余整理结果。缺数据直接说明,不自行补查接口。 ## 读取测定报告 - `mode=analyze`:按[文档读取参考](document-reading.md)提取并实际读取全部页,核对每份报告的矿井、风机身份和页范围。模拟或其他矿的PDF不能充当目标矿正式参数证据。 - 提取成功后,用成功沙箱输出生成档案JSON并调用`archive_main_fan_report`。档案须包含`source_sha256`、`page_count`、完整`read_pages`、`page_sources`、非空`reports`、`analysis`和`limitations`。`page_sources`将物理页1..N对应到独立文本或图片文件,每页必须实际调用`read_file`完整读取;宿主核对读取记录与指纹。合订PDF的各份报告分别放入`reports`,保留身份、起止页、参数和原文。读取不完整不能声明成功档案。 - `mode=reuse`:读取`archive_path`中的`facts`,核对原报告身份和当前规则,跳过对应PDF再次识别;本次动态结论仍重新生成。 ## 解释并交付 先按[性能表格比较方法](performance-tables.md),以同叶片角度、同频率下的风压、功率和效率表格比较为重点,逐工况给出指标、固定阈值和结论,不能以型号或额定功率一致代替性能通过。 再直接引用JSON中的切换和监测风量结果。前后风量是以切换前后各1小时为目标整理的最近单点,不宣称连续稳定工况;不再补算完整率、CV或均值。保留JSON中的归属、缺失和编号对应限制。未知通风井身份、监测风量缺失或关键资料不属于本矿时,不提交NORMAL;已完成的报告性能比较仍单独呈现。 `details.switch_analysis`保留`status`(evaluated/insufficient_data)、`method`、`events`和`limitations`。`events`沿用JSON中的候选ID、方向、时间范围和风量对照,说明来源于固定预处理;未提供准确停启时刻或间隔时不要补填。证据引用使用实际`agent_data_path`、本轮PDF及可信档案路径。 用Python生成Markdown和`AgentAssessment` JSON,回读核对后单独调用`submit_main_fan_report`。本井提交后结束本轮,由宿主保存并在同一矿会话继续下一井。宿主同时保留研判数据,按`RESULT_PLATFORM_ENABLED`决定是否推送,Agent不自行推送。