MQTTX 博客

MQTTX 1.13.2 发布:MQTTX Agent 与 Dashboard

MQTTX 1.13.2 发布:MQTTX Agent 与 Dashboard

MQTTX 1.13.2 现已正式发布。桌面内置 Copilot 升级为 MQTTX Agent,可根据自然语言请求执行 MQTT 测试、比对结果和排查问题;Dashboard 首次开放,便于在测试过程中观察设备指标与变化趋势。本版还新增 GZIP 消息解压,并改进连接管理和日常调试体验。

下载 MQTTX 1.13.2 · 官方下载页面

MQTTX Agent:自动执行 MQTT 测试与验证 🤖

MQTTX Agent 是内置于桌面客户端的 AI Agent。说明测试目标和预期结果后,它可以自动拆解任务,调用连接、订阅、发布、消息查询和日志等工具,执行测试、比对实际结果并汇总结论。测试过程中需要的操作会按权限模式请求批准。Agent 还可以生成测试数据、客户端示例、Schema 和数据处理脚本。

自动验证连接与消息收发

例如,给 Agent 一个 Pub/Sub 测试目标,它可以检查连接、订阅测试主题、发布消息,等待或查询接收记录,再比对 Topic 和 Payload,报告实际 QoS 与各步骤的结果:

验证当前连接的消息收发:使用 mqttx-test/ 下的唯一主题,以 QoS 1 发送一条包含唯一测试标识和时间戳的 JSON 消息。预期收到相同的主题和测试数据。请完成验证并汇总各步骤的结果;如果失败或没有收到匹配消息,查看日志并说明失败环节。

Agent 根据工具返回的连接状态、收发记录和日志给出结论;缺少匹配的接收记录时,结果仍需确认。Ask 模式会在连接、订阅和发布等操作前请求批准。

验证设备指令与状态反馈

设备接入测试还需要核对指令是否正确执行。向 Agent 提供设备的命令主题、Payload 格式、状态上报主题和预期状态后,它可以发送指令、等待新的回报并自动比对结果。例如:

按我提供的设备协议,验证书房风扇的二档控制:发送调速指令,等待新的状态上报,比对 power 和 speed 是否符合预期,并报告验证结论及对应回报。没有新回报时,说明结果未确认。

测试结果以新的设备状态或指令执行回报为准。Ask 模式会在发布控制消息等操作前请求批准。

适配测试任务的工具与工作区

通过 @ 引用连接,Agent 可以围绕对应的配置、订阅和消息继续分析。输入 / 选择 Skill,获得客户端代码、测试数据、Schema、自定义函数、诊断或 Zero EMQX 等任务的支持。提供代表性输入和预期输出后,Agent 可运行转换函数或 Schema 测试,自动比对输出并报告结果。脚本测试在任意权限模式下都需要批准;转换函数会影响所有连接,应用前需核对作用范围。

MQTTX CLI Skill 提供连接检查、消息收发验证、数据模拟和压测的 CLI 命令,可复制到终端运行。已配置的 MCP 服务也可提供外部工具,配合 MQTTX 操作使用。

Agent Skills 选择菜单

Agent 支持全屏视图和可移动、可调整大小的浮窗,Cmd/Ctrl + J 可快速打开,便于同时查看消息与对话。工具步骤与结果清晰展示,回复中的段落、列表、代码和表格也更易阅读。

MQTTX Agent 浮动窗口示例

本版加入上下文用量与自动压缩,并支持在模型具备相应能力时选择推理强度。同时完善模型参数兼容、重载后的连接上下文和 @ 菜单,修复订阅数量统计。

Dashboard:集中查看设备指标与变化趋势 📊

Dashboard 将消息字段转换为数值、仪表盘和趋势图,便于在测试过程中观察温度、湿度、压力等指标,并比较测试前后的变化。基于已有连接即可手动配置,无需先使用 Agent。

在 Viewer → Dashboard 中,为组件选择连接、Topic Filter 和 Payload 字段:

  • Big Number:突出当前温度、压力或计数器读数。
  • Gauge:显示湿度、负载百分比等指标在设定范围中的位置。
  • Line:按消息接收时间展示变化趋势,比较测试前后的数据。

每个组件独立选择数据源,支持拖动与调整大小。同一面板可展示多个字段,也可组合不同连接和主题的数据。

工厂遥测 Dashboard 示例

组件随新消息更新,也可按时间范围回看本机已接收并保存的消息。实时更新与历史查询均支持 MQTT +、# Topic Filter。本版同时完善数据加载、历史匹配、菜单、组件编辑器和 Gauge 样式。

更多功能与使用改进

GZIP 消息解压

Desktop 和 Web 新增可选的“自动解压 GZIP 消息”设置,便于直接检查压缩 Payload 中的内容。Desktop 为已解压消息显示标记;未压缩消息保留原始内容。

GZIP 自动解压设置

大型 Topic Tree 浏览

