从哪来 · 为什么 · 怎么做
玖衍 Q14 问「杀伤链怎么跑」。本节把四步 OODA 与 ATO 状态机写成可验收流程,联调入口 brain.opennexus.fun。
不要一次 ATO 全 Top5
早期 Demo 尝试「选中优先级 Top5,一键全部生成 ATO」——结果 Command 侧 Mission 互相抢占航路、BDA 无法归因到单一 fusedId、live 模式审计链断裂。指挥员也无法在 HITL 界面逐条理解每条 ATO 的依据。
根因:杀伤链必须是单目标串行 OODA,而非批处理脚本。
可审计 + strikeReady Gate
串行四步保证每一步可复盘:① lock fusedId → ② lv-match 映射 → ③ ATO generate → ④ dispatch。每步有 Gate:未 strikeReady 禁入 Step③;live 模式 Step④ 需 HITL。
产出 LvFlightPlanV1 结构化飞行计划——坐标、武器、时间窗、条令出处均可 JSON 审计,不是 Word 文档 ATO。
四步链 + BDA 飞轮
Brain 杀伤链面板锁定 fusedId 后,调用 mapping-registry lv-match,Command 生成 LvFlightPlanV1,经 opMode 策略 dispatch 至 WPF :5000。BDA 由 JUDGE 回写 strikeResult,飞轮解锁下一 fusedId 目标。
train 模式 BDA 可 force-unlock 加速教学;live 必须等 JUDGE(见 LVC 专题页)。
四步杀伤链 + BDA 闭环
联调时在 brain.opennexus.fun 杀伤链面板逐步点击:每步状态变绿后才可进入下一步——批处理 Top5 在 live 模式被 Gate 拒绝。
LvFlightPlanV1 与飞轮语义
Step① lock:单活跃 fusedId
Brain 杀伤链维护 Top5 优先级队列,但同一时刻只有一个 active fusedId。lock 操作将该 ID 标记为 in-kill-chain,阻止其他参谋 atomic_task 或并行 ATO 请求覆盖。未 lock 的目标可继续被 MDW 观测更新,但不得进入 Step③。
Step② lv-match:映射与 strikeReady
lv-match 调用 mapping-registry,resolve fusedId → Command DBID + loadout 组合。live 模式必须 strikeReady=true 且 db:* 已 commit;train 模式允许 stub。匹配失败则整条杀伤链 abort 并记录原因——不会 fallback 到「大概打这个位置」。
Step③ ATO generate:LvFlightPlanV1 契约
Command 侧根据匹配结果生成 LvFlightPlanV1 JSON:出发平台、武器挂载、航路点序列(WGS84)、时间窗、条令 tactic_id。该结构是 OpenNexus 与 CMO 对照开发的核心契约之一——字段级定义见本体论页 MVL。生成失败(航路冲突、油料不足)返回结构化 error,参谋可调整 priority 或换平台重试。
Step④ dispatch 与 BDA 飞轮
train 模式 ATO 自动 POST :5000 dispatch;live 模式进入 pending,指挥员 HITL 批准后 dispatch。执行完成后 MDW 收 BDA 事件,JUDGE 裁决 strikeResult 写回 Brain。live 模式必须收到 JUDGE 回写才 unlock 下一 fusedId;train 可 force-unlock 讲解飞轮。这完成了 OODA 闭环,也是 OpenNexus「决策飞轮」的产品核心。
杀伤链效果口径
管理员可在本页点「编辑本页」,上传真实 Brain / Command UI 截图与演示视频;发布后将显示在上方槽位。