-
Notifications
You must be signed in to change notification settings - Fork 0
Agent Runtime
EnerOS Bot edited this page Jul 5, 2026
·
1 revision
中文 | English
维护版本:v0.51.2 | 最后更新:2026-07-06
EnerOS 的 Agent 是 OS 调度单元,每个 Agent 是一个独立进程,通过事件总线协作。本页概述 7 种领域 Agent、生命周期、3 种协作模式与 LLM 任务分解;完整设计请参阅 ADR-0010 与主仓库 docs/developer-guide.md §4。
| Agent | 二进制 | 职责 | 典型时延 |
|---|---|---|---|
| Dispatch | dispatch-agent | 调度决策(机组组合 / 经济调度) | 秒~分钟 |
| Forecast | forecast-agent | 负荷 / 新能源发电预测 | 分钟~小时 |
| Operation | operation-agent | 操作执行(开关 / 调压器 / AGC) | 秒 |
| Planning | planning-agent | 运行规划(日前 / 月度) | 小时~天 |
| Trading | trading-agent | 电力市场交易(竞价 / 结算) | 分钟 |
| Self-Healing | self-healing-agent | 故障自愈(故障定位 / 隔离 / 恢复) | 毫秒~秒 |
| Maintenance | (子模块) | 设备健康管理 / 维护计划 | 小时~天 |
Created → Initialized → Running → Paused → Stopped → Destroyed
↑ ↓
└─── Error ──┘
| 状态 | 触发 | 行为 |
|---|---|---|
| Created | 启动二进制 | 加载配置 |
| Initialized |
init() 完成 |
注册到 AgentOrchestrator |
| Running | start() |
接收事件 / 执行决策循环 |
| Paused |
pause() 或资源压力 |
停止决策循环,保留状态 |
| Stopped |
stop() 或外部信号 |
释放资源 |
| Error | 异常 | 上报事件总线,由 Self-Healing 接管 |
主 Agent 分解任务,下发给从 Agent 执行;适用于层级化调度场景。
Dispatch (Master) ─┬─→ Forecast (Slave)
├─→ Operation (Slave)
└─→ Trading (Slave)
Agent 之间直接通信,无中央协调;适用于分布式能源协调场景。
Forecast ↔ Trading
↕ ↕
Operation ↔ Self-Healing
Agent 提交动作提案,由 PriorityArbiter 按优先级与冲突解决规则裁决;适用于多 Agent 竞争同一资源的场景。
[Dispatch 提案] ─┐
[Trading 提案] ─┼→ PriorityArbiter → [胜出动作]
[Operation 提案]─┘
EnerOS 集成 PPO(Proximal Policy Optimization)用于:
- 调度策略在线学习(基于历史负荷与发电数据)
- 自愈策略优化(基于故障场景反馈)
- 市场竞价策略(基于历史成交价)
训练数据来源于 eneros-timeseries 历史时序,训练后策略写入 eneros-memory 供 Agent 加载。
LlmAgent<T> 装饰器将复杂任务分解为子任务:
pub struct LlmAgent<T: LlmClient> {
client: T,
prompt_template: PromptTemplate,
}
impl<T: LlmClient> LlmAgent<T> {
pub async fn decide(&self, context: &DecisionContext) -> Result<Vec<AgentAction>> {
let prompt = self.prompt_template.render(context);
let response = self.client.complete(&prompt).await?;
LlmDecisionParser::parse(&response)
}
}支持 OpenAI / Anthropic / Ollama 三种 LlmClient 实现。详见 LLM 集成 页。
- 瞬态集成为稳态桩,非真实暂态稳定计算
- PPO 训练仅离线,未支持在线强化学习
- Agent 间 P2P 通信当前仅同进程内调用,跨进程 IPC 待 v0.52.0
- ADR-0010 Agent 编排
- LLM 集成 — LlmAgent / LlmClient / 验证
- SafetyGateway — Agent 动作下放实时域的把关
- 主仓库 docs/developer-guide.md §4 — 添加新 Agent 流程
- 主仓库 crates/eneros-agent/ — 源码
EnerOS Wiki | v0.51.2