【Agent 設(shè)計(jì)模式】并行化模式(Parallelization)
并行化模式Parallelization復(fù)雜智能體任務(wù)通常包含多個(gè)可以同時(shí)執(zhí)行的子任務(wù)而不是一個(gè)接一個(gè)地串行處理。此時(shí)就需要并行化設(shè)計(jì)模式。并行化是指同時(shí)執(zhí)行多個(gè)組件比如 LLM 調(diào)用、工具使用甚至整個(gè)子智能體。與等待上一步完成再開始下一步不同并行執(zhí)行允許獨(dú)立任務(wù)同時(shí)運(yùn)行大幅縮短可拆分任務(wù)的整體執(zhí)行時(shí)間。核心思想識(shí)別無(wú)依賴的子任務(wù)同時(shí)執(zhí)行最后匯總結(jié)果串行 vs 并行對(duì)比以研究某主題并總結(jié)結(jié)果為例串行流程搜索來(lái)源 A總結(jié)來(lái)源 A搜索來(lái)源 B總結(jié)來(lái)源 B綜合 A 和 B 的摘要生成最終答案并行流程同時(shí)搜索來(lái)源 A 和 B兩個(gè)搜索完成后同時(shí)總結(jié)來(lái)源 A 和 B綜合 A 和 B 的摘要生成最終答案仍然串行因?yàn)樾璧却皟刹酵瓿纱蠥? → A? → B? → B? → 匯總 總耗時(shí) 所有步驟之和 并行A? ──→ A? ──┐ B? ──→ B? ──┴→ 匯總 總耗時(shí) ≈ 最慢分支 匯總并行化的核心思想是識(shí)別流程中彼此無(wú)依賴的部分并將它們并行執(zhí)行。尤其是涉及外部服務(wù)調(diào)用如搜索、數(shù)據(jù)庫(kù)查詢、API 請(qǐng)求有延遲時(shí)可以同時(shí)發(fā)起多個(gè)請(qǐng)求顯著提升效率。實(shí)踐應(yīng)用與場(chǎng)景并行化是優(yōu)化智能體性能的強(qiáng)大模式適用于多種場(chǎng)景1. 信息收集與調(diào)研同時(shí)從多個(gè)來(lái)源收集信息是典型用例。應(yīng)用場(chǎng)景智能體調(diào)研某公司并行任務(wù)同時(shí)搜索新聞、拉取股票數(shù)據(jù)、檢查社交媒體、查詢公司數(shù)據(jù)庫(kù)優(yōu)勢(shì)比串行查找更快獲得全面視角2. 數(shù)據(jù)處理與分析并行應(yīng)用不同分析方法或處理不同數(shù)據(jù)片段。應(yīng)用場(chǎng)景智能體分析客戶反饋并行任務(wù)同時(shí)進(jìn)行情感分析、關(guān)鍵詞提取、分類、緊急問題識(shí)別優(yōu)勢(shì)快速獲得多維度分析結(jié)果3. 多 API 或工具交互并行調(diào)用多個(gè)獨(dú)立 API 或工具獲取不同信息或執(zhí)行不同操作。應(yīng)用場(chǎng)景旅行規(guī)劃智能體并行任務(wù)同時(shí)查機(jī)票、酒店、當(dāng)?shù)鼗顒?dòng)、餐廳推薦優(yōu)勢(shì)更快生成完整旅行方案4. 多組件內(nèi)容生成并行生成復(fù)雜內(nèi)容的不同部分。應(yīng)用場(chǎng)景智能體創(chuàng)建營(yíng)銷郵件并行任務(wù)同時(shí)生成主題、正文、圖片、CTA 按鈕文案優(yōu)勢(shì)更高效地組裝最終郵件5. 驗(yàn)證與校驗(yàn)并行執(zhí)行多個(gè)獨(dú)立校驗(yàn)任務(wù)。應(yīng)用場(chǎng)景智能體驗(yàn)證用戶輸入并行任務(wù)同時(shí)檢查郵箱格式、手機(jī)號(hào)、地址數(shù)據(jù)庫(kù)校驗(yàn)、敏感詞檢測(cè)優(yōu)勢(shì)更快反饋輸入有效性6. 多模態(tài)處理并行處理同一輸入的不同模態(tài)文本、圖片、音頻。應(yīng)用場(chǎng)景智能體分析帶圖片的社交媒體帖子并行任務(wù)同時(shí)分析文本情感與關(guān)鍵詞、圖片中的物體與場(chǎng)景優(yōu)勢(shì)更快整合多模態(tài)洞察7. A/B 測(cè)試或多方案生成并行生成多個(gè)響應(yīng)或輸出便于選擇最佳方案。應(yīng)用場(chǎng)景智能體生成多種創(chuàng)意文案并行任務(wù)同時(shí)用不同 prompt 或模型生成三種標(biāo)題優(yōu)勢(shì)快速對(duì)比并選出最佳選項(xiàng)并行化是智能體設(shè)計(jì)中的基礎(chǔ)優(yōu)化技術(shù)開發(fā)者可通過并發(fā)執(zhí)行獨(dú)立任務(wù)構(gòu)建更高性能、更具響應(yīng)性的應(yīng)用。關(guān)鍵要點(diǎn)主要結(jié)論如下并行化是一種通過并發(fā)執(zhí)行獨(dú)立任務(wù)提升效率的設(shè)計(jì)模式尤其適用于涉及外部資源如 API 調(diào)用等待的場(chǎng)景并發(fā)/并行架構(gòu)會(huì)增加設(shè)計(jì)、調(diào)試和日志等開發(fā)復(fù)雜度與成本LangChain、Google ADK 等框架均支持并行執(zhí)行定義與管理LCEL 中 RunnableParallel 是并行運(yùn)行多個(gè) runnable 的關(guān)鍵構(gòu)造Google ADK 可通過 LLM 驅(qū)動(dòng)的委托實(shí)現(xiàn)協(xié)調(diào)智能體并行處理子任務(wù)并行化可顯著降低整體延遲讓智能體系統(tǒng)在復(fù)雜任務(wù)下更具響應(yīng)性代碼示例示例 1LangChain 實(shí)現(xiàn)importasynciofromtypingimportOptionalfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimportChatPromptTemplatefromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.runnablesimportRunnable,RunnableParallel,RunnablePassthrough load_dotenv()# --- 配置 ---# 確保環(huán)境變量已設(shè)置 API key如 OPENAI_API_KEYtry:llm:Optional[ChatOpenAI]ChatOpenAI(modelgpt-4o-mini,temperature0.7)exceptExceptionase:print(f初始化語(yǔ)言模型出錯(cuò){e})llmNone# --- 定義獨(dú)立鏈 ---# 三個(gè)鏈分別執(zhí)行不同任務(wù)可并行運(yùn)行summarize_chain:Runnable(ChatPromptTemplate.from_messages([(system,請(qǐng)簡(jiǎn)明扼要地總結(jié)以下主題),(user,{topic})])|llm|StrOutputParser())questions_chain:Runnable(ChatPromptTemplate.from_messages([(system,請(qǐng)針對(duì)以下主題生成三個(gè)有趣的問題),(user,{topic})])|llm|StrOutputParser())terms_chain:Runnable(ChatPromptTemplate.from_messages([(system,請(qǐng)從以下主題中提取 5-10 個(gè)關(guān)鍵詞用逗號(hào)分隔),(user,{topic})])|llm|StrOutputParser())# --- 構(gòu)建并行 匯總鏈 ---# 1. 定義并行任務(wù)塊結(jié)果與原始 topic 一起傳遞到下一步map_chainRunnableParallel({summary:summarize_chain,questions:questions_chain,key_terms:terms_chain,topic:RunnablePassthrough(),# 傳遞原始 topic})# 2. 定義最終匯總 prompt整合并行結(jié)果synthesis_promptChatPromptTemplate.from_messages([(system,根據(jù)以下信息 摘要{summary} 相關(guān)問題{questions} 關(guān)鍵詞{key_terms} 請(qǐng)綜合生成完整答案。),(user,原始主題{topic})])# 3. 構(gòu)建完整鏈將并行結(jié)果直接傳遞給匯總 prompt再由 LLM 和輸出解析器處理full_parallel_chainmap_chain|synthesis_prompt|llm|StrOutputParser()# --- 運(yùn)行鏈 ---asyncdefrun_parallel_example(topic:str)-None: 異步調(diào)用并行處理鏈輸出綜合結(jié)果。 Args: topic: 傳遞給 LangChain 的主題輸入 ifnotllm:print(LLM 未初始化無(wú)法運(yùn)行示例。)returnprint(f\n--- 并行 LangChain 示例主題{topic} ---)try:# ainvoke 的輸入是單個(gè) topic 字符串# 會(huì)傳遞給 map_chain 中的每個(gè) runnableresponseawaitfull_parallel_chain.ainvoke(topic)print(\n--- 最終響應(yīng) ---)print(response)exceptExceptionase:print(f\n鏈執(zhí)行出錯(cuò){e})if__name____main__:test_topic太空探索的歷史# Python 3.7 推薦用 asyncio.run 執(zhí)行異步函數(shù)asyncio.run(run_parallel_example(test_topic))在 LangChain 框架中并行執(zhí)行由 LangChain Expression LanguageLCEL實(shí)現(xiàn)。主要方法是將多個(gè) Runnable 組件結(jié)構(gòu)化為字典或列表當(dāng)這些集合被傳遞給鏈中的下一個(gè)組件時(shí)LCEL 運(yùn)行時(shí)會(huì)并發(fā)執(zhí)行其中的 Runnable。在 LangGraph 中這一原理體現(xiàn)在圖的拓?fù)浣Y(jié)構(gòu)——通過設(shè)計(jì)圖結(jié)構(gòu)使多個(gè)無(wú)直接依賴的節(jié)點(diǎn)可由同一節(jié)點(diǎn)并發(fā)啟動(dòng)這些并行路徑獨(dú)立執(zhí)行結(jié)果在后續(xù)匯聚節(jié)點(diǎn)整合。示例流程針對(duì)單一主題并發(fā)執(zhí)行三個(gè)獨(dú)立任務(wù)最后匯總┌→ [摘要鏈] ────┐ 主題 → RunnableParallel ├→ [問題鏈] ────┼→ [匯總 Prompt] → LLM → 最終結(jié)果 └→ [關(guān)鍵詞鏈] ──┘三條獨(dú)立鏈分別負(fù)責(zé)主題摘要、問題生成、關(guān)鍵詞提取每條鏈由ChatPromptTemplate | LLM | StrOutputParser組成RunnableParallel將三條鏈打包并發(fā)執(zhí)行同時(shí)用RunnablePassthrough保留原始輸入?yún)R總鏈整合summary、questions、key_terms和topic由 LLM 生成綜合答案注意asyncio提供的是并發(fā)而非真正的并行——它通過事件循環(huán)在任務(wù)空閑如等待網(wǎng)絡(luò)請(qǐng)求時(shí)智能切換實(shí)現(xiàn)多個(gè)任務(wù)同時(shí)推進(jìn)但實(shí)際仍在單線程下受 GIL 限制。示例 2Google ADK 實(shí)現(xiàn)fromgoogle.adk.agentsimportLlmAgent,ParallelAgent,SequentialAgentfromgoogle.adk.toolsimportgoogle_search GEMINI_MODELgemini-2.0-flash# --- 1. 定義并行運(yùn)行的調(diào)研子智能體 ---# 調(diào)研員 1可再生能源researcher_agent_1LlmAgent(nameRenewableEnergyResearcher,modelGEMINI_MODEL,instruction你是一名專注于能源領(lǐng)域的 AI 調(diào)研助手。 調(diào)研可再生能源最新進(jìn)展使用 Google Search 工具。 請(qǐng)簡(jiǎn)明總結(jié)關(guān)鍵發(fā)現(xiàn)1-2 句只輸出摘要。 ,description調(diào)研可再生能源。,tools[google_search],output_keyrenewable_energy_result)# 調(diào)研員 2電動(dòng)汽車researcher_agent_2LlmAgent(nameEVResearcher,modelGEMINI_MODEL,instruction你是一名專注于交通領(lǐng)域的 AI 調(diào)研助手。 調(diào)研電動(dòng)汽車技術(shù)最新進(jìn)展使用 Google Search 工具。 請(qǐng)簡(jiǎn)明總結(jié)關(guān)鍵發(fā)現(xiàn)1-2 句只輸出摘要。 ,description調(diào)研電動(dòng)汽車技術(shù)。,tools[google_search],output_keyev_technology_result)# 調(diào)研員 3碳捕集researcher_agent_3LlmAgent(nameCarbonCaptureResearcher,modelGEMINI_MODEL,instruction你是一名專注于氣候解決方案的 AI 調(diào)研助手。 調(diào)研碳捕集方法現(xiàn)狀使用 Google Search 工具。 請(qǐng)簡(jiǎn)明總結(jié)關(guān)鍵發(fā)現(xiàn)1-2 句只輸出摘要。 ,description調(diào)研碳捕集方法。,tools[google_search],output_keycarbon_capture_result)# --- 2. 創(chuàng)建并行智能體并發(fā)運(yùn)行調(diào)研員---parallel_research_agentParallelAgent(nameParallelWebResearchAgent,sub_agents[researcher_agent_1,researcher_agent_2,researcher_agent_3],description并行運(yùn)行多個(gè)調(diào)研智能體收集信息。)# --- 3. 定義合并智能體并行智能體完成后運(yùn)行---merger_agentLlmAgent(nameSynthesisAgent,modelGEMINI_MODEL,instruction你是一名負(fù)責(zé)整合調(diào)研結(jié)果的 AI 助手。 你的任務(wù)是將以下調(diào)研摘要合成為結(jié)構(gòu)化報(bào)告并明確歸屬。每個(gè)主題用標(biāo)題分段確保內(nèi)容連貫僅整合輸入摘要。 **注意你的全部回答必須嚴(yán)格基于下方輸入摘要不得添加任何外部知識(shí)或細(xì)節(jié)。** **輸入摘要** * **可再生能源** {renewable_energy_result} * **電動(dòng)汽車** {ev_technology_result} * **碳捕集** {carbon_capture_result} **輸出格式** ## 可持續(xù)技術(shù)最新進(jìn)展摘要 ### 可再生能源發(fā)現(xiàn) 基于 RenewableEnergyResearcher 的摘要僅整合上述內(nèi)容 ### 電動(dòng)汽車發(fā)現(xiàn) 基于 EVResearcher 的摘要僅整合上述內(nèi)容 ### 碳捕集發(fā)現(xiàn) 基于 CarbonCaptureResearcher 的摘要僅整合上述內(nèi)容 ### 總結(jié) 僅基于上述內(nèi)容簡(jiǎn)要總結(jié) 1-2 句 只輸出結(jié)構(gòu)化報(bào)告嚴(yán)格按上述格式不加其他說(shuō)明。 ,description整合并行智能體的調(diào)研結(jié)果生成結(jié)構(gòu)化報(bào)告僅基于輸入內(nèi)容。,)# --- 4. 創(chuàng)建串行智能體總流程控制---sequential_pipeline_agentSequentialAgent(nameResearchAndSynthesisPipeline,sub_agents[parallel_research_agent,merger_agent],description協(xié)調(diào)并行調(diào)研與結(jié)果整合。)root_agentsequential_pipeline_agentGoogle ADK 框架提供了ParallelAgent、SequentialAgent等原語(yǔ)用于構(gòu)建高效并發(fā)智能體流程。示例流程三個(gè)調(diào)研智能體并行調(diào)研完成后由合并智能體生成報(bào)告┌→ [可再生能源調(diào)研員] ──┐ SequentialAgent → ParallelAgent ├→ [電動(dòng)汽車調(diào)研員] ────┼→ [合并智能體] → 結(jié)構(gòu)化報(bào)告 └→ [碳捕集調(diào)研員] ────┘三個(gè)LlmAgent調(diào)研員分別聚焦可再生能源、電動(dòng)汽車、碳捕集各自使用google_search工具摘要結(jié)果通過output_key存入 session stateParallelAgent并行運(yùn)行三位調(diào)研員調(diào)研任務(wù)同步進(jìn)行LlmAgent合并整合調(diào)研結(jié)果要求輸出僅基于輸入摘要結(jié)構(gòu)化分段不添加外部知識(shí)SequentialAgent串行執(zhí)行并行調(diào)研 → 結(jié)果整合作為主流程入口兩種實(shí)現(xiàn)的核心區(qū)別對(duì)比LangChainGoogle ADK并行原語(yǔ)RunnableParallel字典/列表結(jié)構(gòu)ParallelAgent智能體容器串行控制LCEL 管道|SequentialAgent結(jié)果傳遞字典鍵值自動(dòng)傳遞output_key寫入 session state適用場(chǎng)景鏈?zhǔn)浇M合靈活輕量多智能體協(xié)作結(jié)構(gòu)化流程

