{
"cells": [
{
"cell_type": "markdown",
"id": "710dc4f0-1c88-4386-9e9d-fec3de6bb774",
"metadata": {},
"source": [
"# Branching\n",
"\n",
"LangGraph natively supports fan-out and fan-in using either regular edges or [conditional_edges](https://langchain-ai.github.io/langgraph/reference/graphs/#langgraph.graph.MessageGraph.add_conditional_edges).\n",
"\n",
"This lets you run nodes in parallel to speed up your total graph execution.\n",
"\n",
"Below are some examples showing how to add create branching dataflows that work for you. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "bb54e2d0",
"metadata": {},
"outputs": [],
"source": [
"%%capture --no-stderr\n",
"%pip install -U langgraph"
]
},
{
"cell_type": "markdown",
"id": "d6c05fc4-ecd8-483f-a9fd-b1a055f922d9",
"metadata": {},
"source": [
"## Parallel node fan-out and fan-in"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "09372b8b-edea-4b9d-9ec3-3d93ce1ba819",
"metadata": {},
"outputs": [],
"source": [
"import operator\n",
"from typing import Annotated, Any\n",
"\n",
"from typing_extensions import TypedDict\n",
"\n",
"from langgraph.graph import StateGraph\n",
"\n",
"\n",
"class State(TypedDict):\n",
" # The operator.add reducer fn makes this append-only\n",
" aggregate: Annotated[list, operator.add]\n",
"\n",
"\n",
"class ReturnNodeValue:\n",
" def __init__(self, node_secret: str):\n",
" self._value = node_secret\n",
"\n",
" def __call__(self, state: State) -> Any:\n",
" print(f\"Adding {self._value} to {state['aggregate']}\")\n",
" return {\"aggregate\": [self._value]}\n",
"\n",
"\n",
"builder = StateGraph(State)\n",
"builder.add_node(\"a\", ReturnNodeValue(\"I'm A\"))\n",
"builder.set_entry_point(\"a\")\n",
"builder.add_node(\"b\", ReturnNodeValue(\"I'm B\"))\n",
"builder.add_node(\"c\", ReturnNodeValue(\"I'm C\"))\n",
"builder.add_node(\"d\", ReturnNodeValue(\"I'm D\"))\n",
"builder.add_edge(\"a\", \"b\")\n",
"builder.add_edge(\"a\", \"c\")\n",
"builder.add_edge(\"b\", \"d\")\n",
"builder.add_edge(\"c\", \"d\")\n",
"builder.set_finish_point(\"d\")\n",
"graph = builder.compile()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "66f52a20",
"metadata": {},
"outputs": [
{
"data": {
"image/jpeg": "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",
"text/plain": [
" LangGraph executes nodes within \"supersteps\", meaning that while parallel branches are executed in parallel, the entire superstep is transactional. If any of these branches raises an exception, none of the updates are applied to the state (the entire superstep errors).Exception handling?
\n",
"
\n",
" If you have error-prone (perhaps want to handle flakey API calls), LangGraph provides two ways to address this:
\n",
" \n",
"