JOTO
Contact us
← AI 智库
知识图谱

动态本体 + 本体 MCP:把 OpenClaw接入东海 ADIZ 空情研判的 MVP 实战

2026 年 8 月 13 日

本文详述一个军事空情研判MVP项目:通过构建动态本体层,将多源异构空情数据(态势表、航侦/技侦报文、GeoJSON等)映射为AirTarget、TrackPoint、IntelReport等业务对象及Link关系;定义predict_adiz_entry_probability等本体函数实现可解释计算;借助本体MCP Server为OpenClaw提供match_ontology、run_function等标准化调用接口;前端Cesium展示本体运行态而非静态大屏。项目验证了动态本体作为智能体与业务系统间语义桥梁的有效性。

背景:智能体不是缺数据,而是缺一层业务语义

这个项目一开始并不是从前端页面开始的。

如果只是做一个演示,我们完全可以先把 Cesium 地球拉起来,再把几架飞机、几条航迹、几段情报报文画到图上。页面会很快有样子:东海防空识别区、空中目标、历史航迹、预测航迹、威胁等级、OpenClaw 对话框。这些东西都能看见,也都能讲。

东海ADIZ空情研判MVP前端界面示意
东海ADIZ空情研判MVP前端界面示意

但真正的问题不在这里。

真正的问题是,当 OpenClaw 收到一句自然语言任务,比如:

基于当前态势,预测空中目标未来进入防空识别区的概率。

它应该怎么理解这个任务?

它是直接去查态势表吗?还是先找目标?目标的“当前态势”来自哪个字段?防空识别区是一个地图图层,还是一个业务对象?“进入概率”是按距离算,按航向航速算,还是要结合历史航迹、机型、情报报文和保障关系?如果目标已经在 ADIZ 里面,系统还要不要继续输出“未来进入概率”?

这些问题不是提示词能长期解决的。提示词可以让模型写出一份看起来合理的报告,但很难保证每次都沿着同一套业务语义、同一套数据 lineage 和同一套动作边界运行。

所以我们先做了一层动态本体。

什么是动态本体

在这个 MVP 里,我们把动态本体定义为:

动态本体是数据、业务和智能体之间的运行时语义层。它把多源数据映射为业务对象和对象属性,通过 Link 表达对象之间的业务关系,通过函数在本体空间内完成计算,并通过动作机制输出受治理的决策建议。

这句话里有五个关键点。

第一,本体是运行时的,不是静态文档。它不是画完图给人看的,而是 OpenClaw 真正要调用的业务空间。

第二,本体以对象为中心。目标、航迹点、情报报文、空域区域、威胁评估、抵近事件,都要变成对象。

第三,数据源连接的是对象属性,而不是直接连接智能体。态势表里的heading、speed、lat/lon,航侦报文里的正文和置信度,技侦报文里的来源可靠性,GeoJSON 里的 ADIZ 边界,都要落到对象属性上。

第四,对象之间要有 Link。一个空中目标有航迹点,被报文支撑,位于或接近某个区域,被某个威胁评估结果引用。这些关系不能只写在说明文档里,而要成为可查询、可计算的关系。

第五,函数在本体空间里运行。抵近识别、意图推断、历史相似航迹检索、证据链生成、威胁评估、进入 ADIZ 概率预测,都不是散落在外面的脚本,而是本体函数。

这就是我们理解的“动态”:对象会随数据流更新,关系会随任务空间生成,函数会基于当前对象空间计算,智能体通过 MCP 调用这些能力,前端再把运行状态可视化出来。

动态本体架构示意图
动态本体架构示意图

项目想定:东海 ADIZ 多源空情研判

这次 MVP 的想定方向选在东海防空识别区。

区域边界采用六个坐标点构成多边形:

  • 北纬 33 度 11 分、东经 121 度 47 分
  • 北纬 33 度 11 分、东经 125 度 00 分
  • 北纬 31 度 00 分、东经 128 度 20 分
  • 北纬 25 度 38 分、东经 125 度 00 分
  • 北纬 24 度 45 分、东经 123 度 00 分
  • 北纬 26 度 44 分、东经 120 度 58 分

