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

    LangGraph Checkpoint
    Checkpoint Postgres
    Store Postgres
    Checkpoint SQLite
    LangGraph Prebuilt
    LangGraph CLI
    LangGraph SDK
    LangGraph Supervisor
    LangGraph Swarm
    Language
    Theme
    Pythonlanggraph.prebuilt

    langgraph.prebuilt

    Description

    LangGraph Prebuilt

    This library defines high-level APIs for creating and executing LangGraph agents and tools.

    [!IMPORTANT] This library is meant to be bundled with langgraph, don't install it directly

    Agents

    langgraph-prebuilt provides an implementation of a tool-calling ReAct-style agent - create_react_agent:

    pip install langchain-anthropic
    from langchain_anthropic import ChatAnthropic
    from langgraph.prebuilt import create_react_agent
    
    # Define the tools for the agent to use
    def search(query: str):
        """Call to surf the web."""
        # This is a placeholder, but don't tell the LLM that...
        if "sf" in query.lower() or "san francisco" in query.lower():
            return "It's 60 degrees and foggy."
        return "It's 90 degrees and sunny."
    
    tools = [search]
    model = ChatAnthropic(model="claude-3-7-sonnet-latest")
    
    app = create_react_agent(model, tools)
    # run the agent
    app.invoke(
        {"messages": [{"role": "user", "content": "what is the weather in sf"}]},
    )

    Tools

    ToolNode

    langgraph-prebuilt provides an implementation of a node that executes tool calls - ToolNode:

    from langgraph.prebuilt import ToolNode
    from langchain_core.messages import AIMessage
    
    def search(query: str):
        """Call to surf the web."""
        # This is a placeholder, but don't tell the LLM that...
        if "sf" in query.lower() or "san francisco" in query.lower():
            return "It's 60 degrees and foggy."
        return "It's 90 degrees and sunny."
    
    tool_node = ToolNode([search])
    tool_calls = [{"name": "search", "args": {"query": "what is the weather in sf"}, "id": "1"}]
    ai_message = AIMessage(content="", tool_calls=tool_calls)
    # execute tool call
    tool_node.invoke({"messages": [ai_message]})

    ValidationNode

    langgraph-prebuilt provides an implementation of a node that validates tool calls against a pydantic schema - ValidationNode:

    from pydantic import BaseModel, field_validator
    from langgraph.prebuilt import ValidationNode
    from langchain_core.messages import AIMessage
    
    class SelectNumber(BaseModel):
        a: int
    
        @field_validator("a")
        def a_must_be_meaningful(cls, v):
            if v != 37:
                raise ValueError("Only 37 is allowed")
            return v
    
    validation_node = ValidationNode([SelectNumber])
    validation_node.invoke({
        "messages": [AIMessage("", tool_calls=[{"name": "SelectNumber", "args": {"a": 42}, "id": "1"}])]
    })

    Agent Inbox

    The library contains schemas for using the Agent Inbox with LangGraph agents. Learn more about how to use Agent Inbox here.

    from langgraph.types import interrupt
    from langgraph.prebuilt.interrupt import HumanInterrupt, HumanResponse
    
    def my_graph_function():
        # Extract the last tool call from the `messages` field in the state
        tool_call = state["messages"][-1].tool_calls[0]
        # Create an interrupt
        request: HumanInterrupt = {
            "action_request": {
                "action": tool_call['name'],
                "args": tool_call['args']
            },
            "config": {
                "allow_ignore": True,
                "allow_respond": True,
                "allow_edit": False,
                "allow_accept": False
            },
            "description": _generate_email_markdown(state) # Generate a detailed markdown description.
        }
        # Send the interrupt request inside a list, and extract the first response
        response = interrupt([request])[0]
        if response['type'] == "response":
            # Do something with the response
        ...

    Classes

    Class

    ToolCallRequest

    Tool execution request passed to tool call interceptors.

    Class

    ToolCallWithContext

    ToolCall with additional context for graph state.

    Class

    ToolInvocationError

    An error occurred while invoking a tool due to invalid arguments.

    Class

    ToolNode

    A node for executing tools in LangGraph workflows.

    Class

    ToolRuntime

    Runtime context automatically injected into tools.

    Class

    InjectedState

    Annotation for injecting graph state into tool arguments.

    Class

    InjectedStore

    Annotation for injecting persistent store into tool arguments.

    Class

    HumanResponse

    The response provided by a human to an interrupt, which is returned when graph execution resumes.

    Class

    HumanInterruptConfig

    deprecated

    Configuration that defines what actions are allowed for a human interrupt.

    Class

    ActionRequest

    deprecated

    Represents a request for human action within the graph execution.

    Class

    HumanInterrupt

    deprecated

    Represents an interrupt triggered by the graph that requires human intervention.

    Class

    ValidationNode

    deprecated

    A node that validates all tools requests from the last AIMessage.

    Class

    AgentState

    deprecated

    The state of the agent.

    Class

    AgentStatePydantic

    deprecated

    The state of the agent.

    Class

    AgentStateWithStructuredResponse

    deprecated

    The state of the agent with a structured response.

    Class

    AgentStateWithStructuredResponsePydantic

    deprecated

    The state of the agent with a structured response.

    Functions

    Function

    msg_content_output

    Convert tool output to ToolMessage content format.

    Function

    tools_condition

    Conditional routing function for tool-calling workflows.

    Function

    create_react_agent

    deprecated

    Creates an agent graph that calls tools in a loop until a stopping condition is met.

    Modules

    Types

    Module

    prebuilt

    langgraph.prebuilt exposes a higher-level API for creating and executing agents and tools.

    Module

    tool_node

    Tool execution node for LangGraph workflows.

    Module

    interrupt

    Module

    tool_validator

    This module provides a ValidationNode class that can be used to validate tool calls

    Module

    chat_agent_executor

    Type

    StructuredResponse

    Type

    StructuredResponseSchema

    Type

    Prompt