Files
fire-safety-ymd/docs/project/ai-nses-project-overlay.md
T
2026-09-05 15:46:37 +08:00

4.5 KiB

fire-safety-ymd AI-NSES 项目覆盖规则

1. 适用范围

本文补充通用 AI-NSES,只适用于 fire-safety-ymd。它记录森林防火、Go 后端、SuperAgent、MCP 和 PostGIS 带来的项目专属约束,不修改通用标准本身。

2. 规则优先级

从高到低:

  1. 用户在当前 checkpoint 中的明确要求。
  2. 根 AGENTS.md。
  3. 本项目 Overlay 与专项安全/接口契约。
  4. 通用 AI-NSES 和通用开发规范。
  5. 仅供参考的模板和历史讨论。

发现冲突时停止扩大实现,在交付中明确冲突和所采用的上级规则。

3. 核心系统边界

目标链路为:

用户侧应用
  -> fire-safety-ymd Go 服务
  -> SuperAgent
  -> 本项目 MCP 工具
  -> PostgreSQL/PostGIS
  • Go 服务拥有身份上下文、权限校验、外部调用适配、数据访问和审计责任。
  • SuperAgent 拥有自然语言理解、工具选择和答案组织责任,不拥有授权决策和数据库权限。
  • MCP 层提供有限的领域能力,不把历史表名、任意 SQL 或内部凭证暴露给模型。
  • PostgreSQL/PostGIS 提供空间事实,但记录存在不等于资源当前可用。

4. 森林防火事实规则

  • 数据库事实、用户陈述、模型推断和建议必须可区分。
  • 查询结果应逐步具备来源、更新时间、状态、不确定性和是否需要现场确认等字段。
  • 未验证 PostGIS SRID 和几何类型前,不发布距离、范围包含或最近资源结论。
  • 防火通道只有几何和长度时,只能表达空间邻近,不能推断车辆可通行或计算可靠路线。
  • 水源或设施没有可用状态时,不能只因记录存在就宣称可用。
  • 联系人和电话属于受控数据,是否返回取决于服务端角色和区域权限。

5. AI 与应急安全规则

  • 大模型不得虚构人员、设施、危险源、道路状态、距离或实时火情。
  • 高风险回答应明确数据时间和未知项,必要时提示现场确认。
  • AI 输出是辅助信息,不替代 119、人员撤离、消防控制室和现场指挥体系。
  • 工具失败、数据过期或权限不足时返回明确状态,不允许模型用猜测补齐。
  • 面向真实火情的分阶段方案、路径计算或资源调度属于后续高风险 Feature,必须先有单独 Spec、安全审查和测试方案。

6. Go 交付约束

  • 保持 cmd -> internal/app -> handler/service -> domain/repository 的清晰依赖,不机械模仿 Java 分层。
  • 默认从 Go 标准库和小接口开始;新增框架、SDK 或通用抽象需要现实用例。
  • 所有外部系统通过适配边界接入,领域和服务层不得依赖厂商 DTO。
  • 每个 checkpoint 至少执行 gofmt 和 go test ./...;并发、数据库或网络代码按风险增加 race、集成和失败场景测试。

7. 文档门禁

以下变化必须同步文档:

变化 必须更新
SuperAgent 或 MCP 契约 Spec、Architecture/Workflow、Project State
PostgreSQL schema、SRID 或查询语义 数据架构、相关 Domain、测试说明
身份、角色、区域/租户边界 安全文档、接口契约、测试场景
高风险应急建议逻辑 Spec、Domain、Workflow、安全边界、ADR(如适用)
Go 核心依赖或 module path 后端规范、ADR(如影响较大)、Project State

8. 当前例外与待确认

当前已实现无业务数据的 /health、默认关闭的原生用户对话 API、可选 DashScope 风格兼容入口、SuperAgent Open API 出站 Adapter/探针,以及默认关闭的空间只读 MCP/PostGIS 基线。对话入口只有独立静态联调凭证、精确 Origin、单进程内存会话和并发 Run 冲突,不是最终用户认证;兼容接口仍坚持严格成功后才返回正文。Docker/Compose 测试部署和 Nginx 公网配置目前均是待目标机验证的安全基线:应用只发布宿主机回环端口,Secret 在运行时注入且迁移凭证不得进入服务容器。MCP 已具备独立服务间 Bearer、显式服务端静态数据范围(数据库全范围或镇街白名单)、固定参数化查询和 readiness 门禁;4,048 条实库非空几何已通过受控事务补齐 SRID 4326 元数据,严格 readiness 和 7 个工具的本地真实查询均已通过,但真实消防 Profile、公网部署与 SuperAgent MCP 联调尚未完成。无效几何在不改写原始数据的前提下被查询排除并明确告警;动态授权、共享/持久会话、持久审计和生产安全控制仍未实现。