Skip to main content

Module runner

Module runner 

Source
Expand description

统一 Agent 运行器

提供统一的 Agent 执行接口,可以运行任何实现了 MoFAAgent 的 Agent。

§架构

┌─────────────────────────────────────────────────────────────────────┐
│                      AgentRunner<T: MoFAAgent>                      │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  状态管理                                                     │   │
│  │  • RunnerState: Initializing, Running, Paused, Stopping      │   │
│  └─────────────────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  执行模式                                                     │   │
│  │  • Single: 单次执行                                           │   │
│  │  • EventLoop: 事件循环(支持 AgentMessaging)                 │   │
│  │  • Stream: 流式执行                                           │   │
│  └─────────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────────┘

§示例

§基本使用

use mofa_runtime::runner::AgentRunner;
use mofa_runtime::agent::MoFAAgent;

#[tokio::main]
async fn main() -> AgentResult<()> {
    let agent = MyAgent::new();
    let mut runner = AgentRunner::new(agent).await?;

    // 执行任务
    let input = AgentInput::text("Hello, Agent!");
    let output = runner.execute(input).await?;

    // 关闭
    runner.shutdown().await?;
    Ok(())
}

§事件循环模式

use mofa_runtime::runner::AgentRunner;
use mofa_runtime::agent::{MoFAAgent, AgentMessaging};

struct MyEventAgent { }

#[async_trait]
impl MoFAAgent for MyEventAgent { /* ... */ }

#[async_trait]
impl AgentMessaging for MyEventAgent { /* ... */ }

#[tokio::main]
async fn main() -> AgentResult<()> {
    let agent = MyEventAgent::new();
    let mut runner = AgentRunner::new(agent).await?;

    // 运行事件循环
    runner.run_event_loop().await?;

    Ok(())
}

Structs§

AgentRunner
统一 Agent 运行器
AgentRunnerBuilder
AgentRunner 构建器
RunnerStats
运行器统计信息

Enums§

RunnerState
运行器状态

Functions§

run_agents
创建并运行 Agent(多次执行)