惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V2EX - 技术
V2EX - 技术
P
Privacy International News Feed
Security Latest
Security Latest
H
Hacker News: Front Page
T
Tenable Blog
The Hacker News
The Hacker News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Security @ Cisco Blogs
Project Zero
Project Zero
O
OpenAI News
AI
AI
Spread Privacy
Spread Privacy
C
CERT Recently Published Vulnerability Notes
The Last Watchdog
The Last Watchdog
G
GRAHAM CLULEY
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Scott Helme
Scott Helme
Application and Cybersecurity Blog
Application and Cybersecurity Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CXSECURITY Database RSS Feed - CXSecurity.com
NISL@THU
NISL@THU
A
Arctic Wolf
T
Threat Research - Cisco Blogs
PCI Perspectives
PCI Perspectives
N
News and Events Feed by Topic
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
Simon Willison's Weblog
Simon Willison's Weblog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Know Your Adversary
Know Your Adversary
Google Online Security Blog
Google Online Security Blog
罗磊的独立博客
L
LINUX DO - 最新话题
U
Unit 42
S
Security Affairs
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 【当耐特】
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
月光博客
月光博客
Engineering at Meta
Engineering at Meta
腾讯CDC
F
Full Disclosure
Cyberwarzone
Cyberwarzone
S
SegmentFault 最新的问题
Recorded Future
Recorded Future
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 司徒正美
The Cloudflare Blog

博客园 - 沐子馨

Agent Loop:从对话式 AI 到自主智能体的范式跃迁 解锁图数据建模的奥秘 基于 Neo4j 与 Milvus 的图RAG系统搭建指南 解决复杂推理难题:KG-RAG 在大模型中的应用 RAG 评估常用工具简介 RAG系统效果不好?一文看懂如何进行系统评估 写出让 AI “秒懂”的技能Skill 深入理解 RAG 中的格式化生成与函数调用 解锁 RAG 系统中的高级检索与重排序策略 掌握查询重构与智能路由的艺术 告别黑盒:手把手实现一个可解释、可调试的 Text2SQL 代理系统 告别简单向量搜索:RAG 中的高级查询构建与优化策略 深入理解 RAG 中的混合搜索策略 告别基础检索:掌握 RAG 中的句子窗口与递归路由策略 构建多模态检索系统:Milvus 部署、Schema 设计与混合检索实践 向量数据库原理与实战:从核心机制到 FAISS 应用 多模态向量嵌入:从文本到图像的语义统一与 RAG 应用 构建高效 RAG 的基石:深度解析 Embedding 模型原理与优化 All-in-RAG:解锁大模型“开卷考试”的终极能力 AI Agent 是如何思考的?一文读懂推理与决策引擎 终端革命:AI Agent 正在重新定义命令行 给企业装上“AI 大脑”:AgentSpace 如何从“手动检索”跨越到“智能决策”? Agentic 框架快速概览 AI 智能体交互如何带领它走出对话框,从屏幕像素迈向真实物理世界 高级提示词技巧如何带领大模型走出“一本正经胡说八道”的误区? 当 AI 学会“开疆拓土”:探索与发现模式如何从源头打破静态知识的桎梏,在陌生领域催生新洞见? 拒绝 AI “手忙脚乱”:优先级模式如何为智能体打造毫秒级的“任务调度官”? 构建生产级可信 Agent:评估与监控中的自动化审计与闭环优化机制 当 AI 学会“三思后言”:安全护栏如何从源头掐灭偏见、幻觉与恶意攻击? 拒绝“张口就来”:推理技术如何让 AI 像人类一样拆解复杂难题? 当家方知柴米贵:资源感知优化如何让 AI 智能体告别“算力浪费”? 开启多智能体互联时代:A2A 协议与 AI 协作网络的底层逻辑 为智能体装上“实时百科全书”:RAG 如何打破 AI 的知识边界? 构建负责任的AI:人类监督、干预与反馈闭环机制 当工具失效、网络中断:AI智能体的应急与自修复指南 赋予AI“北极星”:如何让智能体自主设定并追踪目标 打破“M×N”集成魔咒:MCP如何重塑AI应用架构 赋予模型“生命力”:大语言模型如何通过学习实现持续适应 赋予模型“长期记忆”:大语言模型的记忆管理机制 AI的“社会性”:深入理解多智能体协作机制 理解AI智能体的规划机制 理解大模型的工具使用 智能体的元认知:反思模式与自我优化机制 超越线性执行:使用LLM实现智能体路由模式 解构复杂任务:深入理解提示词链(Prompt Chaining) 别再被 AI 术语唬住了!一文理清你需要了解的所有概念 不止是多写几句:谷歌如何用69页白皮书重塑提示工程 [转]长PDF文档的总结与评估策略 Context 工程:如何把正确的上下文喂给 AI 前端如何写出优秀的 AI Agent Skills mac安装python后command not found: pip keep-alive 原理剖析 如何优雅地在 React 中使用TypeScript,看这一篇就够了! react useContext React Context 详细介绍(状态共享、数据传递) 以用户为中心的性能指标【译】 element下拉框远程搜索debounce防抖控制 vue-router打开新窗口 propmise: allSettled()与all()的区别 使用 new Date() 在chrome、安卓和 IOS 中表现不同
智能体并行化模式:提升复杂工作流性能的关键技术
沐子馨 · 2026-04-15 · via 博客园 - 沐子馨

