Skip to content

并行化模式(Parallelization)

通过同时执行独立任务,将总耗时从「各任务耗时之和」优化为「最慢任务的耗时」。

🎯 什么是并行化?

并行化是指同时执行多个组件——可以是LLM调用、工具使用,甚至整个子智能体,而不是一个接一个地执行。

三种模式的演进

章节模式核心能力解决问题
第一章提示链顺序执行怎么走?
第二章路由动态决策走哪条路?
第三章并行化同时执行走多快?

核心原理

找出工作流中互不依赖的环节,将它们并行执行。


⚡ 顺序 vs 并行:直观对比

顺序执行

搜索来源A → 总结来源A → 搜索来源B → 总结来源B → 生成答案
   2秒         3秒          2秒          3秒        2秒
                                                    
总耗时:2+3+2+3+2 = 12秒

并行执行

┌─ 搜索A (2秒) ─┐    ┌─ 总结A (3秒) ─┐
│               │    │               │
└───────┬───────┘    └───────┬───────┘
        │ 同时               │ 同时
┌───────┴───────┐    ┌───────┴───────┐
│               │    │               │
└─ 搜索B (2秒) ─┘    └─ 总结B (3秒) ─┘


                    生成答案 (2秒)

总耗时:2 + 3 + 2 = 7秒(节省42%)

⚠️ 顺序执行的瓶颈

问题说明
累加延迟总耗时 = 所有任务耗时之和
I/O等待调用API时CPU在空转
响应缓慢用户等待时间长
资源浪费没有充分利用并发能力

并行化的本质

在等待A的响应时,同时发起B、C、D的请求,而不是干等着。


📋 七大应用场景

1. 信息收集和研究

场景并行任务价值
研究公司新闻、股票、社媒、数据库快速获得全面信息

2. 数据处理和分析

场景并行任务价值
客户反馈分析情感分析、关键词、分类、紧急识别快速多角度分析

3. 多API/工具交互

场景并行任务价值
旅行规划航班、酒店、活动、餐厅快速完整计划

4. 多组件内容生成

场景并行任务价值
营销邮件主题、正文、图片、按钮高效生成完整邮件

5. 验证和核实

场景并行任务价值
用户输入验证邮箱、电话、地址、敏感词快速反馈有效性

6. 多模态处理

场景并行任务价值
社媒帖子分析文本情感+图像识别快速综合多模态信息

7. A/B测试或多方案生成

场景并行任务价值
创意文案同时生成3个标题版本快速比较选优

✅ 并行化的适用条件

可以并行的情况

✅ 任务之间没有依赖关系
✅ 任务的输入是已知的
✅ 任务可以独立完成

不能并行的情况

❌ 任务B需要任务A的输出
❌ 任务之间有顺序依赖
❌ 后续任务的输入取决于前序任务的结果

判断技巧

问自己:"如果把任务A和B交给两个人同时做,他们能独立完成吗?"

  • 能 → 可以并行
  • 一个人要等另一个人的结果 → 不能并行

🔬 实战案例:公司研究智能体

场景描述

用户请求:"帮我调研一下苹果公司最近的情况"

需要收集的信息:

  • 最新新闻
  • 股价走势
  • 社交媒体舆情
  • 财务数据

顺序执行(慢)

搜索新闻 → 获取股价 → 分析社媒 → 查财务 → 生成报告
  3秒        2秒        4秒       2秒       3秒
                                            
总耗时:3+2+4+2+3 = 14秒

并行执行(快)

