AI Agents • LangChain

LangGraph — Stateful AI Agents

Learn how LangGraph builds AI agents that remember what happened before and execute multi-step workflows reliably.

Scroll to start

What Is LangGraph?

LangGraph is an extension of LangChain designed for building agents that work in cycles — not just straight-line chains. It models your AI application as a graph of states and transitions, where each node is a step in a process and edges define how the agent moves from one step to the next.

The key difference from LangChain's default chain: LangGraph agents can loop, branch, and remember. A regular chain takes input, does one thing, returns output. A LangGraph agent can think, act, check the result, and loop back — just like a human would when solving a complex problem.

Regular LLM Call

  • One question in, one answer out
  • No memory of previous interactions
  • Cannot take multiple actions
  • No way to handle errors or loops

LangGraph Agent

  • Maintains state across steps
  • Remembers conversation history
  • Can call tools, loop, branch
  • Handles errors and conditional logic

Why State Matters

Most AI tools are stateless — they forget everything after each response. For simple tasks, that is fine. But for complex workflows — researching a topic, planning a trip, debugging code — you need an agent that accumulates information and makes decisions based on what it has already learned.

LangGraph solves this by giving each step in your workflow access to shared state. As the agent moves through nodes, it updates that state. You can inspect, modify, or branch on state at any point.

Key Insight

LangGraph is built by the same team as LangChain — but where LangChain chains are directed acyclic graphs (no loops), LangGraph adds the ability to cycle back. That single addition unlocks agents that can self-correct, retry failed operations, and work through multi-step problems the way a human would.

A LangGraph Agent Loop
🤔
Model
Decides next action
🔧
Tool Call
Executes an action
📝
Update
State is updated
🔄
Repeat
Checks if done
until goal reached_

The Three Core Concepts

LangGraph has three building blocks that you combine to build any workflow.

01
📦

State

A shared dictionary that flows through every node in the graph. Each step reads from state and writes updates. Think of it like a shared notepad the agent carries through the workflow.

02
🔷

Nodes

Python functions that do work — call an LLM, run a tool, process data. Each node receives state, does something, and returns state updates.

03
➡️

Edges

Connections between nodes. Define which node runs next. Can be conditional — based on state, route to different next steps.

langgraph_example.py
from langgraph.graph import StateGraph, END

# Define what flows through the graph
class AgentState(TypedDict):
    messages: list
    next_action: str

# Node: decide what to do
def agent(state):
    result = llm.invoke(state["messages"])
    return {"messages": [result], "next_action": result.content}

# Node: run a tool
def tool_node(state):
    return {"messages": [run_tool(state["next_action"])]}

# Conditional routing
def should_continue(state):
    return "continue" if state["next_action"] else "end"

graph = StateGraph(AgentState)
graph.add_node("agent", agent)
graph.add_node("action", tool_node)
graph.set_entry_point("agent")
graph.add_conditional_edges("agent", should_continue, {
    "continue": "action", "end": END
})
graph.add_edge("action", "agent")
app = graph.compile()

A Research Agent Built with LangGraph

Imagine you want an agent that researches a topic, saves findings to a file, and stops when it has enough information. With LangGraph, you model this as nodes with conditional edges.

Real-World Use Case

LangGraph powers production agents at companies like Netflix, Shopify, and Instacart. Any time you need an AI to work toward a goal over multiple steps — without you supervising each one — LangGraph is a top choice.

research_agent.py
# Simple research agent workflow:
research_node    → web search for facts
summarize_node    → distill findings into notes
check_node         → enough info? continue or end
save_node         → write notes to file

# Conditional edge: if "continue" → summarize,
# if "done" → save and exit

Knowledge Check

Test what you learned about LangGraph.

3 Questions

Question 01

What is the key difference between LangChain chains and LangGraph?

Question 02

What is "state" in LangGraph?

Question 02

What is "state" in LangGraph?

Question 03

What do conditional edges do in LangGraph?

🏆

You crushed it!

Perfect score on LangGraph.