并行化模式概述

在前面的章节中,我们探讨了用于顺序工作流的提示词链,以及用于动态决策和不同路径间转换的路由。虽然这些模式不可或缺,但许多复杂的智能体任务涉及多个可同时执行而非顺序执行的子任务。这正是并行化模式的用武之地。

并行化是指并发执行多个组件,包括LLM调用、工具使用乃至整个子智能体(见图1)。不同于顺序等待每个步骤完成后再开始下一步,并行执行允许独立任务同时运行,从而显著缩短可分解为独立部分的任务的总执行时间。

设想一个旨在研究某个主题并总结发现的智能体。顺序方法可能是这样的:

  1. 搜索来源 A
  2. 总结来源 A
  3. 搜索来源 B
  4. 总结来源 B
  5. 基于摘要 A 和 B 合成最终答案

而并行方法则可改为:

  1. 同时搜索来源 A 和来源 B
  2. 两个搜索完成后,同时总结来源 A 和来源 B
  3. 基于摘要 A 和 B 合成最终答案(此步骤通常为顺序执行,需等待并行步骤完成)

核心思想是识别工作流中不依赖其他部分输出的环节并将它们并行执行。这在处理具有延迟的外部服务(如API或数据库)时尤其有效,因为您可以同时发出多个请求。

实现并行化通常需要支持异步执行或多线程/多进程的框架。现代智能体框架在设计时已充分考虑异步操作,让您能够轻松定义可并行运行的步骤。

图 1. 带有子智能体的并行化示例

像LangChain、LangGraph和Google ADK这样的框架提供了并行执行机制。在LangChain表达式语言(LCEL)中,您可以通过运算符(如 用于顺序)组合可运行对象,并通过构建支持分支并发执行的链或图来实现并行执行。LangGraph凭借其图结构,允许定义可从单个状态转换执行的多个节点,从而在工作流中启用并行分支。Google ADK提供了强大的原生机制来促进和管理智能体的并行执行,显著提升了复杂多智能体系统的效率和可扩展性。ADK框架的这一固有能力让开发人员能够设计多个智能体并发而非顺序操作的解决方案。

并行化模式对于提升智能体系统的效率和响应能力至关重要,特别是在处理涉及多个独立查询、计算或与外部服务交互的任务时。它是优化复杂智能体工作流性能的关键技术。

实际应用与用例

