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
    Pythonlanggraphpregelprotocol
    Module●Since v0.2

    protocol

    Attributes

    attribute
    All: Literal['*']

    Special value to indicate that graph should interrupt on all nodes.

    attribute
    StreamMode: Literal['values', 'updates', 'checkpoints', 'tasks', 'debug', 'messages', 'custom']

    How the stream method should emit outputs.

    • "values": Emit all values in the state after each step, including interrupts. When used with functional API, values are emitted once at the end of the workflow.
    • "updates": Emit only the node or task names and updates returned by the nodes or tasks after each step. If multiple updates are made in the same step (e.g. multiple nodes are run) then those updates are emitted separately.
    • "custom": Emit custom data using from inside nodes or tasks using StreamWriter.
    • "messages": Emit LLM messages token-by-token together with metadata for any LLM invocations inside nodes or tasks.
    • "checkpoints": Emit an event when a checkpoint is created, in the same format as returned by get_state().
    • "tasks": Emit events when tasks start and finish, including their results and errors.
    • "debug": Emit "checkpoints" and "tasks" events for debugging purposes.
    attribute
    StreamPart

    A discriminated union of all v2 stream part types.

    Use part["type"] to narrow the type:

    async for part in graph.astream(input, version="v2"):
        if part["type"] == "values":
            part["data"]  # OutputT — full state (pydantic/dataclass/dict)
        elif part["type"] == "messages":
            part["data"]  # tuple[BaseMessage, dict] — (message, metadata)
        elif part["type"] == "custom":
            part["data"]  # Any — user-defined
    attribute
    ContextT

    Type variable used to represent graph run scoped context.

    Defaults to None.

    attribute
    InputT

    Type variable used to represent the input to a StateGraph.

    Defaults to StateT.

    attribute
    OutputT

    Type variable used to represent the output of a StateGraph.

    Defaults to StateT.

    attribute
    StateT

    Type variable used to represent the state in a graph.

    attribute
    StreamChunk: tuple[tuple[str, ...], str, Any]

    Classes

    class
    Command

    One or more commands to update the graph's state and send messages to nodes.

    class
    GraphOutput

    Typed container returned by invoke() / ainvoke() with version="v2".

    class
    StateSnapshot

    Snapshot of the state of the graph at the beginning of a step.

    class
    StateUpdate
    class
    PregelProtocol
    class
    StreamProtocol
    View source on GitHub