Desktop 改善大型 Unified Namespace 的浏览和更新,限制一次展示的子主题数量,并在展开大型主题树前请求确认。可调整大小的信息面板显示直接子主题、数量与深度,便于查看主题层级。

各连接独立保留发布内容

Desktop 为每个连接独立保留发布 Topic、Payload 和发布历史。切换连接时,发布区会恢复当前连接的内容。Desktop 和 Web 均支持删除单条发布 Topic 历史。

连接分组与 JSON 备份

Desktop 创建或编辑连接时可选择分组,保留分组折叠状态,并显示新建连接。JSON 备份与恢复包含分组名称及成员关系,保留已有连接组织方式。

离线订阅与 MQTT 5.0 调试

Desktop 和 Web 支持在 Clean Session 场景下离线删除或禁用订阅,并更新重连缓存,便于处理无效订阅引起的反复断连。持久会话仍需连接 Broker 后处理其保存的订阅。

Desktop 展示 Broker 返回的 Response Information,CLI 在请求并收到该信息时也会输出,便于检查 MQTT 5.0 请求与响应流程。

常用操作入口

Desktop 和 Web 在连接空页面增加快速连接入口,打开连接时展开隐藏的连接列表,并将清空历史移至工具栏。Desktop 增加清空前确认,以及连接、分组的可见 ⋯ 行菜单,统一行高与布局。

Desktop 和 Web 的 About 页面以消息流介绍 EMQ 产品,CLI 根帮助补充相关工具与服务链接。

修复与兼容性改进 🛠

  • 消息过滤与历史:Desktop 和 Web 正确处理 MQTT 通配符、系统主题、共享订阅及大小写,显示可清除的过滤条件。Desktop 搜索保留订阅过滤,历史翻页避免遗漏边界消息。
  • 订阅编辑:Desktop 和 Web 修复确认按钮持续加载的问题。
  • MQTT 5.0 属性:Desktop 和 Web 不再发送已清空的数值属性,修复空字符串造成的连接失败。
  • 连接配置:Desktop 立即应用编辑后的设置,停止旧客户端按过期配置重连。
  • 解码与导入:Desktop 修复嵌套 Protobuf 的闭括号缩进;不可读 Excel 文件显示错误并清理失效路径。
  • 界面一致性:Desktop 和 Web 改善浅色、深色、夜间主题的 Topic 颜色,并避免滚动条导致 QoS 标签换行。Desktop 补齐本地化文案,统一菜单、Payload Inspector 消息头、图表缩放、面板拖动及页面切换样式。
  • 平台兼容:Desktop 主窗口 Ctrl+W / Cmd+W 不再直接退出应用;Apple Silicon 安装 CLI 时使用正确原生架构。Web 的 Node.js 版本约束调整为 >=18。

此外,本版更新三端 README 和桌面功能文档,修复 lint 并增加对应 CI,清理失效、重复代码及测试准备,完善 CLI 发布流程和 npm provenance 元数据。

组合案例:自动验证遥测消息并展示结果

把一轮遥测消息验证交给 Agent:创建测试连接,发布 12 条样本,读取实际收到的消息,自动比对数量、Topic 与字段值,并汇总验证结果。独立的 Dashboard 用于展示同一连接收到的指标与趋势。

配置支持工具调用的模型后,在 Agent 中发送一条请求:

创建一个 Zero EMQX 临时 Broker,将连接命名为 Factory Demo 并连接,订阅 factory/+/telemetry。向 factory/line-01/telemetry 逐条发送 12 条包含 deviceId、temperature、humidity、pressure 且数值有变化的 JSON 消息。自动核对实际接收的消息数量、Topic 和字段值,报告验证结果。再创建名为 Factory Overview 的 Dashboard,显示温度、湿度、压力和温度趋势,检查组件的连接、Topic Filter 和字段绑定,最后打开面板。

Agent 分步骤执行,Ask 模式下按提示批准操作。Zero EMQX 提供免费的临时测试 Broker,实例有效期及回收规则以创建结果为准。

单条样本结构如下:

{
  "deviceId": "line-01",
  "temperature": 24.8,
  "humidity": 56,
  "pressure": 1.02
}

12 条本地样本的消息列表

四个组件绑定同一连接和 factory/+/telemetry:温度、压力使用 Big Number,湿度使用 0–100% 的 Gauge,温度趋势使用 Line。它们读取对应字段,数值单位分别为 °C、%、bar;趋势图的单位写在标题中。Agent 也可继续调整组件位置与大小。

组件数据源与 JSON 字段绑定

Agent 可以根据接收记录和组件配置汇总测试结果,指出未收到的消息或不符合预期的字段绑定。Dashboard 则展示消息中的最新读数与趋势。本例仅发送 12 条有限样本;后续设备或其它客户端继续向匹配主题发布时,保持连接与订阅,面板即可随新消息更新。

下载与文档

感谢所有贡献者,以及首次参与本轮版本贡献的 @DanInSpace104、@sourabhburse、@XuKing 和 @T3rm1。