并行化是优化智能体性能的强大模式,适用于多种应用场景:

  1. 信息收集与研究: 同时从多个来源收集信息是经典用例。
  • 用例: 公司调研智能体
    • 并行任务: 同时搜索新闻文章、获取股票数据、监控社交媒体提及和查询公司数据库
    • 优势: 相比顺序查询能更快获得全面视图
  1. 数据处理与分析: 对数据的不同部分进行并发处理,或同时应用不同的分析技术
  • 用例: 客户反馈分析智能体
    • 并行任务: 对一批反馈条目同时执行情感分析、关键词提取、反馈分类和紧急问题识别
    • 优势: 快速提供多维度分析结果
  1. 多 API 或工具交互: 调用多个独立的 API 或工具以获取不同类型信息或执行不同操作
  • 用例: 旅行规划智能体
    • 并行任务: 同时查询航班价格、酒店可用性、当地活动和餐厅推荐
    • 优势: 更快呈现完整的旅行方案
  1. 多组件内容生成: 并行生成复杂内容的不同组成部分
  • 用例: 营销邮件创建智能体
    • 并行任务: 同时生成邮件主题、起草正文内容、查找相关图片和创建行动号召按钮文本
    • 优势: 更高效地组装最终邮件
  1. 验证与核实: 并发执行多个独立检查或验证操作
  • 用例: 用户输入验证智能体
    • 并行任务: 同时验证邮箱格式、手机号码、地址信息数据库匹配和不当内容检测
    • 优势: 更快提供输入有效性反馈
  1. 多模态处理: 并发处理同一输入的不同模态(文本、图像、音频)
  • 用例: 包含文本和图像的社交媒体帖子分析智能体
    • 并行任务: 同时分析文本情感与关键词识别图像中的对象和场景描述
    • 优势: 更快速整合来自不同模态的洞察
  1. A/B 测试或多选项生成: 并行生成多个响应或输出变体以选择最佳方案
  • 用例: 创意文本生成智能体
    • 并行任务: 使用略有不同的提示或模型同时为文章生成三个不同标题
    • 优势: 便于快速比较并选择最佳选项

并行化是智能体设计中的基础优化技术,使开发人员能够通过利用独立任务的并发执行来构建更高性能和响应更快的应用程序。

实操代码示例(LangChain)

LangChain 框架中的并行执行由 LangChain 表达式语言(LCEL)实现。主要方法是在字典或列表结构中组织多个可运行组件。当该集合作为输入传递给链中的后续组件时,LCEL 运行时会并发执行其中包含的可运行对象。

在 LangGraph 中,这一原理应用于图的拓扑结构。并行工作流通过设计图结构来定义,使得多个无直接顺序依赖关系的节点可从单个公共节点启动。这些并行路径独立执行,其结果可在图中的后续汇聚点进行聚合。

以下实现展示了使用 LangChain 框架构建的并行处理工作流。该工作流设计用于响应单个用户查询并发执行多个独立操作。这些并行过程被实例化为不同的链或函数,各自的输出随后被聚合成统一结果。

此实现的先决条件包括安装必要的 Python 包,如 langchain、langchain-community 以及模型提供商库(如 langchain-openai)。此外,还需在本地环境中配置所选语言模型的有效 API 密钥以完成身份验证。

import os
import asyncio
from typing import Optional
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import Runnable, RunnableParallel, RunnablePassthrough

## --- 配置 ---
## 确保设置了您的 API 密钥环境变量(例如,OPENAI_API_KEY)
try:
    llm: Optional[ChatOpenAI] = ChatOpenAI(model="gpt-4o-mini", temperature=0.7)
except Exception as e:
    print(f"初始化语言模型时出错: {e}")
    llm = None

## --- 定义独立链 ---
## 这三个链代表可以并行执行的不同任务。
summarize_chain: Runnable = (
    ChatPromptTemplate.from_messages([
        ("system", "简洁地总结以下主题:"),
        ("user", "{topic}")
    ])
    | llm
    | StrOutputParser()
)

questions_chain: Runnable = (
    ChatPromptTemplate.from_messages([
        ("system", "生成关于以下主题的三个有趣问题:"),
        ("user", "{topic}")
    ])
    | llm
    | StrOutputParser()
)

terms_chain: Runnable = (
    ChatPromptTemplate.from_messages([
        ("system", "从以下主题中识别 5-10 个关键术语,用逗号分隔:"),
        ("user", "{topic}")
    ])
    | llm
    | StrOutputParser()
)

## --- 构建并行 + 综合链 ---
## 1. 定义要并行运行的任务块。这些任务的结果,
##    以及原始主题,将被馈送到下一步。
map_chain = RunnableParallel(
    {
        "summary": summarize_chain,
        "questions": questions_chain,
        "key_terms": terms_chain,
        "topic": RunnablePassthrough(),  # 传递原始主题
    }
)

## 2. 定义将组合并行结果的最终综合提示词。
synthesis_prompt = ChatPromptTemplate.from_messages([
    ("system", """基于以下信息:
    摘要:{summary}
    相关问题:{questions}
    关键术语:{key_terms}
    综合一个全面的答案。"""),
    ("user", "原始主题:{topic}")
])

