基本概念
LangGraph 支持节点的并行执行 这种并行化可以通过扇出(fan-out)和扇入(fan-in)机制实现,利用标准边或条件边(conditionalEdges)来完成 。框架原生支持并行执行可以显著提升基于图的工作流的性能
LangGraph 的状态图执行模型中有一个“超级步”(superstep)的概念。当一个节点有多个出边(无论是普通边还是条件边返回了多个目标节点名)时,所有这些目标节点会在下一个“超级步”中被并行执行 。同一层级的节点会并行执行,但它们的执行顺序是不确定的 。这意味着,只要节点之间没有依赖关系(例如,一个节点的输出不能作为另一个并行节点的输入),它们就可以同时运行。
案例
from typing import TypedDict, Annotated, List
import operator
from langgraph.graph import StateGraph, END
import time
import asyncio # 用于模拟异步操作
# 定义状态。使用列表来收集并行节点的结果。
class AgentState(TypedDict):
query: str # 用户的原始查询
parallel_results: Annotated[List[str], operator.add] # 用于累积并行节点的输出
# 模拟两个并行执行的工具节点
async def tool_weather(state: AgentState):
"""模拟调用天气API"""
await asyncio.sleep(5) # 模拟网络延迟
result = f"Weather info for '{
state['query']}': Sunny, 25°C"
print(f"Executed tool_weather: {
result}"
LangGraph节点并行执行解析

最低0.47元/天 解锁文章
993

被折叠的 条评论
为什么被折叠?



