本项目是为配合 Industrial Edge Gateway (edgeCore) 项目而实现的边缘大脑系统,提供 N+2 冗余架构、蜂群模式与集群协调能力。核心新增 EAN (Edge Agent Network) 统一 Agent 协作层,实现跨边缘网关的能力发现、调用编排与事件流处理。
基于 EdgeCore 数字底座的工业边缘协调平台——EdgeOS 的设计与实现 · PDF 下载
系统阐述 EdgeOS 架构设计、EAN 2.0 协议、AI 协同与 N+2 冗余,含 11 章节架构图与性能测试数据。
docs/ 经 GitHub Actions(.github/workflows/pages.yml)发布到 GitHub Pages:https://anviod.github.io/edgeOS/
站点采用零依赖的 Apple Pro Monochrome 单色系设计(docs/assets/portal.css,无 CDN、无构建步骤):浅灰底
#F5F5F7 / 纯白卡片 #FFFFFF / 主文字 #1D1D1F / 副文字 #6E6E73;全局仅保留单一品牌强调色
Apple System Blue #0071E3(深色 #0A84FF),状态点只用 #34C759 / #FF9500。
主题切换持久化在 localStorage,首屏由内联引导脚本落地,避免刷新闪白。
首页能力
| 分区 | 内容 |
|---|---|
| 胶囊分段控制器 | 顶部与中部各一组,系统总览 / 控制子系统 / 双通道总线 / 流水线 / 点位规范 / 文档 双向联动,切换时同步刷新眉标、标题与说明 |
| 集群遥测条 | 单调时钟(µs 级)、Capability 计数、Router 延迟、Registry 状态、人机签核门禁与事件总线实时流 |
| 架构检查器 | 六大控制平面卡片 → 抽屉式检查器,内嵌 macOS 风格代码窗(红黄绿窗钮 + 一键复制),展示 EAN 2.0 真实报文与 SLO 表 |
| 双通道总线 | MQTT 斜杠 Topic ↔ NATS 点分 Subject 对称寻址演示,可下发 invoke_capability、模拟链路超时降级并观察 wire trace |
| 点位规范 | 63 项 Capability 与 40001+ Modbus 寄存器映射表,支持按地址 / 语义 / 权限过滤 |
| 文档导航 | 后端架构、通信协议、AI 协同、EAN 2.0 改造指南、测试方案与样式规范等 8 个入口 |
架构检查器 · 抽屉内的 macOS 代码窗(EAN 2.0 真实报文)与文档导航
双通道总线 · 指令报文调试台与总物理回环监控
目录结构
docs/
├── index.html # 首页(layout: landing)
├── _layouts/landing.html # 首页版式
├── _layouts/default.html # 内页版式(kramdown + rouge 代码高亮)
├── _includes/portal-chrome.html / portal-footer.html
├── assets/portal.css # 设计系统(Apple Pro Monochrome)
├── assets/portal.js # 交互:分段器 / 检查器 / 命令面板 / 主题持久化
├── edgeos/ # EAN 2.0 改造指南、通信协议规范、AI 协同规划等
└── paper-edgeos/ # 学术论文(HTML + PDF)
本地预览
仓库未提供 Gemfile,需先安装 Jekyll 与站点声明的 jekyll-relative-links 插件:
gem install jekyll jekyll-relative-links
cd docs && jekyll serve不要直接用浏览器打开
docs/index.html。页面资源走relative_url生成绝对路径 (线上为/edgeOS/assets/...,本地 baseurl 为空时为/assets/...),file://下会丢失全部样式。
- Go 1.25+(模块名
github.com/anviod/edgeOS) - Node.js 20+ / npm 10+(前端构建)
- 可选:Ruby + Jekyll(仅用于本地预览文档站点)
go mod tidy
go run ./cmd后端默认监听 :80(见 internal/config/config.go 的 DefaultConfig),运行期数据落在 data/:
config.db(配置)与 edgeos.db(运行态),均为 bbolt。Prometheus 指标独立监听 :9090。
编译二进制:
go build -o bin/edgeOS ./cmddist/ 已提供 linux/amd64、linux/arm64、linux/arm7、windows/amd64 的 tar.gz 与 deb / rpm 包,
配套仓库根目录的 edgeOS.service(systemd)与 scripts/ 下的 pre/post 安装脚本。
cd ui
npm install
npm run dev前端开发服务器运行在 http://localhost:3000,/api 请求经 Vite 代理转发到后端
(默认 http://localhost:80,与 internal/config/config.go 中 cfg.Node.Listen 的默认值一致)。
npm run build # 生产构建
npm run test # vitest
npm run lint # eslint后端监听端口与默认值不一致时,用
EDGEOS_API覆盖即可,无需改动仓库文件:EDGEOS_API=http://localhost:8080 npm run dev
Edge Agent Network (EAN) 2.0 在现有 edgeCore + EdgeOS 架构上增加统一 Agent 协作层:
- edgeCore:Capability Runtime(能力注册、发现发布、Invoke 执行、Event 上报)
- EdgeOS:Coordination Platform(全局发现索引、跨节点编排、Invoke 发起、Event 订阅与规则)
协议层统一为 Agent / Capability / Discovery / Invoke / Event,传输同时支持 MQTT 与 NATS,Topic 使用统一的 $edgeos/... 逻辑命名(MQTT 斜杠形式;NATS 映射为点分 Subject,/→.、+→*、#→>)。
全局 Agent 与 Capability 索引,订阅 edgeCore 北向 EAN Runtime 发布的发现消息:
- Agent 上线/下线:自动维护在线 Agent 列表,支持
discovery/agent与discovery/agent/offline - Capability 注册:按
agent_id聚合 Capability 列表,支持 driver / system / ai / workflow 类别 - 主动查询:启动后周期性 Query edgeCore 完整 Capability,确保索引完整
- V1 Bridge 隔离:Phase 4(OS-P4)已下线 V1→EAN Bridge;V1 命令面已全面下线(
v1_command_enabled=false);AttachRegistryMirror仅镜像北向原生 EAN Agent,transient/v1-bridge 测试 Agent 不污染/api/nodes - 前端 UI:
EanAgentsView展示 Agent 列表、状态、Capability 详情
跨 Agent 能力调用编排器,实现分布式能力调用闭环:
- 请求发布:向
$edgeos/invoke/{agent_id}发布invoke_capability信封 - 响应关联:通过
$edgeos/reply/{source}接收回复,correlation_id+invoke_id双键关联 - 超时重试:按 Capability
timeout_sec设置客户端超时,invoke_id幂等 - 状态追踪:可选订阅
$edgeos/invoke/{agent_id}/status获取执行进度 - 前端 UI:
EanInvokeView提供 Capability 选择、参数填写、执行结果展示
默认 Capability 清单:
| Capability ID | 类别 | 说明 |
|---|---|---|
{protocol}.read_points |
driver | 读取点位(modbus-tcp/rtu、opcua、bacnet、s7 等) |
{protocol}.write_point |
driver | 写入点位 |
{protocol}.scan_devices |
driver | 扫描设备 |
system.diagnostics |
system | 系统诊断 |
ai.protocol_reverse |
ai | 协议逆向(AI 分析) |
ai.doc_parse |
ai | 文档解析(AI 分析) |
订阅并处理 edgeCore 上报的事件流,支持点位变化追踪:
- 点位变化:
event_type={point_id}.changed,携带value与previous_value - 设备在离线:
device.online/device.offline事件 - 规则路由:按 agent / device / point / event_type 过滤并触发规则/告警
- 广播订阅:支持
$edgeos/event/broadcast全局事件 - 前端 UI:
EanEventsView实时展示 Event 流,含 previous_value 差量对比
Agent 心跳接收与超时判定:
- 接收
$edgeos/heartbeat/{agent_id}消息,记录最后存活时间与序列号 - 超时判定:超过
N * heartbeat_interval_sec未收到心跳标记 offline - 与
discovery/agent/offline语义一致,确保状态同步
- Agent 生命周期:online / offline / heartbeat 超时判定(建议 2-3 个心跳周期)
- 权限控制:按租户/项目限制可 Invoke 的 Capability,write / admin / AI 类能力默认受限
- 审计记录:内存环形缓存记录跨节点 Invoke 的 initiator、target、capability、结果
MQTT 与 NATS 对称传输,同一业务逻辑复用编解码,仅替换 transport adapter:
| 能力 | MQTT | NATS |
|---|---|---|
| Discovery | $edgeos/discovery/* |
$edgeos.discovery.*(点分 Subject) |
| Invoke + Reply | $edgeos/invoke/{id} |
$edgeos.invoke.{id} |
| Event | $edgeos/event/{id} |
$edgeos.event.{id} |
| Heartbeat | $edgeos/heartbeat/{id} |
$edgeos.heartbeat.{id} |
NATS 使用标准点分 Subject,与 MQTT 斜杠 Topic 语义对称:
/→.、+→*、#→>(如$edgeos/discovery/agent→$edgeos.discovery.agent)。
- 启动韧性:EAN 启用但 broker 不可用时 Warn + 后台重连 + 延迟订阅,不 fatal
- V1 兼容并行:EAN
$edgeos/*与 V1edgeCore/*(MQTT)/edgeCore.*(NATS)同时可用,新功能只走 EAN
AI 协同组件通过 EAN 网络暴露为可调用的 Capability:
ai.protocol_reverse:协议逆向分析,输入 pcap/协议样本,输出候选配置ai.doc_parse:协议文档解析,自动生成点位映射建议- Human-in-the-loop:AI 产出须人工 Confirm 后落库,禁止自动写配置
ai.protocol_reverse/ai.doc_parseInvoke 返回task_id+deliverables,支持wait=true阻塞等待
系统采用 N+2 冗余架构,由 N 个边缘采集网关、1 个主母皇节点和 1 个备用母皇节点组成:
| 组件 | 数量 | 职责 |
|---|---|---|
| 边缘采集网关 (Edge Collector) | N | 设备连接、数据采集、协议转换、EAN Capability Runtime |
| 主母皇节点 (Primary Queen) | 1 | 全局调度、决策制定、状态同步、EAN Coordination Platform |
| 备用母皇节点 (Secondary Queen) | 1 | 实时同步主节点状态,故障时自动切换 |
- 高可用性:N+2 冗余,确保系统持续运行
- 可扩展性:支持横向扩展,适应不同规模部署
- 实时性:毫秒级响应,满足工业现场需求
- 一致性:分布式环境下数据一致性保证
- 自愈性:故障自动检测和恢复
前端已完成从"采集接入层"向"业务运营层 + 群控编排层"的扩展,新增 EAN 管理 一级导航:
导航结构:
- 采集运行(系统总览、消息总线、节点管理、设备控制、告警管理、系统设置)
- EAN 管理(总览、Agent 管理、Invoke 执行、Event 流、调试帮助)
- 业务扩展(储能管理、电源BMS、充电管理、能耗监测、账务台账)
- 群控编排(节点调度、场景联动、函数执行、脚本编排)
储能管理 - 站级调峰、SOC/SOH、充放电功率、站点策略面板
电源BMS - 电池簇矩阵诊断、温差压差、均衡状态、寿命风险
能耗监测 - 分回路能流、峰谷趋势、异常波动、损耗热点
账务台账 - 账单、开票、结算、对账与报表导出
场景联动 - ECA 规则链、触发条件、动作编排、联动日志
- 文档站点:anviod.github.io/edgeOS · 论文 · 后端架构实现指南
- 学术论文:基于 EdgeCore 数字底座的工业边缘协调平台 EdgeOS 的设计与实现
- EAN 2.0 改造指南:docs/edgeos/EAN2.0-edgeCore-EdgeOS改造指南.md
- EAN 2.0 升级报告:docs/edgeos/EdgeOS-EAN2.0改造升级报告.md
- 通信协议规范:docs/edgeos/EdgeCore通信协议规范(MQTT-NATS).md
- 安装包与 systemd 部署:
dist/+ edgeOS.service + scripts/ - UI 样式规范:docs/样式规范.md
- 工业组件置于
ui/src/components/edge/,布局组件置于ui/src/components/layout/,EAN 组件置于ui/src/components/eane/ - 状态指示统一使用
StatusIndicator,危险操作使用DangerDialog二次确认 - 实时数值使用
MetricCard,数据表格使用DataTable
- 遵循工业级 UI 标准:直角设计、无阴影、高对比度配色
- 触控目标最小 44px,适配工业手套操作
- 参考 样式规范.md
- 新增页面在
ui/src/router/注册,受保护路由设置requiresAuth: true - API 请求通过
ui/src/api/封装模块调用,自动处理 JWT Token 和错误响应
| 配套措施 | 描述 | 实现方式 |
|---|---|---|
| 双传输对称 | MQTT 斜杠 Topic + NATS 点分 Subject(/→.)语义对称 |
DualTransport 统一编解码 |
| 消息序列化 | 高效数据编解码 | JSON 信封 + Protobuf |
| QoS 保证 | Discovery/Invoke/Event QoS1 | 持久化 / ACK / 重试 |
| 启动韧性 | Broker 不可用时后台重连 | Warn + 延迟订阅 |
| V1 兼容 | 过渡期并行运行 | edgeCore/* 保留,新功能走 $edgeos/* |
| 设备对账 | V1 全量上报剪枝 | ReconcileDevices upsert + 删除残留 |
| 配套措施 | 描述 | 实现方式 |
|---|---|---|
| 心跳检测 | 节点存活状态检测 | TCP 心跳 / UDP 广播 |
| 故障检测 | 故障节点自动识别 | 超时检测 / 连续失败 |
| 角色切换 | 主备节点自动切换 | 热备 / 状态同步 |
| 数据同步 | 主备数据实时同步 | WAL / 增量同步 |
| 脑裂预防 | 避免双主同时服务 | 分布式锁 / 租约 |
| 故障恢复 | 故障节点重新加入 | 数据同步 / 配置恢复 |
建立 N+2 冗余架构核心框架:节点角色定义与状态机、主备心跳检测、基本故障转移、共享状态存储层 (bbolt)、节点注册与发现。
实现 Edge Agent Network 2.0 完整协调层:
- Discovery:双传输订阅
$edgeos/discovery/*,建立 Agent/Capability 全局索引(实机:1 Agent / 63 Capability) - Invoke + Reply:
system.diagnostics/modbus_tcp.list_points调用 completed,correlation_id 关联 - Event + previous_value:代码完成,实机 Event 流有点位变化数据
- Heartbeat + Governance:Agent 超时标记 offline,权限限制 write/admin/AI,审计内存缓存
- V1 兼容 + 设备对账:
ReconcileDevices修复 V1 上报残留(4=4),EAN Agent 同步节点注册表 - Phase 4(v8/v9):V1→EAN Bridge 下线;
edgeCore/cmd/responses/#移除;V1 命令面全面下线(v1_command_enabled=false,命令统一 EAN Invoke);AttachRegistryMirror过滤 transient Agent——/api/nodes仅含真实节点
里程碑:EAN 2.0 Phase 1/2 代码完成并实机复验通过(MQTT + NATS);Phase 4 全量落地(OS-P4 / EX-P4)+ V1 命令面全面下线;全量 go test ./... 通过;UI build 通过。
- 实现
$edgeos/state/*全量/增量状态同步 - Invoke status 进度订阅(OS-13)
- 审计持久化存储
- 双传输 Invoke 双边执行去重
实现群控调度和节能优化:采集任务调度器、负载均衡算法、节能优化策略、动态频率调整、自适应采集间隔。
里程碑:采集任务智能调度;系统能耗降低 20-30%;负载均衡效果显著。
本方案设计了一个功能完善的边缘大脑系统,采用 N+2 冗余架构模式,实现了一个主母皇节点和一个备用母皇节点的双机热备机制(蜂群模式)。系统能够协调 N 个边缘采集网关程序,实现影子设备自动发现、双向数据通信、群控算法调度以及节能优化等核心功能。
EAN 2.0 作为核心新增能力,在现有 edgeCore + EdgeOS 架构上增加了统一的 Agent 协作层,实现了跨边缘网关的能力发现、调用编排与事件流处理,支持 MQTT/NATS 双传输对称、V1 兼容并行、AI Capability 集成,为工业互联网和边缘计算场景提供了坚实的分布式协作基础。
GPL-3.0







