Files
fire-safety-ymd/docs/workflows/exercise-plan-evidence.md
2026-09-06 17:57:58 +08:00

71 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 演练方案证据查询流程
## 目标
本流程说明 SuperAgent 如何从用户确认的地名候选或演练点坐标取得结构化事实,再组织“候选方案”。MCP 返回证据和限制,不自动选择地点或作出现场指挥决定。
```mermaid
sequenceDiagram
participant U as 用户
participant SA as SuperAgent
participant MCP as fire-safety-ymd MCP
participant PG as PostGIS
U->>SA: 提供地名或演练点坐标与分析目标
alt 只提供地名
SA->>MCP: search_place_candidates
MCP->>PG: 在获授权业务记录中做有界名称匹配
PG-->>MCP: 记录点/代表点候选
MCP-->>SA: 候选 + 匹配类型 + location_kind + warning
SA-->>U: 展示候选并请求确认
U->>SA: 确认一个候选坐标或改为地图选点
else 已提供明确坐标
SA->>SA: 校验 WGS84 坐标格式
end
SA->>MCP: resolve_incident_context
MCP->>PG: 查询覆盖网格(可信数据库全范围或镇街白名单内)
PG-->>MCP: 网格事实
MCP-->>SA: 网格 + 数据限制
par 候选资源
SA->>MCP: find_nearby_water_sources
SA->>MCP: find_command_post_candidates
SA->>MCP: list_nearby_access_lines
and 责任与风险
SA->>MCP: get_responsible_units
SA->>MCP: find_nearby_risk_areas
end
MCP-->>SA: 结构化候选、来源、距离、warning
SA-->>U: 区分数据库事实、未知项和需现场确认的候选方案
```
## 对原始四类问题的支持度
| 问题 | 当前输出 | 结论边界 |
| --- | --- | --- |
| 指挥部设置到哪个 | 检查站/瞭望哨空间候选 | 不能自动定点;需核验安全、上风向、通信、容量和可达性 |
| 水源地在哪里 | 水源地/蓄水池坐标、距离、容量和源状态(有值时) | 不能宣称当前有水、可取水或道路可达 |
| 上山路线怎么规划 | 附近防火通道及最近接入点 | 当前不支持路线;缺少拓扑、坡度、宽度、路面、车辆限制、实时封路、火势和天气 |
| 各队伍在哪里集结 | 覆盖网格记录的责任中队名称 | 当前不支持实时位置或集结点;缺少正式集结点、队伍位置、战备和装备数据 |
## Agent 回答要求
- 明确标注“数据库事实”“基于距离的候选”“当前数据不支持”和“必须现场确认”。
- Agent 对外统一使用“山东省烟台市牟平区森林防火平台 AI 助手小牟”的身份,能力覆盖日常咨询、授权数据查询和演练方案辅助,不是只返回数据库字段的查询机器人。数据库提供本地证据,Agent 还应基于通用专业知识补充组织分工、演练阶段、通信、供水、交通、安全、后勤和复盘建议,但不得把建议写成本地事实,也不得声称业务数据已经训练进模型或会在对话中自行学习。
- 只有地名时先调用地名候选工具;零结果时请用户补充名称或地图选点,多结果时列出候选,禁止静默选择第一条。
- 只要地点、水源或指挥部候选包含 `location`,就按“WGS84(EPSG:4326),经度在前、纬度在后”展示;防火通道展示 `nearest_point` 并明确称为“最近接入点坐标”。最多展示工具返回的 6 位小数,不转换为 GCJ-02 或 BD-09。
- 责任中队和风险区结果没有可作为实时位置、正式集结点或区域中心的坐标,不得补造。需要提出集结点时,只能使用用户确认的点位或工具返回的真实设施点作为“建议候选”,并保留现场确认条件。
- 用户要求综合演练方案且演练点已经确认时,应主动查询区域上下文、水源、指挥部候选、防火通道、责任中队和风险区域,再形成完整方案,不得只复述问题或输出空白栏目。
- 七个工具都支持分页:`limit` 为 `1..20`,`offset` 为 `0..10000`;地名候选、水源、指挥部候选、防火通道和风险区域默认 `limit=10`,防火网格和责任中队默认 `limit=20`,首次请求默认 `offset=0`。
- 工具响应的 `data` 始终是数组;`metadata.result_count` 是当前页数量,`metadata.total_count` 是授权范围和全部过滤完成后的总数量,`has_more=true` 时必须向用户说明“当前展示 N 条,共 M 条”。
- 用户明确要求继续展示时,使用上一次响应的 `metadata.next_offset` 作为下一次 `offset`;不要自行把页码换算成偏移量,也不要从头重复查询。
- 综合方案默认使用当前页的主要候选,不为凑齐完整清单而自动连续拉取全部页;如果总量超过当前页,先给出主要候选和总量,并提示用户可以继续查看。
- 只有 `total_count=0` 且 `status=no_results` 才能表述为当前有效范围没有结果;`total_count>0` 但超出末页得到空数组时,应说明请求偏移已超过末页,不能说数据库没有记录。
- 所有空间工具都会排除无效几何;收到 `source_records_with_invalid_geometries_are_excluded` 时,零结果只能表述为“有效记录中未找到”,不能断言数据库不存在相关资源或责任区域。
- `location_kind=representative_point` 只帮助识别线面记录,不得未经确认直接用于后续距离分析;记录点同样应回显名称和位置供用户确认。
- 无结果时报告 `no_results`,不得自行补造附近资源。
- 工具失败、超时或权限范围外时,不使用模型常识替代数据库事实。
- 不把联系人、电话或内部物理表名转述给普通用户。
- 涉及真实火情时,AI 结果只作辅助,不替代报警、撤离和现场指挥。
完整 Profile 提示词和验收问题见 [`../project/integrations/superagent-fire-safety-profile-prompt.md`](../project/integrations/superagent-fire-safety-profile-prompt.md)。