Qt AFSim雷达态势显控终端-MCP服务功能介绍

概述

Qt AFSim雷达态势显控终端MCP 服务是内置的 Model Context Protocol 服务层,面向 AI 大模型客户端,提供结构化的态势感知、决策辅助与受控执行能力。

服务基于标准 MCP 协议(JSON-RPC 2.0),通过 HTTP POST /message 端口暴露工具(Tools),AI 模型可通过自然语言驱动工具调用,完成从态势感知到武器交战的完整业务闭环。


在这里插入图片描述
在这里插入图片描述

设计原则

  • 只读优先:态势查询、分析类接口均为只读,不影响仿真状态
  • 权限分级:所有工具按 read-only / operator / dangerous 三级管控
  • 高风险两阶段确认:危险操作必须先 prepareAction 获取 token,再 confirmAction 执行
  • 结构化输出:所有返回值为结构化 JSON,便于 AI 解析
  • 审计可追溯:所有工具调用均记录审计日志,支持事后查询

权限模型

权限级别 说明 典型操作
read-only 只读查询,不影响系统状态 态势查询、威胁分析、交战建议
operator 操作级,可影响显示和仿真控制 地图控制、焦点切换、仿真暂停/恢复
dangerous 高风险,需二次确认 武器交战、停止仿真

高风险操作两阶段流程

1. dangerous.prepareAction(action, arguments)
   → 服务器生成 UUID token,记录操作参数,设置 60 秒过期时间
   → 返回 token、摘要、过期时间

2. 客户端展示摘要,用户确认

3. dangerous.confirmAction(token)
   → 服务器验证 token 有效性(未过期、未使用)
   → 取出绑定的参数执行操作(参数不可被客户端篡改)
   → token 消费后立即删除(一次性)

token 保护机制:

  • UUID 随机生成,不可预测
  • 60 秒 TTL,过期自动清除
  • 一次性消费,不可重放
  • 参数服务器侧绑定,客户端无法在 confirm 时替换目标

工具分组与功能说明

1. 推演状态查询

工具 权限 说明
simulation.getStatus read-only 获取仿真运行状态(运行中/暂停/停止)、当前时间、倍率
simulation.health read-only 健康诊断,返回 DDS 连接、数据流、实体数等系统状态

2. 推演控制

工具 权限 说明
simulation.pause operator 暂停仿真
simulation.resume operator 恢复仿真
simulation.setRate operator 设置仿真倍率(1–100)
simulation.setFps operator 设置仿真帧率
simulation.start operator 启动仿真任务
simulation.stop dangerous 停止仿真(需二次确认)

3. 实体查询

工具 权限 说明
entity.list read-only 返回所有实体摘要列表(位置、类型、IFF、速度等)
entity.ids read-only 返回所有实体名称列表
entity.get read-only 按名称查询单个实体完整详情,含传感器、武器、航迹
entity.self read-only 返回当前自平台完整详情,含己方雷达航迹列表

