欢迎光临
我们一直在努力

从「万物互联」到「万物智能」:物模型、MCP 与 Skills 如何重构物联网中台的语义与能力栈

从「万物互联」到「万物智能」:物模型、MCP 与 Skills 如何重构物联网中台的语义与能力栈

导语:过去十年,物联网中台的核心命题是「连上」——把百亿设备接进来、把数据汇上来。但当大模型与 Agent 入场后,这个命题正在被重写:数据的消费者从「人」变成了「智能体」,连接的价值重心也从「传输字节」迁移到「理解意图、自主行动」。本文从物联网中台的架构视角,拆解三个看似分属不同领域、实则构成同一套「语义—能力」栈的关键构件——物模型(Thing Model)、MCP(Model Context Protocol)、Skills(技能)——并给出从「万物互联」升级到「万物智能」的一条可落地路径。


一、为什么「万物互联」已经不够用了

先回到物联网中台的起点。一个典型的中台架构,职责无非三件事:设备接入(MQTT/CoAP/HTTP 协议翻译)、设备管理(注册、鉴权、影子)、数据服务(规则引擎、时序存储、API 开放)。物模型(TSL)在其中扮演的角色,是把异构设备的原始报文翻译成统一的语义描述——属性(Property)、服务(Service)、事件(Event)。

这套架构解决了「万物互联」,但它有一个隐含的、几乎从未被挑战的前提:

数据的最终消费者是人。

人看大屏、人定规则、人拍板。于是系统的一切设计都围绕「把数据送到人面前」展开:规则引擎是给运营写 if-this-then-that 用的;可视化大屏是给决策者看的;告警是发给值班工程师的。设备的能力(服务、命令)也大多是「等人来调」。

问题在于:当终端数量走到百亿级、当「人工智能+」战略要求终端具备自主感知与控制能力时,「人」成了整个系统的吞吐瓶颈。 数据洪流涌向人,人却只能处理其中的极小一部分;大量设备能力被埋没在底层接口里,因为没有一个人工去逐个调用它们。