这些点不是简单画在地图上的参考线,而是进入了AirspaceZone对象。Cesium 上看到的 ADIZ边界、虚线、多边形填充,只是这个对象的可视化结果。后续判断目标是否进入 ADIZ、是否抵近 ADIZ、是否沿边界平行侦察,都基于这个区域对象计算。

空中目标设计为 10 个以上,包括 RC-135V/W、F-16CM、F-22A、E-3G、KC-135R、P-8A、MQ-4C、U-2S、E-8C、B-52H 等。它们从横田空军基地、嘉手纳空军基地、群山空军基地等方向出现,执行不同任务:边界平行 ISR 侦察、抵近试探、存在巡逻、预警支援、加油支援、海上巡逻侦察和高空持续监视。

态势数据模拟10分钟数据流,每5秒一个航迹点。这样目标不是一个静态点,而是一段随时间变化的轨迹。前端播放时,航迹线只显示已经发生的部分;未来预测航迹不会提前出现,避免把预测当成现势。

东海ADIZ空情态势模拟示意
东海ADIZ空情态势模拟示意

情报数据分为四类:

  • situation_feed:结构化态势表,记录目标、机型、国别语义、位置、高度、航向、航速和时间戳。
  • recon_report:航天侦察影像判读报文,描述机场部署、训练、维修、保障车辆、起飞准备等。
  • sigint_report:技侦监听报文,描述数据链、雷达、通信、电子信号和周期性回传。
  • open_source_geo:开源地理与公开动态,包括 ADIZ 边界、基地坐标、新闻和社交媒体线索。

这些数据故意不是一种格式。态势是结构化表,航侦和技侦是文本报文,开源地理是 GeoJSON 和动态线索。我们要验证的正是:动态本体能不能把这些异构数据变成可运行的业务对象空间。

总体架构

本项目可以分成五层:多源数据层、动态本体层、本体函数层、本体 MCP 层、OpenClaw + Cesium 交互层。

五层架构图
五层架构图

这张图体现了项目的主线:数据不是直接喂给OpenClaw,OpenClaw也不是直接查数据库。数据先进本体,本体准备对象和关系,函数在本体空间计算,MCP 把这些能力暴露给 OpenClaw,Cesium 再把运行态展示出来。

本体对象定义

本项目的核心对象不是从数据库表反推出来的,而是从业务问题里抽出来的。

  • AirTarget是空中目标。它包含目标 ID、名称、平台类型、国别语义、起飞机场、任务类型、当前威胁等级、最新位置和 SIDC符号编码。一个 RC-135、一个 F-16 或一个 KC-135,在本体里首先都是 AirTarget,只是属性不同、关系不同、函数判断不同。
  • TrackPoint是航迹点。它记录目标在某一时刻的经纬度、高度、航向、航速。一个目标会有一串航迹点,通过HAS_TRACK_POINT Link 连接。这样我们才能讨论“历史航迹”“当前点位”“未来预测”,而不是只看一个静态坐标。
  • IntelReport是情报报文。航侦文本、技侦文本、开源动态都可以实例化为情报对象,但会保留类型、来源、正文、置信度、来源可靠性和关联目标。这样做的好处是,威胁评估不是一句“情报显示”,而能追溯到具体报文。
  • AirspaceZone是空域区域。东海 ADIZ、关注区、边界线都属于区域对象。区域对象的核心属性是 geometrycoordinates。这让 ADIZ 不再只是前端图层,而是函数可以读取和计算的业务对象。
  • ThreatAssessment是威胁评估对象。它不是原始数据,而是函数输出,包含威胁等级、置信度、规则版本、证据、人工复核标记和 lineage。
  • ApproachEvent是事件对象。抵近、进入、边界平行飞行等,都可以成为事件对象。事件对象让系统能够把“运动学变化”提升成业务事实。
本体核心对象关系图
本体核心对象关系图

数据源如何映射到本体

动态本体落地时,最容易被忽略的是字段级映射。