entity.self 返回的航迹列表(tracks)包含:

  • trackNumber:整数航迹号(武器交战所需)
  • targetName:目标实体名称
  • iff:敌我识别(foe / friend / unknown / neutral
  • 位置、速度、距离变化率等

4. 焦点目标与航迹

工具 权限 说明
target.focus read-only 获取当前焦点目标详情
target.setFocus operator 设置焦点目标(切换当前关注实体)
track.focus read-only 获取当前焦点航迹详情
track.listSelf read-only 返回自平台雷达探测到的所有航迹列表

5. 态势感知

工具 权限 说明
situation.snapshot read-only 返回当前完整战场态势快照(所有实体、航迹、告警)
situation.delta read-only 返回指定序列号之后的增量态势变化,减少数据量
get_battlefield_status read-only 返回敌我友中立四类实体列表及自平台信息(简化格式)

situation.delta 使用方式:

首次调用 → sinceSequence: 0 → 获取 nextSequence
后续调用 → sinceSequence: <上次 nextSequence> → 仅返回变化部分

6. 事件与告警

工具 权限 说明
event.listRecent read-only 查询最近 N 条事件(可按时间、类型过滤)
alert.active read-only 返回当前所有活动告警
alert.acknowledge operator 确认/清除指定告警

7. 威胁分析

工具 权限 说明
threat.rank read-only 对当前战场所有敌方目标按威胁程度排序,返回优先级列表
threat.summary read-only 返回指定目标的威胁详情(距离、速度、接触时间估算、IFF)

8. 交战决策辅助

工具 权限 说明
engagement.precheck read-only 检查对指定目标开火的前提条件(武器就绪、弹药、射程)
engagement.recommend read-only 为指定航迹推荐最优武器及交战参数
engagement.compareOptions read-only 对比多种交战方案的效费比
weapon.capability read-only 查询指定武器的性能参数(射程、弹速、类型)
sensor.coverage read-only 查询指定传感器的探测覆盖范围

9. 武器交战执行

工具 权限 说明
weapon.engage dangerous 高风险武器交战,必须经过二次确认流程
fire_weapon operator 直接开火指令(需要 entity_name、weapon、track_number)
cease_fire operator 停止所有武器交战

weapon.engage 参数:

{
  "entityId": "blue_1",
  "weaponId": "fox3",
  "trackNumber": 3
}

注意: trackNumber 为整数航迹号,需从 entity.selftrack.listSelf 获取,不能直接使用实体名称字符串。

10. 机动控制

工具 权限 说明
move_unit operator 移动单位到指定经纬度/高度
change_speed operator 改变单位速度(米/秒)
change_heading operator 改变单位航向(度)
change_altitude operator 改变单位高度(米)
retreat operator 撤退到安全位置
set_defensive_posture operator 进入防御姿态
scout_area operator 侦察指定区域
loiter operator 在指定位置盘旋
return_to_base operator 返回基地
evasive_maneuver operator 规避机动

11. 地图与视口控制

工具 权限 说明
map.getViewState read-only 获取当前地图视口状态(中心坐标、缩放级别、雷达环半径)
map.getDisplayState read-only 获取各图层显示开关状态
map.zoomToEntity operator 将地图视口聚焦到指定实体
map.setEntityNameVisible operator 切换实体名称显示
map.setSpeedLineVisible operator 切换速度线显示
map.setHistoryTrackVisible operator 切换历史航迹显示
map.setWeaponRangeVisible operator 切换武器射程圈显示
map.setSensorCoverageVisible operator 切换传感器覆盖显示
map.setEffectCoverageVisible operator 切换效果覆盖显示
map.setRelationshipEdgesVisible operator 切换关系线显示
viewport.getState read-only 获取视口跟随状态
viewport.followTarget operator 设置视口跟随指定目标

12. 高风险操作管理

工具 权限 说明
dangerous.prepareAction operator 为高风险操作生成确认 token,绑定操作参数
dangerous.previewAction read-only 预览操作内容(不执行,用于 AI 展示操作摘要)
dangerous.confirmAction operator 凭 token 确认并执行已准备的高风险操作

13. 审计日志

工具 权限 说明
audit.query read-only 查询工具调用审计日志,支持按工具名、时间、阶段过滤

审计日志记录所有工具调用的完整信息,包括 prepare/confirm/execute 三个阶段,用于训练评估和事后复盘。


典型业务流程

AI 自动决策开火流程

1. get_battlefield_status / situation.snapshot
   → 获取当前战场态势,识别威胁目标

2. threat.rank / engagement.precheck
   → 评估威胁优先级,检查开火条件

3. entity.self
   → 获取自平台航迹列表,匹配目标 trackNumber
   → 获取可用武器列表(quantityRemaining > 0)

4. engagement.recommend
   → 获取推荐武器和交战参数

5. dangerous.prepareAction("weapon.engage", {entityId, weaponId, trackNumber})
   → 服务器生成 token,返回操作摘要

6. 客户端展示摘要,等待用户确认(UI 弹窗)

7. dangerous.confirmAction(token)
   → 服务器验证 token,执行武器交战
   → 返回执行结果和时间戳

8. audit.query
   → 可查询本次交战的完整审计记录

态势监控流程

1. situation.snapshot → 获取初始全量态势,记录 nextSequence
2. 定期调用 situation.delta(sinceSequence) → 仅获取变化部分
3. alert.active → 检查活动告警
4. threat.rank → 更新威胁排序

注意事项

  1. token 有效期 60 秒prepareAction 后必须在 60 秒内完成 confirmAction,否则 token 过期失效。

  2. token 一次性confirmAction 成功后 token 立即销毁,不可重复使用。

  3. 武器就绪状态isReady: false 时武器可能仍在装填,建议优先选择 isReady: true 的武器。


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