parallelExample 并行执行示例
(ctx context.Context)
| 76 | |
| 77 | // parallelExample 并行执行示例 |
| 78 | func parallelExample(ctx context.Context) { |
| 79 | // 创建多个算法 Agent |
| 80 | agents := []workflow.Agent{ |
| 81 | NewMockAgent("AlgorithmA", "方案A:快速但粗糙"), |
| 82 | NewMockAgent("AlgorithmB", "方案B:慢但精确"), |
| 83 | NewMockAgent("AlgorithmC", "方案C:平衡"), |
| 84 | } |
| 85 | |
| 86 | // 创建 ParallelAgent |
| 87 | parallel, err := workflow.NewParallelAgent(workflow.ParallelConfig{ |
| 88 | Name: "MultiAlgorithm", |
| 89 | SubAgents: agents, |
| 90 | }) |
| 91 | if err != nil { |
| 92 | log.Fatal(err) |
| 93 | } |
| 94 | |
| 95 | // 执行 |
| 96 | fmt.Println("开始并行执行:") |
| 97 | resultCount := 0 |
| 98 | reader := parallel.Execute(ctx, "求解问题") |
| 99 | for { |
| 100 | event, err := reader.Recv() |
| 101 | if err != nil { |
| 102 | if errors.Is(err, io.EOF) { |
| 103 | break |
| 104 | } |
| 105 | log.Printf("错误: %v", err) |
| 106 | continue |
| 107 | } |
| 108 | resultCount++ |
| 109 | printEvent(event) |
| 110 | } |
| 111 | fmt.Printf("收到 %d 个并行结果\n", resultCount) |
| 112 | } |
| 113 | |
| 114 | // loopExample 循环优化示例 |
| 115 | func loopExample(ctx context.Context) { |
no test coverage detected