-
Notifications
You must be signed in to change notification settings - Fork 0
Power Native Design en
中文 | English
Maintained version: v0.51.2 | Last updated: 2026-07-06
EnerOS's six design philosophies are not slogans — they are hard constraints written into the kernel. Together they answer one question: why can't you just "bolt on" power domain knowledge to a general-purpose Agent framework?
See README §Design Philosophy and ADR-0002.
Power topology, powerflow calculation, and device models are OS-native abstractions, not bolt-on plugins.
General-purpose Agent frameworks treat power knowledge as "prompts" or "plugins" hung outside the LLM; EnerOS writes them into the kernel — eneros-topology maintains the grid graph, eneros-powerflow solves Y·V = I, eneros-equipment holds the IEC/GB-compliant device parameter library. Agents are born running on top of the physical world model of the grid.
Each Agent corresponds to a functional node in the grid (substation, feeder, device), naturally topology-aware and constraint-bound.
Not "Agent + grid data", but "Agent is a grid node". Communication between Agents is information exchange between grid nodes. Agents in the same substation automatically form a collaboration group; Agents across substations communicate in a structured way via topology paths, avoiding the chaos of global broadcast.
Implementation: see eneros-agent's topology-aware context injection.
Safety constraints (N-1, thermal stability, voltage limits) are enforced by the kernel — no Agent decision may exceed the physical feasibility domain.
This is the fundamental difference between EnerOS and general-purpose frameworks. Safety is not a prompt, but an OS-level hard law:
-
SafetyGatewayis type-level unbypassable (Validated<Command>newtype, see ADR-0015) -
ConstraintEnginevalidates powerflow convergence / voltage violations / line overloads at the kernel layer - Decisions that fail physical constraints are rejected at the kernel layer and written to audit (
AuditAction::ConstraintViolation/CommandRejected)
See Safety Gateway.
Power systems are strongly time-coupled systems. EnerOS treats the time dimension as a first-class citizen.
eneros-timeseries provides native operations in three time modes:
- Real-time data stream — SCADA collector continuous writes
- Historical replay — arbitrary time-window queries
- Predictive simulation — What-If engine parallel multi-scenario
Agents seamlessly switch between "review - perceive - predict" time perspectives. eneros-twin provides virtual clock speed/pause/jump, accurately reproducing 24h of data.
Power systems have rigid real-time requirements — protection actions must complete in milliseconds.
Dual execution domain architecture (see Dual Execution Domain):
- General execution domain — Agent orchestration, AI inference (seconds ~ minutes)
- Real-time execution domain — protection, switching operations (microseconds ~ milliseconds, P99 < 1ms)
Technology stack: SCHED_FIFO priority preemption + CPU isolation (isolcpus) + mlockall memory locking + lockfree SPSC IPC + hardware watchdog (/dev/watchdog).
RT type-level guarantees (v0.49.0+): Validated<Command> / clippy::disallowed_types RT lock ban / NoAlloc + AllocTracker / WCET budget framework. CI enforces this via the rt-check job.
Standardized Agent communication protocols and device access specs, supporting plug-and-play for heterogeneous energy devices and multi-vendor systems.
11 protocols covered (see Protocol Support):
- Power-specific: IEC 61850 / IEC 60870-5-104 / IEC 60870-5-103 / IEC 60870-6 (ICCP) / CDT / DL/T 698.45 / DL/T 645-2007
- Industrial general: Modbus / DNP3 / OPC UA
- IoT: MQTT 5.0 / CoAP / LwM2M
- Synchrophasor: IEEE C37.118 (PMU/PDC)
Device models comply with IEC / GB standards, pandapower-compatible format.
| Dimension | General Agent Framework | SCADA / EMS | EnerOS |
|---|---|---|---|
| Power physical modeling | None / bolt-on | Deep but closed | Native kernel |
| AI Agent support | Native | None | Native |
| Safety constraint guarantee | Prompt-level | Hardcoded | Kernel-level enforcement |
| Topology awareness | None | Yes | Agent-native awareness |
| Multi-agent collaboration | General protocol | None | Topology-structured collaboration |
| Openness | High | Low | High (plugin architecture) |
- Dual Execution Domain — How the RT type system turns "constraints" into compile-time hard constraints
-
Safety Gateway —
Validated<Command>type-level unbypassable - ADR-0002 — Full Power-Native AgentOS decision record
EnerOS Wiki | v0.51.2