Эх сурвалжийг харах

feat:AI使用站点信息时,新增提示信息是否过期

Jerry Liang 1 сар өмнө
parent
commit
cf4797c507

+ 31 - 0
deploy/kiro/skills/fwh-toolbox-workflow/SKILL.md

@@ -56,6 +56,37 @@ MCP 工具按访问层级分为五类,**选择工具时严格遵循以下优
 - `service_site_info_trigger_update` **[写操作]** 从 FWH Pro 同步最新站点数据到本地表。
 - 标签:`service_site_info_tags_list` 查列表;`service_site_info_tag_update` **[写操作]** 创建/更新标签(`tag` JSON:id 可选、name、color、description)。
 
+#### ⚠️ 使用站点信息前必做:数据新鲜度检查(强约束)
+
+> **凡是要「使用本地站点信息表数据」的任务,开始前必须先执行本检查。** 涉及的工具包括但不限于:`service_site_query_info`、`service_site_search`、`service_site_monitor_base_info`、站点信息导出、以及依赖本地站点信息表的分析类任务。若一次会话中已检查过且距离上次检查未超过阈值,可复用上次结论、不必重复检查。
+
+**判定依据**:`service_site_info_update_status` 返回 `domain.SiteInfoUpdateRecord`:
+
+- `progress`:本次同步任务状态,枚举 `pending | running | complete | failed | error`。
+- `updateTime`:**数据实际同步完成的时刻**(仅当 `progress=complete` 时才刷新),新鲜度以此为准。
+- `createTime`:本次同步任务的创建时刻,用于估算「更新中」还剩多久。
+- `total`:站点总数。
+
+**决策流程**:
+
+1. 调用 `service_site_info_update_status` 获取 `progress`、`updateTime`、`createTime`。
+
+2. **判断 `progress`**:
+   - 若 `progress ∈ {pending, running}` → **正在更新中**:**不要**触发新的更新,也不要用当前数据得出确定结论。告知用户数据正在同步、整个过程约需 **1.5 小时**,并按 `createTime + 1.5h` 给出建议的重试时间,询问用户是「稍后再试」还是「先用当前(可能偏旧的)数据继续」。
+   - 否则(`complete / failed / error` 或已完成)进入第 3 步。
+
+3. **计算新鲜度** = 当前时间 − `updateTime`:
+   - **< 24 小时** → 直接继续任务,并在回复中**明确标注数据更新时间**(见文案模板)。
+   - **≥ 24 小时** → 停下来让用户三选一:**①更新**(调用 `service_site_info_trigger_update`,属 **[写操作]**,须先获得用户确认后再触发;触发后提示约 1.5 小时完成、期间可稍后再查)/**②跳过**(用现有旧数据继续,但结论须标注数据已过期)/**③放弃任务**。
+
+4. **无记录**(`update_status` 返回空)→ 视为从未同步,按「≥ 24 小时」分支处理,询问是否执行首次同步。
+
+**文案模板**(按实际值填充;`{n}` 为距今时长):
+
+- 数据较新:`ℹ️ 站点信息数据更新于 {updateTime}(约 {n} 小时前),以下结果基于该时间的数据。`
+- 数据过期:`⚠️ 站点信息数据上次更新于 {updateTime},已超过 24 小时(约 {n} 天前),可能不是最新状态。请选择:①更新(触发同步,约需 1.5 小时)②跳过(用现有数据继续)③放弃任务。`
+- 更新中:`⏳ 站点信息正在同步中(progress={progress},任务开始于 {createTime}),整个过程约需 1.5 小时,预计约 {createTime + 1.5h} 完成。是否先用当前数据继续,还是稍后再试?`
+
 > 需要 FWH Pro 上游原始数据(如工作模式、功率流的原始返回)时,可用 `data_fwh_query_*`,见 references/fwh-pro-api.md。
 
 ### 2. 站点监控配置