我们没有简单地说situation_feed对应 AirTarget,而是明确到字段:target_id映射到 AirTarget.targetIdtarget_name映射到 AirTarget.nametarget_type映射到 AirTarget.platformTypecountry映射到 AirTarget.affiliation。这里的country不是普通国家字段,而是业务语义标签:red表示对抗方,unknown表示身份未确认,neutral表示中立,blue表示己方。

lat/lon/altitude_m会进入 TrackPoint.position,同时最新航迹点会投影为AirTarget.latestPositionheadingspeed会进入运动属性,供抵近识别和概率预测函数使用。

航侦报文和技侦报文进入IntelReport。正文进入rawText,报文类型进入 reportType,置信度进入confidence,来源可靠性进入sourceReliability。在证据链里,系统可以计算confidence * sourceReliability,避免把所有报文都当成同等可信。

ADIZ GeoJSON 进入 AirspaceZone.geometry。这一步让区域边界既能显示在 Cesium 上,也能参与函数计算。比如 predict_adiz_entry_probability会用这个多边形判断目标是否已经在 ADIZ 内。

这就是本体作为“数据与业务之间桥梁”的意义:数据不是消失在模型上下文里,而是落在明确的对象属性上,并且能被追溯。

Link:对象之间的业务关系

对象只是第一步,Link 才让本体变成业务网络。

  • AirTarget HAS_TRACK_POINT TrackPoint:让目标拥有时间序列。
  • AirTarget SUPPORTED_BY_REPORT IntelReport:让目标与情报报文建立支撑关系。
  • AirTarget LOCATED_IN_OR_NEAR AirspaceZone:让目标与 ADIZ、关注区建立空间关系。
  • AirTarget ASSESSED_BY ThreatAssessment:让目标与威胁评估结果连接。
  • ThreatAssessment USES_EVIDENCE_FROM IntelReport:让研判结论能回溯到证据。

这些 Link 不是图谱上的装饰线,而是函数运行路径。一个函数可以从 AirTarget出发,沿 Link 找到航迹点、情报报文、区域对象,再组合计算。OpenClaw 后续问“为什么 TGT-041 是高威胁”,系统也能沿 Link 找到对应证据链。

本体函数:让本体从“能描述”变成“能研判”

本体如果只有对象和关系,还只是静态模型。真正让它动态起来的是函数。

  • detect_approach_events:用来识别目标是否抵近 ADIZ、进入 ADIZ,或者沿边界平行飞行。它会读取目标航迹点,计算经纬度变化、持续时间、平均速度、航向变化、高度方差和采样数量。
  • infer_intent:用来推断意图。比如 RC-135V/W 沿 ADIZ 东侧边界平行飞行,且航侦和技侦报文都指向侦察活动,那么意图可以判断为边界平行 ISR 侦察。F-16CM 高速向ADIZ 收敛,但身份未确认且只有单源情报支撑,则更适合判断为抵近试探,并保留人工复核。
  • find_similar_tracks:用来找历史相似航迹。它让系统不只看当前 10 分钟,而能把当前模式放到历史样例里比较。
  • build_evidence_chain:用来生成证据链。它返回规则版本、支撑报文、来源可靠性、加权置信度、相似案例和数据 lineage。这是系统能不能让人信服的关键。
  • assess_threat:用来输出威胁等级。它综合目标阵营语义、平台类型、运动模式、情报支撑、历史相似航迹和规则策略,输出 highmediumlow,并判断是否需要人工复核。
  • predict_adiz_entry_probability:用来预测进入 ADIZ 的概率。它会随时间轴实时重算。这里有一个重要修正:如果目标当前点位已经在ADIZ 多边形内,概率必须是 100%,状态为 already_inside_adiz。例如 TGT-017 已经在防空识别区内,系统就不能再输出一个“未来进入概率 80%”。这个细节说明本体函数不是为了生成漂亮分数,而是为了遵守业务事实。

本体 MCP:OpenClaw 如何使用本体

为了让 OpenClaw 调用本体,我们实现了 Ontology Runtime MCP Server。

它暴露的工具包括:

MCP 工具作用
list_ontologies列出可用本体
match_ontology根据自然语言任务匹配本体
create_task创建研判任务
get_data_contract返回本体需要的数据源契约
prepare_workspace拉取并准备任务数据空间
run_function执行本体函数
explain_result返回证据链和lineage
propose_action生成受控动作建议

