Skip to content

LangGraph

Hub: documentation home · Python API · LangChain.

LangGraph talks to LangChain tools. Use the same load_tools as LangChain.

pip install "vectorsmith[qdrant,langgraph]"

create_react_agent

from langchain.chat_models import init_chat_model
from langgraph.prebuilt import create_react_agent
from vectorsmith.langgraph import load_tools  # or: from vectorsmith import load_tools

tools = load_tools("tools.invoices.yaml", "tools.tickets.yaml")
try:
    model = init_chat_model("openai:gpt-4.1")
    agent = create_react_agent(model, tools)
    result = await agent.ainvoke({"messages": [{"role": "user", "content": prompt}]})
finally:
    await tools.aclose()

Worked sample: examples/langgraph_agent/.

StateGraph + ToolNode

from langgraph.prebuilt import ToolNode, tools_condition
from langgraph.graph import StateGraph, MessagesState, START
from vectorsmith import load_tools

vs = load_tools("tools.yaml")
tool_node = ToolNode(vs)

def chatbot(state):
    return {"messages": [model.bind_tools(vs).invoke(state["messages"])]}

graph = StateGraph(MessagesState)
graph.add_node("agent", chatbot)
graph.add_node("tools", tool_node)
graph.add_edge(START, "agent")
graph.add_conditional_edges("agent", tools_condition)
graph.add_edge("tools", "agent")
app = graph.compile()

Call await vs.aclose() when the process exits.