## 3. 通过将并行结果直接管道化
##    到综合提示词,然后是 LLM 和输出解析器,构建完整链。
full_parallel_chain = map_chain | synthesis_prompt | llm | StrOutputParser()

## --- 运行链 ---
async def run_parallel_example(topic: str) -> None:
    """
    异步调用具有特定主题的并行处理链
    并打印综合结果。
    参数:
        topic: 要由 LangChain 链处理的输入主题。
    """
    if not llm:
        print("LLM 未初始化。无法运行示例。")
        return
    
    print(f"\n--- 运行主题的并行 LangChain 示例:'{topic}' ---")
    try:
        # `ainvoke` 的输入是单个 'topic' 字符串,
        # 然后传递给 `map_chain` 中的每个可运行对象。
        response = await full_parallel_chain.ainvoke(topic)
        print("\n--- 最终响应 ---")
        print(response)
    except Exception as e:
        print(f"\n链执行期间发生错误:{e}")

if __name__ == "__main__":
    test_topic = "太空探索的历史"
    # 在 Python 3.7+ 中,asyncio.run 是运行异步函数的标准方式。
    asyncio.run(run_parallel_example(test_topic))

上述 Python 代码实现了一个 LangChain 应用程序,旨在通过并行执行高效处理给定主题。请注意,asyncio 提供的是并发性而非真正的并行性。它通过事件循环在单线程上实现这一点,在任务空闲时(如等待网络请求)智能地在任务间切换。这创造了多个任务同时进行的效果,但代码实际上仍由单个线程执行,受 Python 全局解释器锁(GIL)限制。

代码首先从 langchain_openai 和 langchain_core 导入必要模块,包括语言模型、提示模板、输出解析器和可运行结构组件。代码尝试初始化 ChatOpenAI 实例,使用”gpt-4o-mini”模型并设置温度参数以控制创造性。语言模型初始化采用 try-except 块以确保健壮性。随后定义三个独立的 LangChain”链”,每个链设计用于对输入主题执行不同任务:第一个链负责简洁总结主题,第二个链生成与主题相关的三个有趣问题,第三个链从输入主题中识别 5-10 个关键术语并以逗号分隔。每个独立链都由针对特定任务定制的 ChatPromptTemplate、初始化的语言模型和用于字符串格式输出的 StrOutputParser 组成。

然后构建 RunnableParallel 块来捆绑这三个链以实现同时执行。此并行可运行对象还包含 RunnablePassthrough 以确保原始输入主题可用于后续步骤。为最终综合步骤定义了单独的 ChatPromptTemplate,接收摘要、问题、关键术语和原始主题作为输入以生成全面答案。完整的端到端处理链(full_parallel_chain)通过将 map_chain(并行块)连接到综合提示模板,再接入语言模型和输出解析器来创建。提供的异步函数 run_parallel_example 演示了如何调用此完整并行链,该函数接收主题作为输入并使用 invoke 运行异步链。最后,标准 Python if name == “main”: 块展示了如何使用示例主题”太空探索的历史”执行 run_parallel_example,通过 asyncio.run 管理异步执行。

本质上,此代码建立了一个工作流,对给定主题同时执行多个 LLM 调用(用于总结、生成问题和提取术语),最终通过另一个 LLM 调用整合结果。这展示了在智能体工作流中使用 LangChain 实现并行化的核心思想。

实操代码示例(Google ADK)

现在让我们关注 Google ADK 框架中说明这些概念的具体示例。我们将探讨如何应用 ADK 原语(如 ParallelAgent 和 SequentialAgent)来构建利用并发执行提升效率的智能体流程。

from google.adk.agents import LlmAgent, ParallelAgent, SequentialAgent
from google.adk.tools import google_search

GEMINI_MODEL = "gemini-2.0-flash"

## --- 1. 定义研究员子智能体(并行运行)---
## 研究员 1:可再生能源
researcher_agent_1 = LlmAgent(
    name="RenewableEnergyResearcher",
    model=GEMINI_MODEL,
    instruction="""你是一名专门研究能源的 AI 研究助理。研究"可再生能源"的最新进展。使用提供的 Google 搜索工具。简洁地总结你的主要发现(1-2 句话)。*只*输出摘要。""",
    description="研究可再生能源。",
    tools=[google_search],
    # 将结果存储在状态中供合并智能体使用
    output_key="renewable_energy_result"
)

