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

中文 | English

常见问题 FAQ

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

本页收集 EnerOS 社区高频问题。问题未解决请查阅 Issues 或提交新 issue。

项目定位

Q1: EnerOS 与通用 Agent 框架(LangChain / AutoGPT / CrewAI)有何区别?

EnerOS 是电力原生 OS,不是通用 Agent 框架:

维度 通用 Agent 框架 EnerOS
领域 通用任务 电力系统专用
调度 进程内或简单线程 OS 级进程调度 + 优先级抢占
实时性 无保证 双执行域 + RT 类型层 + WCET
安全 应用层 内核层(Constraint as Kernel Law)
协议 通用 HTTP / API 11 种电力协议原生支持
审计 可选 WORM + HMAC 链强制

Q2: EnerOS 与 SCADA / EMS 有何区别?

维度 SCADA / EMS EnerOS
定位 监控与能量管理系统 操作系统(OS)
Agent 7 种领域 Agent + LLM 集成
决策 人工 / 规则 Agent 自主 + 人工监督
扩展 厂商私有 插件市场 + Ed25519 签名
部署 中心化 边缘 + 云端 + 多区域多活

EnerOS 不是替代 SCADA/EMS,而是承载下一代 SCADA/EMS 的 OS 基础设施。

Q3: 为什么选择 Rust?

理由 说明
内存安全 无 GC、无数据竞争,适合电力关键基础设施
零成本抽象 性能可与 C 媲美,满足实时性要求
无运行时 无 JVM / Go runtime 开销,启动快、内存占用低
类型系统强 通过类型层封装实现"约束不可绕过"(Validated)
生态成熟 tokio / serde / axum 等关键依赖成熟
跨平台 同一代码库支持 x86_64 / aarch64 / 嵌入式

实时性

Q4: 如何保证实时性?

5 层防御:

  1. 架构层:双执行域隔离,通用域异常不影响实时域
  2. 类型层Validated<Command> newtype + clippy::disallowed_types 编译期禁锁
  3. 运行时NoAlloc + AllocTracker 检测堆分配 + WCET 框架
  4. OS 层:PREEMPT_RT 内核 + SCHED_FIFO + isolcpus + mlockall
  5. IPC 层:SPSC 无锁队列 + huge pages

详见本 wiki 双执行域SafetyGateway 页。

Q5: 实时域能达到什么时延?

操作 P50 P99 P99.9
继电保护跳闸 < 100μs < 1ms < 5ms
开关操作 < 1ms < 10ms < 50ms
频率调节 < 10ms < 50ms < 100ms

P99 < 1ms 是实时域硬指标。

LLM 与 Agent

Q6: LLM 决策如何保证安全?

LLM 决策必须经过 SafetyGateway 7 阶段管线:

  1. 类型层:LlmAgent::decide 返回 Vec<AgentAction>,不直接执行
  2. 约束校验:所有动作经 ConstraintEngine 检查 N-1 / 热稳 / 电压
  3. 优先级仲裁:多 Agent 冲突由 PriorityArbiter 裁决
  4. 审计:所有决策写入 WORM 审计日志 + HMAC 链
  5. 类型层不可绕过:实时域 API 仅接受 Validated<Command>

LLM 永远不会直接控制设备。

Q7: LLM 输出错误怎么办?

四项硬指标(C1-C4)+ v0.50.2 语义正确性框架:

  • C1: Action 一致性 ≥ 80%
  • C2: 决策可审计性 100%
  • C3: 违规检测率 100%
  • C4: 时延合规 ≥ 95%

详见本 wiki LLM 集成 页。

Q8: 必须使用 LLM 吗?

不。LLM 是可选的。EnerOS 的 7 种 Agent 默认使用规则 / 优化算法决策,LLM 仅作为 LlmAgent<T> 装饰器增强。无 LLM 时 Agent 仍可独立运行。

多租户与隔离

Q9: 多租户有必要吗?

电力场景常见需求:

  • 省地一体化:省调 + 地调在同一 EnerOS 实例
  • 变电站群:多个变电站共享运维
  • 综合能源:电 / 热 / 气多能源协调

多租户提供命名空间隔离 + 配额 + 跨租户默认拒绝,避免不同组织相互干扰。详见本 wiki 多租户 页。

Q10: 跨租户访问为什么返回 404 而不是 403?

404 不泄露资源存在性,避免攻击者通过枚举 tenant_id 探测其他租户资源。这是零信任架构的默认拒绝原则。

商业用途

Q11: EnerOS 可以商用吗?

可以。EnerOS 采用 MIT 许可证,允许商业使用、修改、分发、私有化部署。详见主仓库 LICENSE

Q12: 商业部署需要付费吗?

不需要。MIT 许可证下 EnerOS 完全免费。商业支持(咨询 / 定制 / SLA)请联系项目维护者。

开发与贡献

Q13: 如何参与贡献?

  1. 阅读主仓库 CONTRIBUTING.md
  2. Fork 仓库 + 创建 feature 分支
  3. 遵循 conventional commits 提交规范
  4. PR 必须通过 7 大质量门禁
  5. 重大架构决策需新增 ADR

Q14: 文档与代码不一致怎么办?

按项目记忆系统规则:发现任何文档与代码现状不符(即使非本次任务范围),必须顺手修正,保持文档新鲜度。可直接提 PR 修正文档。

相关文档

Clone this wiki locally