-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ en
中文 | English
Maintained version: v0.51.2 | Last updated: 2026-07-06
This page collects frequently asked questions from the EnerOS community. If your question is not answered here, check Issues or open a new issue.
EnerOS is a power-native OS, not a general-purpose Agent framework:
| Dimension | General Agent framework | EnerOS |
|---|---|---|
| Domain | General tasks | Power system specific |
| Scheduling | In-process or simple threads | OS-level process scheduling + priority preemption |
| Real-time | No guarantee | Dual execution domain + RT type-level safety + WCET |
| Security | Application layer | Kernel layer (Constraint as Kernel Law) |
| Protocols | General HTTP / API | 11 power protocols natively supported |
| Audit | Optional | WORM + HMAC chain mandatory |
| Dimension | SCADA / EMS | EnerOS |
|---|---|---|
| Positioning | Supervisory control and energy management system | Operating system (OS) |
| Agent | None | 7 domain Agents + LLM integration |
| Decision | Manual / rules | Agent autonomous + human supervision |
| Extension | Vendor proprietary | Plugin marketplace + Ed25519 signing |
| Deployment | Centralized | Edge + cloud + multi-region active-active |
EnerOS does not replace SCADA/EMS; it is the OS infrastructure that hosts the next generation of SCADA/EMS.
| Reason | Explanation |
|---|---|
| Memory safety | No GC, no data races; suitable for power critical infrastructure |
| Zero-cost abstractions | Performance on par with C; meets real-time requirements |
| No runtime | No JVM / Go runtime overhead; fast startup, low memory footprint |
| Strong type system | Type-level encapsulation enforces "constraints cannot be bypassed" (Validated) |
| Mature ecosystem | tokio / serde / axum and other key dependencies are mature |
| Cross-platform | Same codebase supports x86_64 / aarch64 / embedded |
5 layers of defense:
- Architecture: Dual execution domain isolation; general domain anomalies do not affect the RT domain
-
Type-level:
Validated<Command>newtype +clippy::disallowed_typescompile-time lock ban -
Runtime:
NoAlloc+AllocTrackerdetect heap allocation + WCET framework - OS: PREEMPT_RT kernel + SCHED_FIFO + isolcpus + mlockall
- IPC: SPSC lock-free queue + huge pages
See the wiki Dual Execution Domain and SafetyGateway pages.
| Operation | P50 | P99 | P99.9 |
|---|---|---|---|
| Relay protection trip | < 100μs | < 1ms | < 5ms |
| Switch operation | < 1ms | < 10ms | < 50ms |
| Frequency regulation | < 10ms | < 50ms | < 100ms |
P99 < 1ms is the hard target for the RT domain.
LLM decisions must pass through the SafetyGateway 7-stage pipeline:
- Type-level:
LlmAgent::decidereturnsVec<AgentAction>, not executed directly - Constraint validation: all actions checked by
ConstraintEnginefor N-1 / thermal / voltage - Priority arbitration: multi-Agent conflicts resolved by
PriorityArbiter - Audit: all decisions written to WORM audit log + HMAC chain
- Type-level unbypassable: RT domain API only accepts
Validated<Command>
The LLM never directly controls devices.
Four hard metrics (C1-C4) + v0.50.2 semantic correctness framework:
- C1: Action consistency ≥ 80%
- C2: Decision auditability 100%
- C3: Violation detection rate 100%
- C4: Latency compliance ≥ 95%
See the wiki LLM Integration page.
No. LLM is optional. EnerOS's 7 Agents use rule / optimization algorithms by default; LLM is only an LlmAgent<T> decorator enhancement. Without LLM, Agents still operate independently.
Common power industry requirements:
- Provincial-municipal integration: provincial dispatch + municipal dispatch in the same EnerOS instance
- Substation clusters: multiple substations sharing operations
- Integrated energy: electricity / heat / gas multi-energy coordination
Multi-tenancy provides namespace isolation + quotas + cross-tenant default deny, preventing different organizations from interfering. See the wiki Multi-Tenancy page.
404 does not leak resource existence, preventing attackers from enumerating tenant_id to probe other tenants' resources. This is the default-deny principle of zero-trust architecture.
Yes. EnerOS is MIT-licensed, allowing commercial use, modification, distribution, and private deployment. See the main repo LICENSE.
No. Under the MIT license EnerOS is completely free. Commercial support (consulting / customization / SLA) please contact the project maintainers.
- Read the main repo CONTRIBUTING.md
- Fork the repo + create a feature branch
- Follow the conventional commits specification
- PRs must pass the 7 quality gates
- Major architecture decisions require a new ADR
Per the project memory system rules: any documentation found inconsistent with the current code (even outside the current task scope) must be fixed promptly to maintain documentation freshness. You can directly open a PR to fix the documentation.
- Wiki Home — Project overview
- Wiki Power System Primer — For SW/AI engineers
- Wiki AgentOS Primer — For power engineers
- Wiki Glossary — Cross-discipline terminology reference
- Main repo README.md — Project description
- Main repo CONTRIBUTING.md — Contribution guidelines
EnerOS Wiki | v0.51.2