相關(guān)新聞

Log4j2漏洞治理一年后:遺留實(shí)例檢測(cè)與替代方案實(shí)戰(zhàn)指南

Log4j2漏洞治理一年后:遺留實(shí)例檢測(cè)與替代方案實(shí)戰(zhàn)指南

1. 項(xiàng)目概述:從應(yīng)急響應(yīng)到常態(tài)化治理一年前,當(dāng)CVE-2023-44228這個(gè)編號(hào)被公布時(shí),相信很多運(yùn)維和安全團(tuán)隊(duì)的神經(jīng)又一次被繃緊了。這又是一個(gè)與Apache Log4j2相關(guān)的漏洞,雖然其嚴(yán)重性遠(yuǎn)不及當(dāng)年震動(dòng)全球的Log4Shell(CVE-2…

2026/7/29 18:28:11 閱讀更多
2026靠譜IP數(shù)字人平臺(tái)推薦:用8項(xiàng)驗(yàn)收和狀態(tài)表判斷

2026靠譜IP數(shù)字人平臺(tái)推薦:用8項(xiàng)驗(yàn)收和狀態(tài)表判斷

2026靠譜IP數(shù)字人平臺(tái)推薦:用8項(xiàng)驗(yàn)收和狀態(tài)表判斷 搜索“靠譜的IP數(shù)字人平臺(tái)推薦”,很容易得到一長(zhǎng)串品牌名稱。但對(duì)準(zhǔn)備長(zhǎng)期經(jīng)營(yíng)老板IP、講師IP或企業(yè)欄目的人來(lái)說(shuō),一條演示片自然,不等于整套系統(tǒng)能夠持續(xù)交付。 真正的可靠性至少…

2026/7/29 18:28:11 閱讀更多
Pixelle-Video:一句話生成專業(yè)短視頻的終極指南

Pixelle-Video:一句話生成專業(yè)短視頻的終極指南

Pixelle-Video:一句話生成專業(yè)短視頻的終極指南 【免費(fèi)下載鏈接】Pixelle-Video 🚀 AI 全自動(dòng)短視頻引擎 | AI Fully Automated Short Video Engine 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 你是否曾經(jīng)想過制作一個(gè)精彩…

2026/7/29 19:28:14 閱讀更多
研究背景相關(guān)內(nèi)容梳理與核心要素解析

研究背景相關(guān)內(nèi)容梳理與核心要素解析

搞科研的大家!找英文文獻(xiàn)依然是科研路上最頭疼的一道坎兒吧? 尤其是現(xiàn)在AI工具層出不窮,老工具也在不斷升級(jí),選對(duì)平臺(tái)能省下大把時(shí)間。今天我給大家盤點(diǎn)8個(gè)好用的英文文獻(xiàn)檢索網(wǎng)站,涵蓋傳統(tǒng)權(quán)威平臺(tái) 新一代AI智能工具…

2026/7/29 19:28:14 閱讀更多
濰坊正規(guī)鳶都充電程序售賣租用

濰坊正規(guī)鳶都充電程序售賣租用

隨著新能源汽車的日益普及,充電樁及相關(guān)充電管理系統(tǒng)的需求也愈發(fā)迫切。在濰坊,濰坊駿馳天下能源發(fā)展有限公司自主研發(fā)的鳶都充電程序,正為各類充電場(chǎng)站運(yùn)營(yíng)帶來(lái)智能化、無(wú)人化管理新方案,目前該程序支持售賣和租用,下…

2026/7/29 19:28:14 閱讀更多
【提示詞工程黃金法則】:分步驟執(zhí)行的5大致命誤區(qū)與90%專家都在用的3層優(yōu)化框架

【提示詞工程黃金法則】:分步驟執(zhí)行的5大致命誤區(qū)與90%專家都在用的3層優(yōu)化框架

更多請(qǐng)點(diǎn)擊: https://kaifayun.com 第一章:【提示詞工程黃金法則】:分步驟執(zhí)行的5大致命誤區(qū)與90%專家都在用的3層優(yōu)化框架 提示詞工程不是“多加形容詞”或“堆砌關(guān)鍵詞”的藝術(shù),而是結(jié)構(gòu)化認(rèn)知建模的過程。大量實(shí)踐表明&#x…

2026/7/29 19:18:14 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過程中,發(fā)現(xiàn)一個(gè)問題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過來(lái)的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂應(yīng)用,模擬了真實(shí)擲骰子的過程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫效果?!?/p>

2026/7/29 0:15:24 閱讀更多