┌─────────────────────────────────────────────────────────────────┐
│                    公司研究智能体                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [用户请求: 调研苹果公司]                                        │
│           │                                                     │
│           ▼                                                     │
│  ┌────────────────────────────────────────────────────┐         │
│  │              ⚡ 并行数据收集                        │         │
│  │                                                    │         │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │         │
│  │  │ 新闻搜索 │ │ 股价API  │ │ 社媒分析 │ │ 财务DB │ │         │
│  │  │   3秒    │ │   2秒    │ │   4秒    │ │  2秒   │ │         │
│  │  └────┬─────┘ └────┬─────┘ └────┬─────┘ └───┬────┘ │         │
│  │       │            │            │           │      │         │
│  │       └────────────┴─────┬──────┴───────────┘      │         │
│  │                          │                         │         │
│  └──────────────────────────┼─────────────────────────┘         │
│                             │                                   │
│                             ▼                                   │
│                    ┌────────────────┐                           │
│                    │   汇合等待     │ ← 等待最慢的任务(4秒)      │
│                    └───────┬────────┘                           │
│                            │                                    │
│                            ▼                                    │
│                    ┌────────────────┐                           │
│                    │  生成研究报告  │                           │
│                    │     3秒        │                           │
│                    └────────────────┘                           │
│                                                                 │
│  总耗时:4 + 3 = 7秒(节省50%)                                  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

关键设计要点

要点说明
独立性四个数据源互不依赖
汇合点等待所有并行任务完成
耗时瓶颈并行阶段耗时 = 最慢任务耗时
顺序步骤报告生成需要所有数据,必须顺序

🔄 三种模式如何组合?

组合架构

┌─────────────────────────────────────────────────────────────────┐
│                        智能体系统                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [用户请求]                                                     │
│      │                                                          │
│      ▼                                                          │
│  ┌──────────────┐                                               │
│  │   🔀 路由    │  ← 决定走哪条路                               │
│  └──────┬───────┘                                               │
│         │                                                       │
│    ┌────┴────┐                                                  │
│    ▼         ▼                                                  │
│                                                                 │
│  ┌───────────────┐    ┌───────────────┐                         │
│  │  提示链 A     │    │  提示链 B     │                         │
│  │               │    │               │                         │
│  │  步骤1        │    │  步骤1        │                         │
│  │    ↓          │    │    ↓          │                         │
│  │  ⚡ 并行步骤  │    │  步骤2        │                         │
│  │  ┌───┬───┐    │    │    ↓          │                         │
│  │  ▼   ▼   ▼    │    │  步骤3        │                         │
│  │  A   B   C    │    │               │                         │
│  │  └───┴───┘    │    │               │                         │
│  │    ↓          │    │               │                         │
│  │  汇合整合     │    │               │                         │
│  └───────────────┘    └───────────────┘                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

三种模式的协作

模式作用时机
路由选择执行路径入口和分支点
提示链定义执行步骤每条路径内部
并行化加速独立任务链内可并行的步骤

组合公式

高性能智能体 = 提示链(可靠性) + 路由(灵活性) + 并行化(效率)


⚠️ 并行化的代价

复杂性增加

挑战说明
设计复杂需要识别哪些任务可以并行
调试困难并发问题难以复现和定位
日志混乱多个任务的日志交织在一起
错误处理一个任务失败时,其他任务怎么办?
资源管理需要控制并发数量,避免过载

何时值得使用?

值得

  • 任务涉及大量外部I/O等待
  • 用户对响应速度敏感
  • 有多个独立数据源

不值得

  • 任务本身执行很快
  • 只有一两个独立任务
  • 增加的复杂性超过收益

📊 三种模式对比

维度提示链路由并行化
核心问题怎么走?走哪条路?走多快?
执行方式顺序条件分支并发
比喻流水线调度中心多车道高速
优化目标可靠性灵活性效率

📝 核心要点

要点说明
独立性识别只有不相互依赖的任务才能并行
效率提升大幅减少涉及I/O等待的任务耗时
复杂性代价会增加设计、调试和日志的复杂性
框架支持LangChain和Google ADK都有内置并行支持
汇合整合并行任务完成后需要汇合和整合结果

🔧 工具支持

框架并行化机制
LangChain LCELRunnableParallel 组件
LangGraph图结构中定义并行分支
Google ADKLLM驱动的多智能体委派

🔗 相关阅读

参考资源

基于 VitePress 构建