多智能体协调
多智能体协作模式示例。
协调模式概述
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 | 工作流构建器 |