于是行业里正在发生一场静默而深刻的重心迁移,业内把它概括为三个跃迁:

  • 从「协议解析」到「意图解析」:设备不再只是「吐数据」,而是自我介绍「我是谁、我能干什么、你可以怎么调我」,由大模型完成自然语言到设备操作的翻译;
  • 从「消息管道」到「调度中枢」:MQTT Broker / 中台开始内置智能体发现、能力注册与意图路由(如 EMQX 6.2 内置 A2A 智能体注册中心、支持 MCP over MQTT);
  • 从「百亿连接」到「百亿智能体」:竞争的度量衡从「连接数」转向「智能体化率」——百亿终端里有多少能实现能力自注册、意图交互与自主执行。
  • 理解了这条主线,才能理解为什么物模型、MCP、Skills 会同时出现在这张牌桌上:它们不是三个孤立的时髦词,而是「万物智能」这台机器上三个不可互相替代的齿轮。


    二、重新理解三者:各用一句话说清本质

    先给三个概念一个精准的定位,后面所有架构推导都建立在这三句话上。

    2.1 物模型:设备的「语言」

    物模型是物理实体在数字世界的标准化语义契约。以阿里云物联网平台的 TSL(Thing Specification Language)为例,它用 JSON 从三个维度描述一个产品:

    要素语义本质典型动作
    属性(Property) 设备运行时的状态 「是什么」/名词 读(get)、写(set)
    服务(Service) 设备可供调用的能力 「能做什么」/动词 同步/异步调用,含入参出参
    事件(Event) 设备主动上报的感知 「发生了什么」/状语 订阅、推送(信息/告警/故障)

    它的价值不在于「数据结构」,而在于它把一台冰箱、一台机床、一个传感器,抽象成了机器可读、语义明确的「名词 + 动词 + 状语」集合。更重要的是,物模型支持模块化(一个产品可定义多组功能模块),这让复杂工业设备也能被结构化地拆解。

    一句话:物模型解决「理解」——它把物理世界翻译成一种大模型能读懂的「语言」。

    2.2 MCP:AI 的「万能插座」

    MCP(Model Context Protocol)是 Anthropic 于 2024 年 11 月开源、2025 年 12 月捐给 Linux 基金会旗下 Agentic AI Foundation(AAIF) 的开放协议,联合发起方包括 OpenAI、Block,并获得 Google、微软、AWS 等背书。它要解决一个朴素却致命的问题:过去每接入一个工具/数据源,都要写一次对接代码,N 个模型 × M 个工具 = N×M 次集成。

    MCP 用三段式架构 + 三个原语把这件事标准化:

    • 架构:MCP Host(宿主,如 Claude/ChatGPT/Cursor)— MCP Client — MCP Server;
    • 原语:Tools(可调用的能力)、Resources(可读的数据/状态)、Prompts(可复用的提示模板);
    • 协议:JSON-RPC 2.0,传输层可替换(stdio / SSE / streamable HTTP / MQTT)。

    截至 2026 年中,MCP 已有上万个公开 Server、SDK 月下载量达数亿次,被戏称为「AI 界的 USB-C」。但 MCP 真正的价值不在「连得方便」,而在于它把「能力」从「实现」中解耦了出来——一个能力一旦被封装成 MCP Tool,任何支持 MCP 的模型都能即插即用。

    一句话:MCP 解决「连接」——它定义了大模型发现与调用外部能力的标准协议。

    2.3 Skills:Agent 的「技能包」

    Skills 是 Agent 时代的能力封装单元:一个以 SKILL.md(含 YAML frontmatter 的 name/description)为核心的文件夹,可附带 references/ 参考文档、scripts/ 可执行脚本、assets/ 资源。它的精髓在于渐进式加载(Progressive Disclosure):

    层级加载时机内容上下文成本
    L1 元数据 启动即加载 name + description ~100 tokens/个
    L2 说明 被触发时加载 SKILL.md 正文(步骤、最佳实践) < 5000 tokens
    L3 资源/脚本 按需读取执行 附属文件、脚本,只回传结果 几乎无上限

    这带来一个关键性质:「能力总量」与「上下文占用」解耦。 一个 Agent 可以挂载几十上百个技能,但只有被 description 匹配到的技能才真正进入上下文;确定性步骤被写成脚本,执行后只有结果回传,代码本身不占 token。这恰好是「技能」能规模化复用的原因。

    一句话:Skills 解决「驾驭」——它把领域经验、工作流、脚本打包成可按需加载的专业知识。


    三、核心观点:三者不是竞品,而是同一套「语义—能力」分层栈

    这是本文最关键的一个判断。

    物模型出身于 IoT 界(解决设备语义统一),MCP 出身于 AI 界(解决工具接入标准化),Skills 出身于 Agent 工程界(解决专业知识的封装与复用)。它们各自在自己的圈子里火,因此大多数人把它们当成三件不相干的事。

    但如果把视角拉高到「如何让机器理解并驾驭物理世界」,会突然发现:它们其实是同一个问题的三个切面,天然构成一套自底向上的分层栈。

    #mermaid-svg-LkPN3DVHLb08oViZ{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-LkPN3DVHLb08oViZ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-LkPN3DVHLb08oViZ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-LkPN3DVHLb08oViZ .error-icon{fill:#552222;}#mermaid-svg-LkPN3DVHLb08oViZ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LkPN3DVHLb08oViZ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-LkPN3DVHLb08oViZ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LkPN3DVHLb08oViZ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LkPN3DVHLb08oViZ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-LkPN3DVHLb08oViZ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LkPN3DVHLb08oViZ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LkPN3DVHLb08oViZ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LkPN3DVHLb08oViZ .marker.cross{stroke:#333333;}#mermaid-svg-LkPN3DVHLb08oViZ svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LkPN3DVHLb08oViZ p{margin:0;}#mermaid-svg-LkPN3DVHLb08oViZ .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-LkPN3DVHLb08oViZ .cluster-label text{fill:#333;}#mermaid-svg-LkPN3DVHLb08oViZ .cluster-label span{color:#333;}#mermaid-svg-LkPN3DVHLb08oViZ .cluster-label span p{background-color:transparent;}#mermaid-svg-LkPN3DVHLb08oViZ .label text,#mermaid-svg-LkPN3DVHLb08oViZ span{fill:#333;color:#333;}#mermaid-svg-LkPN3DVHLb08oViZ .node rect,#mermaid-svg-LkPN3DVHLb08oViZ .node circle,#mermaid-svg-LkPN3DVHLb08oViZ .node ellipse,#mermaid-svg-LkPN3DVHLb08oViZ .node polygon,#mermaid-svg-LkPN3DVHLb08oViZ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LkPN3DVHLb08oViZ .rough-node .label text,#mermaid-svg-LkPN3DVHLb08oViZ .node .label text,#mermaid-svg-LkPN3DVHLb08oViZ .image-shape .label,#mermaid-svg-LkPN3DVHLb08oViZ .icon-shape .label{text-anchor:middle;}#mermaid-svg-LkPN3DVHLb08oViZ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-LkPN3DVHLb08oViZ .rough-node .label,#mermaid-svg-LkPN3DVHLb08oViZ .node .label,#mermaid-svg-LkPN3DVHLb08oViZ .image-shape .label,#mermaid-svg-LkPN3DVHLb08oViZ .icon-shape .label{text-align:center;}#mermaid-svg-LkPN3DVHLb08oViZ .node.clickable{cursor:pointer;}#mermaid-svg-LkPN3DVHLb08oViZ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-LkPN3DVHLb08oViZ .arrowheadPath{fill:#333333;}#mermaid-svg-LkPN3DVHLb08oViZ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LkPN3DVHLb08oViZ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LkPN3DVHLb08oViZ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LkPN3DVHLb08oViZ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-LkPN3DVHLb08oViZ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LkPN3DVHLb08oViZ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-LkPN3DVHLb08oViZ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LkPN3DVHLb08oViZ .cluster text{fill:#333;}#mermaid-svg-LkPN3DVHLb08oViZ .cluster span{color:#333;}#mermaid-svg-LkPN3DVHLb08oViZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LkPN3DVHLb08oViZ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-LkPN3DVHLb08oViZ rect.text{fill:none;stroke-width:0;}#mermaid-svg-LkPN3DVHLb08oViZ .icon-shape,#mermaid-svg-LkPN3DVHLb08oViZ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LkPN3DVHLb08oViZ .icon-shape p,#mermaid-svg-LkPN3DVHLb08oViZ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-LkPN3DVHLb08oViZ .icon-shape rect,#mermaid-svg-LkPN3DVHLb08oViZ .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LkPN3DVHLb08oViZ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-LkPN3DVHLb08oViZ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-LkPN3DVHLb08oViZ :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    调用技能

    使用工具

    读写能力

    描述对象

    状态 / 事件上行

    决策层 · 大模型 / Agent意图理解 · 任务编排 · 自主决策

    能力层 · Skills领域经验 · 工作流 · 脚本(渐进式加载)

    连接层 · MCPTools / Resources / Prompts(标准协议)

    语义层 · 物模型属性 = 状态 · 服务 = 能力 · 事件 = 感知

    物理层 · 设备传感器 · 执行器 · 网关

    把这张图翻译成一句人话:

    • 物模型回答「这个设备是什么、能干什么」——它是被理解的前提(语义层);
    • MCP 回答「怎么够到这个设备、怎么调用它」——它是被连接的前提(连接层);
    • Skills 回答「面对这类场景,该怎样专业地干」——它是被赋能的前提(能力层);
    • 最顶上的大模型/Agent 是「大脑」,负责把意图翻译成对下面三层的编排。

    没有物模型,模型读不懂设备;没有 MCP,模型够不到设备;没有 Skills,模型会「够到了却不会好好用」。 三者缺一个,「万物智能」都只能是半成品。


    四、三者如何互相转化:一条「语义 → 能力」的生产线

    分层只是静态关系。真正让架构产生复利的,是三者之间的可转化性——它们互为输入输出,构成一条能自动运转的「生产线」。

    4.1 物模型 → MCP:一份 TSL 自动生成一个 MCP Server

    这是最优雅、也最容易被低估的一步。物模型的三个要素,与 MCP 的三个原语存在天然的语义对应:

    物模型(TSL)语义MCP 原语说明
    属性(Property) 设备状态,可读写 Resource 可读状态;读写型属性对应可写的资源 URI
    服务(Service) 设备能力,含入参出参 Tool 入参出参天然就是 Tool 的 JSON Schema
    事件(Event) 设备主动上报 通知 / Prompt 订阅式推送,或作为触发式 Prompt 模板

    这意味着:物模型本身就是 MCP Server 的「语义源头」。 一份 TSL 文件可以程序化地生成一个 MCP Server——属性变成 Resource、服务变成 Tool、事件变成通知。设备厂商只要维护好物模型,就等于同时交付了一个「AI 可直接调用」的设备能力接口,无需再额外写对接层。

    这也解释了为什么「通用物模型 → 设备级物模型」的分层定义、以及「3000+ 种物模型、200+ 种接入协议」的物模型库(如中国联通格物平台)在智能体时代重新变得重要:物模型越标准、越丰富,能自动生成的 MCP 能力就越广。

    4.2 MCP → Skills:把「工具」升级成「专家」

    MCP 给的是「工具」,但工具不等于「会用」。一个 Tool 只能告诉你「这个接口能调」,不会告诉你「什么情况下该调它、调之前要查哪些状态、调完要验证什么」。

    为此,Anthropic 在 2026 年宣布 skills-over-MCP 将作为 MCP 规范的扩展:MCP Server 不仅能提供工具,还能附带解释「如何用好这些工具」的 Skill 文件。这等于把「说明书」和「工具」绑在一起交付,让 Skills 成为 MCP 的一等公民原语。

    方向很清晰:从「给 Agent 一把螺丝刀」进化到「给 Agent 一个会拧螺丝的老师傅」。

    4.3 Skills → 物模型(反向):设备能力「自举」成技能

    有意思的是,这个转化还能反向发生。以 EMQ 的 Device Agent 为例:设备规格中定义的 commands 命令,会被逐个自动生成 skill,写入设备的「智能体卡片(Agent Card)」并发布到 A2A 注册网络。于是设备开机后不再只是「吐数据」,而是先自我介绍:「我有哪些能力,你可以用这些技能来调用我。」

    把三个方向连起来,就得到一条闭环:

    #mermaid-svg-IG1wWsu2lUFsVKOG{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-IG1wWsu2lUFsVKOG .error-icon{fill:#552222;}#mermaid-svg-IG1wWsu2lUFsVKOG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-IG1wWsu2lUFsVKOG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-IG1wWsu2lUFsVKOG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-IG1wWsu2lUFsVKOG .marker.cross{stroke:#333333;}#mermaid-svg-IG1wWsu2lUFsVKOG svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-IG1wWsu2lUFsVKOG p{margin:0;}#mermaid-svg-IG1wWsu2lUFsVKOG .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-IG1wWsu2lUFsVKOG .cluster-label text{fill:#333;}#mermaid-svg-IG1wWsu2lUFsVKOG .cluster-label span{color:#333;}#mermaid-svg-IG1wWsu2lUFsVKOG .cluster-label span p{background-color:transparent;}#mermaid-svg-IG1wWsu2lUFsVKOG .label text,#mermaid-svg-IG1wWsu2lUFsVKOG span{fill:#333;color:#333;}#mermaid-svg-IG1wWsu2lUFsVKOG .node rect,#mermaid-svg-IG1wWsu2lUFsVKOG .node circle,#mermaid-svg-IG1wWsu2lUFsVKOG .node ellipse,#mermaid-svg-IG1wWsu2lUFsVKOG .node polygon,#mermaid-svg-IG1wWsu2lUFsVKOG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-IG1wWsu2lUFsVKOG .rough-node .label text,#mermaid-svg-IG1wWsu2lUFsVKOG .node .label text,#mermaid-svg-IG1wWsu2lUFsVKOG .image-shape .label,#mermaid-svg-IG1wWsu2lUFsVKOG .icon-shape .label{text-anchor:middle;}#mermaid-svg-IG1wWsu2lUFsVKOG .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-IG1wWsu2lUFsVKOG .rough-node .label,#mermaid-svg-IG1wWsu2lUFsVKOG .node .label,#mermaid-svg-IG1wWsu2lUFsVKOG .image-shape .label,#mermaid-svg-IG1wWsu2lUFsVKOG .icon-shape .label{text-align:center;}#mermaid-svg-IG1wWsu2lUFsVKOG .node.clickable{cursor:pointer;}#mermaid-svg-IG1wWsu2lUFsVKOG .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-IG1wWsu2lUFsVKOG .arrowheadPath{fill:#333333;}#mermaid-svg-IG1wWsu2lUFsVKOG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-IG1wWsu2lUFsVKOG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-IG1wWsu2lUFsVKOG .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-IG1wWsu2lUFsVKOG .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-IG1wWsu2lUFsVKOG .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-IG1wWsu2lUFsVKOG .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-IG1wWsu2lUFsVKOG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-IG1wWsu2lUFsVKOG .cluster text{fill:#333;}#mermaid-svg-IG1wWsu2lUFsVKOG .cluster span{color:#333;}#mermaid-svg-IG1wWsu2lUFsVKOG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-IG1wWsu2lUFsVKOG .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-IG1wWsu2lUFsVKOG rect.text{fill:none;stroke-width:0;}#mermaid-svg-IG1wWsu2lUFsVKOG .icon-shape,#mermaid-svg-IG1wWsu2lUFsVKOG .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-IG1wWsu2lUFsVKOG .icon-shape p,#mermaid-svg-IG1wWsu2lUFsVKOG .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-IG1wWsu2lUFsVKOG .icon-shape rect,#mermaid-svg-IG1wWsu2lUFsVKOG .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-IG1wWsu2lUFsVKOG .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-IG1wWsu2lUFsVKOG .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-IG1wWsu2lUFsVKOG :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    自动生成

    skills-over-MCP附带使用说明

    Device Agentcommands → skill

    回写语义

    物模型 TSL属性 / 服务 / 事件

    MCP ServerTools / Resources

    Skills技能包

    设备智能体卡片自注册 / 自描述

    物模型、MCP、Skills 三者由此构成一个可自增强的循环:语义越标准,能力暴露越顺;能力暴露越顺,技能沉淀越多;技能沉淀越多,设备自描述越强。 这就是「万物智能」基座能滚起雪球的内在机制。


    五、架构升级:从「万物互联」到「万物智能」的三个跃迁

    把前面的构件放回中台,就能看清这次升级到底改了什么。

    #mermaid-svg-SOZE5BkJOVKi8ZHi{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-SOZE5BkJOVKi8ZHi .error-icon{fill:#552222;}#mermaid-svg-SOZE5BkJOVKi8ZHi .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-SOZE5BkJOVKi8ZHi .marker{fill:#333333;stroke:#333333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .marker.cross{stroke:#333333;}#mermaid-svg-SOZE5BkJOVKi8ZHi svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-SOZE5BkJOVKi8ZHi p{margin:0;}#mermaid-svg-SOZE5BkJOVKi8ZHi .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .cluster-label text{fill:#333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .cluster-label span{color:#333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .cluster-label span p{background-color:transparent;}#mermaid-svg-SOZE5BkJOVKi8ZHi .label text,#mermaid-svg-SOZE5BkJOVKi8ZHi span{fill:#333;color:#333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .node rect,#mermaid-svg-SOZE5BkJOVKi8ZHi .node circle,#mermaid-svg-SOZE5BkJOVKi8ZHi .node ellipse,#mermaid-svg-SOZE5BkJOVKi8ZHi .node polygon,#mermaid-svg-SOZE5BkJOVKi8ZHi .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-SOZE5BkJOVKi8ZHi .rough-node .label text,#mermaid-svg-SOZE5BkJOVKi8ZHi .node .label text,#mermaid-svg-SOZE5BkJOVKi8ZHi .image-shape .label,#mermaid-svg-SOZE5BkJOVKi8ZHi .icon-shape .label{text-anchor:middle;}#mermaid-svg-SOZE5BkJOVKi8ZHi .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-SOZE5BkJOVKi8ZHi .rough-node .label,#mermaid-svg-SOZE5BkJOVKi8ZHi .node .label,#mermaid-svg-SOZE5BkJOVKi8ZHi .image-shape .label,#mermaid-svg-SOZE5BkJOVKi8ZHi .icon-shape .label{text-align:center;}#mermaid-svg-SOZE5BkJOVKi8ZHi .node.clickable{cursor:pointer;}#mermaid-svg-SOZE5BkJOVKi8ZHi .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .arrowheadPath{fill:#333333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-SOZE5BkJOVKi8ZHi .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-SOZE5BkJOVKi8ZHi .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-SOZE5BkJOVKi8ZHi .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-SOZE5BkJOVKi8ZHi .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-SOZE5BkJOVKi8ZHi .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-SOZE5BkJOVKi8ZHi .cluster text{fill:#333;}#mermaid-svg-SOZE5BkJOVKi8ZHi .cluster span{color:#333;}#mermaid-svg-SOZE5BkJOVKi8ZHi div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-SOZE5BkJOVKi8ZHi .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-SOZE5BkJOVKi8ZHi rect.text{fill:none;stroke-width:0;}#mermaid-svg-SOZE5BkJOVKi8ZHi .icon-shape,#mermaid-svg-SOZE5BkJOVKi8ZHi .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-SOZE5BkJOVKi8ZHi .icon-shape p,#mermaid-svg-SOZE5BkJOVKi8ZHi .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-SOZE5BkJOVKi8ZHi .icon-shape rect,#mermaid-svg-SOZE5BkJOVKi8ZHi .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-SOZE5BkJOVKi8ZHi .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-SOZE5BkJOVKi8ZHi .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-SOZE5BkJOVKi8ZHi :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    架构升级:从「连接信息」到「连接智能」

    ② 万物智能 · 意图优先,决策者是「Agent + 人监督」

    闭环控制

    设备 · 自描述

    物模型语义契约

    MCP Server能力暴露

    大模型 / Agent意图理解 + 编排

    Skills专业执行

    ① 万物互联 · 连接优先,决策者是「人」

    设备

    协议接入MQTT / CoAP / HTTP

    物模型属性 / 服务 / 事件

    规则引擎if-this-then-that(确定性)

    可视化大屏 / 人工控制

    对比两张图,真正的差异不在「多了几个新名词」,而在三个底层逻辑的翻转:

    跃迁一:数据消费者从「人」变成「智能体」。 万物互联时代,一切设计的终点是人;万物智能时代,Agent 成为数据的第一消费者。这直接改变了中台的价值主张——从「帮人看数据」变成「帮 Agent 做决策」。

    跃迁二:连接逻辑从「协议解析」变成「意图解析」。 过去中台把异构协议翻译成统一报文;现在它要把「自然语言意图」翻译成「设备操作」。物模型提供语义词典,MCP 提供调用通道,Agent 负责翻译。

    跃迁三:平台定位从「消息管道 / 数据仓库」变成「智能体调度中枢」。 这是最深的一层。当 MQTT Broker 内置了 A2A 智能体注册中心(如 EMQX 6.2 支持 MCP over MQTT),设备能力的发现、注册、路由就在消息层原地完成了,传统「数据先上云、再加工、再喂给 AI」的中心化链路不再是唯一解。


    六、闭环:一条从「意图」到「物理世界」的完整链路

    架构升级之后,一次典型的智能交互长这样:

    设备(物模型)

    MCP Server

    Agent(大模型)

    用户 / 应用

    设备(物模型)

    MCP Server

    Agent(大模型)

    用户 / 应用

    #mermaid-svg-RhKaYlWFLsNZkXwY{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-RhKaYlWFLsNZkXwY .error-icon{fill:#552222;}#mermaid-svg-RhKaYlWFLsNZkXwY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-RhKaYlWFLsNZkXwY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-RhKaYlWFLsNZkXwY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-RhKaYlWFLsNZkXwY .marker.cross{stroke:#333333;}#mermaid-svg-RhKaYlWFLsNZkXwY svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-RhKaYlWFLsNZkXwY p{margin:0;}#mermaid-svg-RhKaYlWFLsNZkXwY .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-RhKaYlWFLsNZkXwY text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-RhKaYlWFLsNZkXwY .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-RhKaYlWFLsNZkXwY .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-RhKaYlWFLsNZkXwY .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-RhKaYlWFLsNZkXwY .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-RhKaYlWFLsNZkXwY #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-RhKaYlWFLsNZkXwY .sequenceNumber{fill:white;}#mermaid-svg-RhKaYlWFLsNZkXwY #sequencenumber{fill:#333;}#mermaid-svg-RhKaYlWFLsNZkXwY #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-RhKaYlWFLsNZkXwY .messageText{fill:#333;stroke:none;}#mermaid-svg-RhKaYlWFLsNZkXwY .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-RhKaYlWFLsNZkXwY .labelText,#mermaid-svg-RhKaYlWFLsNZkXwY .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-RhKaYlWFLsNZkXwY .loopText,#mermaid-svg-RhKaYlWFLsNZkXwY .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-RhKaYlWFLsNZkXwY .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-RhKaYlWFLsNZkXwY .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-RhKaYlWFLsNZkXwY .noteText,#mermaid-svg-RhKaYlWFLsNZkXwY .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-RhKaYlWFLsNZkXwY .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-RhKaYlWFLsNZkXwY .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-RhKaYlWFLsNZkXwY .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-RhKaYlWFLsNZkXwY .actorPopupMenu{position:absolute;}#mermaid-svg-RhKaYlWFLsNZkXwY .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-RhKaYlWFLsNZkXwY .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-RhKaYlWFLsNZkXwY .actor-man circle,#mermaid-svg-RhKaYlWFLsNZkXwY line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-RhKaYlWFLsNZkXwY :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    自然语言意图:「车间温度偏高,调低空调」

    1

    发现能力 tools/list

    2

    物模型映射出的 Tools / Resources

    3

    调用 setProperty(目标温度, 24℃)

    4

    下行控制(Alink / MQTT 指令)

    5

    事件上报 event/post(执行结果)

    6

    状态 / 事件回传

    7

    结合 Skill 校验结果、决定是否追加动作

    8

    返回结果 + 可解释的决策理由

    9

    注意这条链路里每个环节的「责任人」都变了:

    • 第 2–3 步是物模型在发挥作用——Agent 是通过物模型才知道「这台空调有 目标温度 这个属性、可以 set」;
    • 第 4–6 步是 MCP 在发挥作用——Agent 是通过标准协议才「够得到」设备、并收到事件回报的;
    • 第 7 步是 Skills 在发挥作用——「调完之后温度是否收敛、要不要二次调节」这类领域经验,正是技能包提供的东西。

    人不再出现在热路径里。 人从「操作者」退位为「监督者」——只在写操作、高风险动作、异常兜底时介入。这才是「万物智能」和「万物互联 + 一个聊天框」的本质区别。


    七、参考架构:升级后的 IoT 中台长什么样

    落到工程上,升级后的中台可以参考下面的分层:

    #mermaid-svg-pKGdQhl7XgM6wnsu{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pKGdQhl7XgM6wnsu .error-icon{fill:#552222;}#mermaid-svg-pKGdQhl7XgM6wnsu .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pKGdQhl7XgM6wnsu .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pKGdQhl7XgM6wnsu .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pKGdQhl7XgM6wnsu .marker.cross{stroke:#333333;}#mermaid-svg-pKGdQhl7XgM6wnsu svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pKGdQhl7XgM6wnsu p{margin:0;}#mermaid-svg-pKGdQhl7XgM6wnsu .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-pKGdQhl7XgM6wnsu .cluster-label text{fill:#333;}#mermaid-svg-pKGdQhl7XgM6wnsu .cluster-label span{color:#333;}#mermaid-svg-pKGdQhl7XgM6wnsu .cluster-label span p{background-color:transparent;}#mermaid-svg-pKGdQhl7XgM6wnsu .label text,#mermaid-svg-pKGdQhl7XgM6wnsu span{fill:#333;color:#333;}#mermaid-svg-pKGdQhl7XgM6wnsu .node rect,#mermaid-svg-pKGdQhl7XgM6wnsu .node circle,#mermaid-svg-pKGdQhl7XgM6wnsu .node ellipse,#mermaid-svg-pKGdQhl7XgM6wnsu .node polygon,#mermaid-svg-pKGdQhl7XgM6wnsu .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pKGdQhl7XgM6wnsu .rough-node .label text,#mermaid-svg-pKGdQhl7XgM6wnsu .node .label text,#mermaid-svg-pKGdQhl7XgM6wnsu .image-shape .label,#mermaid-svg-pKGdQhl7XgM6wnsu .icon-shape .label{text-anchor:middle;}#mermaid-svg-pKGdQhl7XgM6wnsu .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pKGdQhl7XgM6wnsu .rough-node .label,#mermaid-svg-pKGdQhl7XgM6wnsu .node .label,#mermaid-svg-pKGdQhl7XgM6wnsu .image-shape .label,#mermaid-svg-pKGdQhl7XgM6wnsu .icon-shape .label{text-align:center;}#mermaid-svg-pKGdQhl7XgM6wnsu .node.clickable{cursor:pointer;}#mermaid-svg-pKGdQhl7XgM6wnsu .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pKGdQhl7XgM6wnsu .arrowheadPath{fill:#333333;}#mermaid-svg-pKGdQhl7XgM6wnsu .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pKGdQhl7XgM6wnsu .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pKGdQhl7XgM6wnsu .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pKGdQhl7XgM6wnsu .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pKGdQhl7XgM6wnsu .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pKGdQhl7XgM6wnsu .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pKGdQhl7XgM6wnsu .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pKGdQhl7XgM6wnsu .cluster text{fill:#333;}#mermaid-svg-pKGdQhl7XgM6wnsu .cluster span{color:#333;}#mermaid-svg-pKGdQhl7XgM6wnsu div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pKGdQhl7XgM6wnsu .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pKGdQhl7XgM6wnsu rect.text{fill:none;stroke-width:0;}#mermaid-svg-pKGdQhl7XgM6wnsu .icon-shape,#mermaid-svg-pKGdQhl7XgM6wnsu .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pKGdQhl7XgM6wnsu .icon-shape p,#mermaid-svg-pKGdQhl7XgM6wnsu .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pKGdQhl7XgM6wnsu .icon-shape rect,#mermaid-svg-pKGdQhl7XgM6wnsu .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pKGdQhl7XgM6wnsu .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pKGdQhl7XgM6wnsu .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pKGdQhl7XgM6wnsu :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    应用层

    决策层

    能力层

    连接层

    语义层

    接入层

    TSL → MCP 自动生成

    skills-over-MCP

    工具调用 / 意图路由

    传感器 / 执行器

    网关 / 边缘节点

    物模型 TSL属性 / 服务 / 事件 · 模块化

    MCP Server / MCP over MQTTTools · Resources · Prompts

    Skills 技能包故障诊断 · 能耗优化 · 预测性维护

    大模型 / Agent 运行时RAG 知识库 · 记忆 · 编排

    场景应用:能源 / 楼宇 / 工业 / 家居 / 农业

    几个关键设计判断:

  • 物模型下沉为「唯一语义源头」:设备、边缘、云端共用一份 TSL,禁止在 MCP 层另造一套语义,否则会出现「设备说一套、AI 听一套」的裂缝。
  • MCP 是「能力的统一出口」,不是又一个 API 网关:它的价值在于让能力被 AI 发现,而不仅是被人调用;因此在物模型之上做一层「TSL → MCP Server」的自动生成,收益远高于手写对接。
  • Skills 承载「领域 know-how」:把故障诊断、能耗优化等专业流程沉淀为技能包,随 MCP Server 一起交付,避免「有工具、无专家」。
  • Agent 层与执行层解耦:大模型负责意图与策略(秒级、概率性),PLC / 规则引擎 / 边缘自治负责执行(毫秒级、确定性),中间用 MCP 打通。

  • 八、别急着 all-in:五个绕不开的坑

    这套方向很性感,但落地之前,有五个问题必须诚实面对。

    ① 安全:Agent 直接控制物理世界,风险等级完全不同。 读数据出问题最多是「看错」,写操作出问题可能是「设备烧了、闸门开了」。MCP 生态已经暴露出工具投毒(tool poisoning)、供应链攻击(Server 夹带恶意脚本)等问题(如 MCP Inspector、mcp-remote 的严重 CVE)。对「写类」能力必须做权限分级 + 人类审批(human-in-the-loop),并像对待第三方代码一样审计 MCP Server 和 Skill。

    ② 实时性与确定性:大模型是概率性的,工业控制不是。 LLM 有延迟、有幻觉,而很多工业场景要求毫秒级、确定性的响应。正确的边界是:大模型只负责「意图层 / 策略层」,执行层仍交给规则引擎、PLC、边缘自治。 别让 Agent 去抢 PLC 的活。

    ③ 上下文开销:能力暴露越多,窗口压力越大。 把所有 Tool 的 Schema 都塞给模型,上下文会被迅速吃光(实测 40 个工具可占掉 200K 窗口的七成)。这正是 Skills 渐进式加载存在的意义——能力要「总量大、按需载入」,靠动态工具发现 + 技能触发来缓解。

    ④ 标准尚未完全定型。 MCP 与 A2A 是并行的两套协议(前者是「模型↔工具」的垂直连接,后者是「智能体↔智能体」的水平协作),skills-over-MCP 还在演进,也有厂商(如 Perplexity)选择内部弃用 MCP。架构上应把「能力描述」与「协议实现」解耦,别把身家性命绑死在某个协议的某个版本上。

    ⑤ 物模型的「语义质量」是上限。 物模型是整条链路的语义地基。地基如果是「一堆命名随意的自定义字段」,上面再先进的 MCP、再精良的 Skill 都救不回来。把物模型当成公共资产来治理,是这次升级里最不性感、却最决定成败的一件事。


    九、结语

    从「万物互联」到「万物智能」,本质不是「给物联网加一个 AI 聊天框」,而是把物联网中台从「数据的搬运工」重构为「智能体的基座」。

    在这个重构里:

    • 物模型让设备「说得清」——它是物理世界被机器理解的语言;
    • MCP让设备「够得着」——它是能力被发现与调用的标准协议;
    • Skills让 Agent「干得好」——它是领域经验被沉淀与复用的载体。

    三者构成一套「语义 → 连接 → 能力」的分层栈,又通过「TSL → MCP Server → Skill → 设备自描述」的转化链形成可自增强的闭环。谁能把这三层打磨得足够标准、足够顺滑,谁就能在「百亿终端 Agent 化」的下半场里,把竞争对手甩开一个身位。

    连接的终局,从来不是连上,而是会想。


    参考资料

    • Anthropic: Donating MCP to the Agentic AI Foundation
    • Alibaba Cloud IoT: Device properties, events, and services(物模型三要素)
    • 阿里云物联网平台:什么是物模型 / TSL
    • 物联网智库:百亿终端的 Agent 化之路——从「连接信息」到「连接智能」的三个跃迁
    • EMQX Enterprise 6.2: Native Agent Discovery and Coordination for AI and IoT Systems
    • Claude Help Center: What are skills?
    • Scrapeless: The State of MCP in H1 2026
    • UnitedRhino / things:融合 AI 智能体、物模型、Skills 与 MCP 的开源 AIoT 底座
    赞(0)
    未经允许不得转载:171主机测评 » 从「万物互联」到「万物智能」:物模型、MCP 与 Skills 如何重构物联网中台的语义与能力栈
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址