LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
  • Overview
    • 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