OpenClaw的运行链路因此变成:

OpenClaw调用本体MCP链路图
OpenClaw调用本体MCP链路图

这条链路的价值在于,OpenClaw 不是直接访问底层数据,而是进入一个受控的业务语义层。它知道该使用哪个本体,知道本体需要哪些数据,知道可调用哪些函数,也知道哪些动作只能提出建议、不能直接执行。

军事场景里这个边界非常重要。当前 MVP 明确限制为 decision_support_only。高风险动作,比如直接作战控制、武器分配、自动拦截执行,不会由智能体直接触发,只能生成建议或进入人工复核。

Cesium前端:本体运行态控制台

前端不是简单态势大屏,而是本体运行态控制台。

Cesium 加载 Esri 影像底图,显示东海 ADIZ、多边形区域、目标点位、历史航迹、预测航迹和情报标记。空中目标图标采用接近 MIL-STD-2525B 的空中目标符号,不同阵营用不同外形和颜色表达。目标每 5 秒更新一个点位,航迹线只跟随已经发生的航迹增长。

页面上有多个工具栏:区域属性、目标列表、OpenClaw、AI 研判、情报、运行日志、目标详情、数据源情况、本体情况。所有工具栏都支持显示/隐藏、拖放和缩放。刷新页面后会按默认位置重新部署,避免重叠和挤压。

其中“本体情况”工具栏最重要。它展示的不是普通知识图谱,而是动态本体的运行结构:数据源连接对象属性,属性实例化对象,对象之间通过 Link 建立业务关系,函数消费对象并输出事件和研判结果。这个图谱未来可以扩展成业务专家建模界面,让专家不写代码也能定义对象、属性、Link、函数和动作策略。

一次完整研判如何发生

以 TGT-017 为例。

态势流中,TGT-017 是一架 F-16CM 类目标,身份未确认,沿东海 ADIZ 北段持续收敛。航迹点进入 TrackPoint,目标属性进入AirTarget,航侦报文进入IntelReport,ADIZ 边界进入 AirspaceZone。

OpenClaw收到预测任务后,通过 MCP 匹配到 air_target_threat_assessment本体,准备工作区,然后调用 predict_adiz_entry_probability。函数读取当前时间步的目标位置,先做 ADIZ 多边形内点判断。由于 TGT-017 当前已经在 ADIZ 内,函数直接输出:

target_id: TGT-017
probability: 1.0
status: already_inside_adiz
allowed_effect: decision_support_only

这比单纯输出“高概率进入”更符合业务语义。因为系统判断的不是一个抽象风险分,而是一个本体事实:目标已经进入该区域。

如果目标还没有进入 ADIZ,函数会继续融合当前航向航速、历史航迹、情报加权置信度、目标类型、国别语义和保障关系,输出动态概率。随着 10 分钟态势流播放,概率会实时变化,OpenClaw 对话框中的预测列表也会跟着刷新。

踩坑与修正

这个 MVP 做下来,有几个地方很典型。

第一个坑是把未来航迹提前画出来。这样看起来信息更多,但会误导用户,以为预测航迹是已经观测到的航迹。后来我们改成历史航迹随时间推进,预测航迹只在数据流结束后出现。

第二个坑是把目标进入 ADIZ 当成概率问题。TGT-017 已经在区内时,系统还输出 70% 或 80%,这在业务上是错的。后来本体函数增加了多边形内点判断,已进入就是 100%。

第三个坑是前端工具栏一开始采用固定三列布局,隐藏后会留下黑色区域。后来改成 Cesium 全屏底图,所有工具栏浮在地图上,并支持拖放、缩放和隐藏。

第四个坑是本体图谱一开始只展示对象,缺少数据源到对象属性的映射。用户真正关心的是:这个属性来自哪个数据源、哪个字段、哪张表、哪条报文。后来我们把数据源、属性槽、对象、Link、函数、结果对象放到同一张图里。

这些修正都指向同一个原则:系统不能只“看起来智能”,而要在业务语义上站得住。

这个 MVP 验证了什么

这个项目验证了三件事。