## 研究员 2:电动汽车
researcher_agent_2 = LlmAgent(
    name="EVResearcher",
    model=GEMINI_MODEL,
    instruction="""你是一名专门研究交通的 AI 研究助理。研究"电动汽车技术"的最新发展。使用提供的 Google 搜索工具。简洁地总结你的主要发现(1-2 句话)。*只*输出摘要。""",
    description="研究电动汽车技术。",
    tools=[google_search],
    # 将结果存储在状态中供合并智能体使用
    output_key="ev_technology_result"
)

## 研究员 3:碳捕获
researcher_agent_3 = LlmAgent(
    name="CarbonCaptureResearcher",
    model=GEMINI_MODEL,
    instruction="""你是一名专门研究气候解决方案的 AI 研究助理。研究"碳捕获方法"的当前状态。使用提供的 Google 搜索工具。简洁地总结你的主要发现(1-2 句话)。*只*输出摘要。""",
    description="研究碳捕获方法。",
    tools=[google_search],
    # 将结果存储在状态中供合并智能体使用
    output_key="carbon_capture_result"
)

## --- 2. 创建 ParallelAgent(并发运行研究员)---
## 此智能体协调研究员的并发执行。
## 一旦所有研究员完成并将结果存储在状态中,它就完成。
parallel_research_agent = ParallelAgent(
    name="ParallelWebResearchAgent",
    sub_agents=[researcher_agent_1, researcher_agent_2, researcher_agent_3],
    description="并行运行多个研究智能体以收集信息。"
)

## --- 3. 定义合并智能体(在并行智能体*之后*运行)---
## 此智能体获取并行智能体存储在会话状态中的结果
## 并将它们综合成一个带有归属的单一结构化响应。
merger_agent = LlmAgent(
    name="SynthesisAgent",
    model=GEMINI_MODEL,  # 或者如果需要,可以使用更强大的模型进行综合
    instruction="""你是一名负责将研究发现组合成结构化报告的 AI 助理。你的主要任务是综合以下研究摘要,清楚地将发现归属于其来源领域。使用每个主题的标题构建你的响应。确保报告连贯并平滑地整合关键点。
**关键:你的整个响应必须*完全*基于下面"输入摘要"中提供的信息。不要添加这些特定摘要中不存在的任何外部知识、事实或细节。**

**输入摘要:**
*   **可再生能源:**
    {renewable_energy_result}
*   **电动汽车:**
    {ev_technology_result}
*   **碳捕获:**
    {carbon_capture_result}

**输出格式:**
## 近期可持续技术进展摘要

### 可再生能源发现
(基于 RenewableEnergyResearcher 的发现)
[*仅*综合并详细说明上面提供的可再生能源输入摘要。]

### 电动汽车发现
(基于 EVResearcher 的发现)
[*仅*综合并详细说明上面提供的电动汽车输入摘要。]

### 碳捕获发现
(基于 CarbonCaptureResearcher 的发现)
[*仅*综合并详细说明上面提供的碳捕获输入摘要。]

### 总体结论
[提供一个简短的(1-2 句话)结论性陈述,*仅*连接上面提供的发现。]

*仅*输出遵循此格式的结构化报告。不要在此结构之外包含介绍性或结论性短语,并严格遵守仅使用提供的输入摘要内容。""",
    description="将并行智能体的研究发现组合成结构化的、引用的报告,严格基于提供的输入。",
    # 合并不需要工具
    # 这里不需要 output_key,因为其直接响应是序列的最终输出
)

## --- 4. 创建 SequentialAgent(协调整体流程)---
## 这是将运行的主智能体。它首先执行 ParallelAgent
## 以填充状态,然后执行 MergerAgent 以产生最终输出。
sequential_pipeline_agent = SequentialAgent(
    name="ResearchAndSynthesisPipeline",
    # 首先运行并行研究,然后合并
    sub_agents=[parallel_research_agent, merger_agent],
    description="协调并行研究并综合结果。"
)

root_agent = sequential_pipeline_agent

