Skip to content

Architecture Overview

EnerOS Bot edited this page Jul 5, 2026 · 1 revision

中文 | English

Architecture Overview / 架构总览

维护版本:v0.51.2 | 最后更新:2026-07-06

EnerOS 采用双执行域 + 11 层架构:通用执行域承载 Agent 编排与 AI 推理,实时执行域保障保护逻辑与开关操作的确定性时延;底层由 56 个 crate 按依赖方向分层组织。

完整架构文档见 README §系统架构docs/developer-guide.md §1


双执行架构

┌─────────────────────────────────────────────────────────────────┐
│                  通用执行域 (General Domain)                     │
│  Agent 运行时 · AI 推理 · 规划优化 · 人机交互                    │
│  响应时间:秒级 ~ 分钟级                                          │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │              实时安全网关 (RT Safety Gateway)              │  │
│  │    跨域通信 · 指令下发 · 状态同步 · 优先级仲裁             │  │
│  └────────────────────────┬─────────────────────────────────┘  │
├───────────────────────────┼─────────────────────────────────────┤
│                  实时执行域 (Real-Time Domain)                  │
│  继电保护 · 开关操作 · 故障隔离 · 频率调节                       │
│  响应时间:微秒级 ~ 毫秒级                                        │
└─────────────────────────────────────────────────────────────────┘
执行域 调度策略 典型任务 响应时延
通用执行域 公平调度 Agent 编排、AI 推理、潮流计算 秒级 ~ 分钟级
实时执行域 优先级抢占(SCHED_FIFO) 继电保护、开关操作、故障隔离 微秒级 ~ 毫秒级

核心原则:安全域不可被通用域阻塞 / 单向信任 / 跨域通过 SafetyGateway / 故障降级到本地保护逻辑。

详见 Dual Execution Domain


分层架构(11 层)

┌─────────────────────────────────────────────────────────────────┐
│ L3 应用层  eneros-api (HTTP/WS/CLI) · eneros-dashboard          │
│            eneros-iot-hub · eneros-3d · eneros-report           │
├─────────────────────────────────────────────────────────────────┤
│ L3 编排层  eneros-agent (7种专业Agent+编排+调度+协作)            │
│            eneros-gateway (7阶段决策管线+安全网关+执行器)        │
│            eneros-multiregion (多区域HA+DR+滚动升级)             │
│            eneros-edge (边缘设备管理+批量OTA)                    │
├─────────────────────────────────────────────────────────────────┤
│ L2 能力层  eneros-reasoning · eneros-tool · eneros-memory       │
│            eneros-scada · eneros-device · eneros-constraint     │
│            eneros-analysis · eneros-network · eneros-bridge     │
│            eneros-timeseries · eneros-equipment · eneros-tenant │
│            eneros-ai · eneros-ids · eneros-compliance           │
│            eneros-i18n · eneros-twin                            │
├─────────────────────────────────────────────────────────────────┤
│ L9 NL 层  eneros-nl (自然语言查询引擎+8意图)                     │
├─────────────────────────────────────────────────────────────────┤
│ L1 协议层  eneros-protocol-mqtt · eneros-protocol-coap          │
│            eneros-protocol-lwm2m · eneros-protocol-dlt698       │
│            eneros-protocol-iec103 · eneros-protocol-cdt         │
│            eneros-protocol-pmu · eneros-protocol-iccp           │
├─────────────────────────────────────────────────────────────────┤
│ L1 核心层  eneros-powerflow · eneros-topology · eneros-eventbus │
│            eneros-equipment · eneros-memory · eneros-timeseries │
│            eneros-trust · eneros-audit                          │
├─────────────────────────────────────────────────────────────────┤
│ L0 基础层  eneros-core (类型/错误/配置/线性代数/i18n+privacy)    │
└─────────────────────────────────────────────────────────────────┘
层级 职责 代表 crate
L0 基础层 领域类型、错误、配置、线性代数 eneros-core, eneros-linalg
L1 核心层 拓扑、潮流、设备、事件、时序、信任、审计 eneros-powerflow, eneros-topology, eneros-trust
L1 协议层 8 个独立协议 crate(MQTT/CoAP/LwM2M/DLT698/IEC103/CDT/PMU/ICCP) eneros-protocol-*
L2 能力层 推理、工具、记忆、SCADA、设备、约束、分析、AI、租户、合规、i18n、孪生 eneros-ai, eneros-tenant, eneros-twin
L9 NL 层 自然语言查询 eneros-nl
L3 编排层 Agent 编排、安全网关、多区域 HA、边缘 eneros-agent, eneros-gateway, eneros-multiregion
L3 应用层 HTTP/WS API、Dashboard、IoT Hub、3D、报表 eneros-api, eneros-dashboard

详见 Layered DependenciesCrate Index


关键架构原则

  1. 内核-用户分离 — 物理约束执行在内核层,Agent 逻辑在用户层
  2. 图为中心 — 电网拓扑图是系统核心索引,一切操作围绕图展开
  3. 事件驱动 — 基于事件总线的异步架构,适配实时响应
  4. 插件架构 — 设备协议、求解器、Agent 能力均以插件形式接入
  5. 标准合规 — 设备模型与通信协议遵循 IEC 61850 / IEC 60870-5-104 / GB 系列

关键 ADRs

ADR 主题
ADR-0002 Power-Native AgentOS 定位
ADR-0003 插件进程隔离
ADR-0015 RT 类型层与安全类型层
ADR-0016 v0.50.0 MVP 纵向闭环

完整 19 个 ADR 见 ADRs 索引


下一步

Clone this wiki locally