第一,动态本体可以成为智能体和业务系统之间的桥。OpenClaw 不需要每次从原始数据开始猜业务含义,而是进入一个已经定义好对象、属性、Link、函数和动作边界的业务空间。

第二,本体 MCP 可以成为智能体调用本体能力的标准入口。通过 match_ontologyprepare_workspacerun_functionexplain_resultpropose_action,智能体的每一步都有业务语义、证据链和权限边界。

第三,前端应该展示本体运行态,而不是只展示最终报告。目标、航迹、情报、区域、函数、证据链、预测结果和动作建议,都应该能在一个操作台里被观察和解释。

后续方向

下一步最值得做的是本体建模工具化。现在对象、属性、Link、函数和动作主要靠开发配置,未来应该让业务专家通过可视化界面建模。专家可以定义“飞机”“区域”“事件”“威胁评估”等对象,配置字段映射,建立 Link,声明函数输入输出和动作策略。

第二是数据接入真实化。当前数据是合成想定,但结构上已经按数据库表、文本报文、GeoJSON 和开源动态组织。后续可以接入真实数据库、消息队列、文档库和历史航迹库。

第三是函数能力增强。当前预测是可解释启发式,适合 MVP 验证。后续可以加入更严谨的轨迹预测、时序相似度、图查询、意图识别模型和不确定性估计。但这些模型仍然应该运行在本体空间里,输出可解释、可追溯、可审计的结果。

总结

这次 MVP 的核心不是 Cesium,也不是某个预测公式,而是把智能体接入复杂业务系统的一条工程路径。

数据先进本体,变成对象和属性;对象通过 Link 形成业务关系;函数在本体空间里计算事件、意图、威胁和概率;MCP 把这些能力暴露给 OpenClaw;Cesium 把整个过程展示出来;动作则始终受策略和人工复核约束。

一句话概括:

我们不是让OpenClaw 直接面对一堆空情数据,而是让它进入一个可计算、可解释、可治理的东海 ADIZ 动态本体。

JOTO 企业落地观察

  • 对企业部署而言,该项目表明:在高价值、高风险业务场景中,智能体工程必须前置构建运行时语义层,而非依赖后置提示词微调。动态本体作为数据与业务间的中间层,其对象定义、Link 关系与函数封装,直接决定了智能体行为的可解释性与可治理性。
  • 对智能体工程而言,本体 MCP 提供了一种标准化能力暴露范式。它将传统分散的 API 调用,统一为 ontology-aware 的 task 生命周期管理(match → prepare → run → explain → propose),使智能体调用具备明确的语义边界与权限控制,这对构建可审计的 AI 决策链至关重要。
  • 对 RAG 知识工程而言,该项目验证了“知识即对象”的实践路径:情报报文、态势表、GeoJSON 等异构源不再被扁平化为向量片段,而是结构化为 IntelReport、AirTarget、AirspaceZone 等带属性、带关系、带函数的实体。这种建模方式使知识检索天然具备业务上下文与因果链条。
  • 对 AI 安全治理而言,动态本体的“决策支持仅限”策略与函数级动作约束(如 predict_adiz_entry_probability 输出 allowed_effect 字段),提供了细粒度的策略嵌入能力。它表明,安全边界不应仅设在模型输出层,而应下沉至本体函数的执行契约中。

立即咨询 JOTO

JOTO 提供覆盖企业智能体规划与搭建、AI 平台私有化部署、RAG 知识工程、AI 安全治理、FDE 驻场共创及持续运营优化的全周期 AI 落地服务,帮助企业把验证中的 AI 能力转化为安全、可控、可持续迭代的生产力。 联系 JOTO 获取 AI 落地咨询

想把这些做法用到你的业务里?

留下你的场景和痛点,我们帮你判断从哪一步开始。

联系我们
Contact Us

Start your enterprise AI rollout

Tell us your industry, team, and current pain points. We'll get back to you within one business day to help you decide what to tackle first, what data to prepare, and which platform fits.

WeChat
Scan to add us for a 1:1 chat
JOTO WeChat consultation QR code

Tell us what you need

Once we receive your details, we'll be in touch within one business day.