此代码定义了一个用于研究和综合可持续技术进展信息的多智能体系统。系统设置了三个 LlmAgent 实例作为专门的研究员:ResearcherAgent_1 专注于可再生能源,ResearcherAgent_2 研究电动汽车技术,ResearcherAgent_3 调查碳捕获方法。每个研究员智能体配置使用 GEMINI_MODEL 和 google_search 工具,被指示用 1-2 句话简洁总结发现,并通过 output_key 将摘要存储在会话状态中。

随后创建名为 ParallelWebResearchAgent 的 ParallelAgent 来并发运行这三个研究员智能体,实现并行研究以节省时间。当所有子智能体(研究员)完成并填充状态后,ParallelAgent 结束执行。

接下来定义 MergerAgent(同样是 LlmAgent)来综合研究结果。该智能体以并行研究员存储在会话状态中的摘要作为输入,其指令强调输出必须严格基于提供的输入摘要,禁止添加外部知识。MergerAgent 旨在将组合的发现结构化为带有各主题标题和简短总体结论的报告。

最后创建名为 ResearchAndSynthesisPipeline 的 SequentialAgent 来协调整个工作流。作为主控制器,该主智能体首先执行 ParallelAgent 进行研究,待其完成后执行 MergerAgent 综合收集的信息。sequential_pipeline_agent 被设置为 root_agent,作为运行此多智能体系统的入口点。整个过程旨在高效地从多个来源并行收集信息,并将其整合为单一结构化报告。

速览

问题背景: 许多智能体工作流包含多个必须完成才能达成最终目标的子任务。纯顺序执行(每个任务等待前一个完成)通常低效且缓慢。当任务依赖外部 I/O 操作(如调用不同 API 或查询多个数据库)时,这种延迟成为主要瓶颈。若无并发执行机制,总处理时间等于所有单个任务持续时间之和,严重制约系统整体性能和响应能力。

解决方案: 并行化模式通过启用独立任务的同时执行提供标准化解决方案。该模式通过识别工作流中不依赖彼此即时输出的组件(如工具使用或 LLM 调用)来实现。像 LangChain 和 Google ADK 这样的智能体框架提供内置构造来定义和管理这些并发操作。例如,主进程可调用多个并行运行的子任务,等待所有子任务完成后再继续下一步。通过同时而非顺序执行这些独立任务,该模式显著减少总执行时间。

实践建议: 当工作流包含多个可同时运行的独立操作时使用此模式,例如从多个 API 获取数据、处理不同数据块或生成多个内容片段供后续综合。

可视化摘要

图 2:并行化设计模式

关键要点

以下是本章的核心要点:

  • 并行化是一种通过并发执行独立任务来提高效率的模式
  • 在涉及等待外部资源(如 API 调用)的任务中特别有效
  • 采用并发或并行架构会引入显著复杂性和成本,影响设计、调试和系统日志等关键开发环节
  • 像 LangChain 和 Google ADK 这样的框架提供定义和管理并行执行的内置支持
  • 在 LangChain 表达式语言(LCEL)中,RunnableParallel 是并行运行多个可运行对象的关键构造
  • Google ADK 可通过 LLM 驱动的委托实现并行执行,协调器智能体的 LLM 识别独立子任务并触发专门子智能体的并发处理
  • 并行化有助于减少整体延迟,使智能体系统在处理复杂任务时更具响应性

结论

并行化模式是通过并发执行独立子任务来优化计算工作流的方法。该模式有效减少整体延迟,在涉及多个模型推理或对外部服务调用的复杂操作中尤为显著。

不同框架为此模式提供了不同的实现机制。在 LangChain 中,通过 RunnableParallel 等构造显式定义并同时执行多个处理链。而 Google 智能体开发工具包 (ADK) 等框架则通过多智能体委托实现并行化,由主协调器模型将不同子任务分配给可并发操作的专门智能体。

通过将并行处理与顺序(链式)和条件(路由)控制流相结合,可以构建能够高效管理各类复杂任务的复杂、高性能计算系统。

参考文献

以下是有关并行化模式和相关概念的一些进一步阅读资源:

  1. LangChain Expression Language (LCEL) Documentation (Parallelism): https://python.langchain.com/docs/concepts/lcel/
  2. Google 智能体开发工具包 (ADK) 文档 (多智能体系统): https://google.github.io/adk-docs/agents/multi-agents/
  3. Python asyncio Documentation: https://docs.python.org/3/library/asyncio.html