71 lines
5.8 KiB
Markdown
71 lines
5.8 KiB
Markdown
# 演练方案证据查询流程
|
||
|
||
## 目标
|
||
|
||
本流程说明 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)。
|