宿主已完成筛矿、测点发现、40天取数、切换与风量整理,以及报告下载和hash核验。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:按文档读取参考提取并实际读取全部页,核对每份报告的矿井、风机身份和页范围。模拟或其他矿的PDF不能充当目标矿正式参数证据。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再次识别;本次动态结论仍重新生成。先按性能表格比较方法,以同叶片角度、同频率下的风压、功率和效率表格比较为重点,逐工况给出指标、固定阈值和结论,不能以型号或额定功率一致代替性能通过。
再直接引用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不自行推送。