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 Checkpoint
    LangGraph Store
    Checkpoint Postgres
    Store Postgres
    Checkpoint SQLite
    LangGraph Prebuilt
    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 Checkpoint
    LangGraph Store
    Checkpoint Postgres
    Store Postgres
    Checkpoint SQLite
    LangGraph Prebuilt
    LangGraph CLI
    LangGraph SDK
    LangGraph Supervisor
    LangGraph Swarm
    Language
    Theme
    PythonlanggraphgraphstateStateGraphadd_conditional_edges
    Methodā—Since v0.3

    add_conditional_edges

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

    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]]
    path_mapdict[Hashable, str] | list[str] | None
    Default:None

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

    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.

    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.

    Optional mapping of paths to node names.

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