Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

多智能体协调

多智能体协作模式示例。

协调模式概述

MoFA 支持 7 种协调模式:

模式描述
请求-响应一对一确定性任务
发布-订阅一对多广播任务
共识多轮协商和投票
辩论多智能体交替讨论
并行同时执行并聚合结果
顺序管道执行
自定义用户定义模式

位置: examples/multi_agent_coordination/

顺序执行

一个智能体的输出成为下一个的输入。

use mofa_sdk::coordination::{SequentialCoordinator, Coordinator};

#[tokio::main]
async fn main() -> Result<()> {
    let coordinator = SequentialCoordinator::new()
        .add_agent(research_agent)
        .add_agent(writer_agent)
        .add_agent(editor_agent);

    let input = AgentInput::text("Write about Rust");
    let output = coordinator.execute(input, &ctx).await?;

    println!("Final output: {}", output.to_text());
    Ok(())
}

并行执行

多个智能体同时执行,结果聚合。

#![allow(unused)]
fn main() {
use mofa_sdk::coordination::{ParallelCoordinator, AggregationStrategy};

let coordinator = ParallelCoordinator::new()
    .add_agent(risk_analyzer)
    .add_agent(opportunity_analyzer)
    .add_agent(sentiment_analyzer)
    .with_aggregation(AggregationStrategy::Merge);

let output = coordinator.execute(input, &ctx).await?;
}

辩论模式

多智能体交替讨论以提高质量。

#![allow(unused)]
fn main() {
use mofa_sdk::coordination::{DebateCoordinator, DebateConfig};

let coordinator = DebateCoordinator::new()
    .add_agent(proponent)
    .add_agent(opponent)
    .with_config(DebateConfig {
        max_rounds: 3,
        consensus_threshold: 0.8,
    });

let result = coordinator.execute(input, &ctx).await?;
println!("Consensus: {}", result.consensus_reached);
}

共识模式

多轮协商和投票决策。

#![allow(unused)]
fn main() {
use mofa_sdk::coordination::{ConsensusCoordinator, VotingStrategy};

let coordinator = ConsensusCoordinator::new()
    .add_agents(vec![agent1, agent2, agent3])
    .with_voting(VotingStrategy::Majority)
    .with_max_rounds(5);

let decision = coordinator.execute(input, &ctx).await?;
}

自适应协作

根据任务动态选择协调模式。

位置: examples/adaptive_collaboration_agent/

#![allow(unused)]
fn main() {
use mofa_sdk::coordination::AdaptiveCoordinator;

let coordinator = AdaptiveCoordinator::new()
    .with_llm(router_llm)
    .add_capability("research", research_agent)
    .add_capability("writing", writer_agent)
    .add_capability("analysis", analyst_agent);

// LLM 自动选择最佳协调模式
let output = coordinator.execute(input, &ctx).await?;
}

运行示例

# 多智能体协调
cargo run -p multi_agent_coordination

# 自适应协作
cargo run -p adaptive_collaboration_agent

# 工作流编排
cargo run -p workflow_orchestration

可用示例

示例描述
multi_agent_coordination所有协调模式
adaptive_collaboration自适应路由
workflow_orchestration工作流构建器

相关链接