Skip to content

Agent Runtime

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

中文 | English

Agent 运行时

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

EnerOS 的 Agent 是 OS 调度单元,每个 Agent 是一个独立进程,通过事件总线协作。本页概述 7 种领域 Agent、生命周期、3 种协作模式与 LLM 任务分解;完整设计请参阅 ADR-0010 与主仓库 docs/developer-guide.md §4。

7 种领域 Agent

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 接管

3 种协作模式

Master-Slave(主从)

主 Agent 分解任务,下发给从 Agent 执行;适用于层级化调度场景。

Dispatch (Master) ─┬─→ Forecast (Slave)
                   ├─→ Operation (Slave)
                   └─→ Trading (Slave)

Peer-to-Peer(对等)

Agent 之间直接通信,无中央协调;适用于分布式能源协调场景。

Forecast ↔ Trading
   ↕          ↕
Operation ↔ Self-Healing

Bidding(竞价)

Agent 提交动作提案,由 PriorityArbiter 按优先级与冲突解决规则裁决;适用于多 Agent 竞争同一资源的场景。

[Dispatch 提案] ─┐
[Trading 提案]  ─┼→ PriorityArbiter → [胜出动作]
[Operation 提案]─┘

PPO 强化学习(v0.43.0+)

EnerOS 集成 PPO(Proximal Policy Optimization)用于:

  • 调度策略在线学习(基于历史负荷与发电数据)
  • 自愈策略优化(基于故障场景反馈)
  • 市场竞价策略(基于历史成交价)

训练数据来源于 eneros-timeseries 历史时序,训练后策略写入 eneros-memory 供 Agent 加载。

LLM 任务分解(v0.50.0+)

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 集成 页。

已知限制(v0.51.2)

  • 瞬态集成为稳态桩,非真实暂态稳定计算
  • PPO 训练仅离线,未支持在线强化学习
  • Agent 间 P2P 通信当前仅同进程内调用,跨进程 IPC 待 v0.52.0

相关文档

Clone this wiki locally