LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
  • Overview
  • Graphs
  • Functional API
  • Pregel
  • Checkpointing
  • Storage
  • Caching
  • Types
  • Runtime
  • Config
  • Errors
  • Constants
  • Channels
  • Agents
LangGraph CLI
LangGraph SDK
LangGraph Supervisor
LangGraph Swarm
⌘I

LangChain Assistant

Ask a question to get started

Enter to send•Shift+Enter new line

Menu

OverviewGraphsFunctional APIPregelCheckpointingStorageCachingTypesRuntimeConfigErrorsConstantsChannelsAgents
LangGraph CLI
LangGraph SDK
LangGraph Supervisor
LangGraph Swarm
Language
Theme
PythonlanggraphgraphstateStateGraphadd_conditional_edges
Method●Since v0.3

add_conditional_edges

Add a conditional edge from the starting node to any number of destination nodes.

Copy
add_conditional_edges(
  self,
  source: str,
  path: Callable[..., Hashable | Sequence[Hashable]] | Callable[..., Awaitable[Hashable | Sequence[Hashable]]] | Runnable[Any, Hashable | Sequence[Hashable]],
  path_map: dict[Hashable, str] | list[str] | None = None
) -> Self

Without type hints on the path function's return value (e.g., -> Literal["foo", "__end__"]:) or a path_map, the graph visualization assumes the edge could transition to any node in the graph.

Parameters

NameTypeDescription
source*str

The starting node. This conditional edge will run when exiting this node.

path*Callable[..., Hashable | Sequence[Hashable]] | Callable[..., Awaitable[Hashable | Sequence[Hashable]]] | Runnable[Any, Hashable | Sequence[Hashable]]

The callable that determines the next node or nodes.

If not specifying path_map it should return one or more nodes.

If it returns 'END', the graph will stop execution.

path_mapdict[Hashable, str] | list[str] | None
Default:None

Optional mapping of paths to node names.

If omitted the paths returned by path should be node names.

View source on GitHub