LangGraph is a versatile Python library designed for stateful, cyclic, and multi-actor Large Language Model (LLM) applications. LangGraph builds upon its parent library, LangChain, and allows you to build sophisticated workflows that are capable of handling the complexities of real-world LLM applications.
By the end of this tutorial, you’ll understand that:
- You can use LangGraph to build LLM workflows by defining state graphs with nodes and edges.
- LangGraph expands LangChain’s capabilities by providing tools to build complex LLM workflows with state, conditional edges, and cycles.
- LLM agents in LangGraph autonomously process tasks using state graphs to make decisions and interact with tools or APIs.
- You can use LangGraph independently of LangChain, although they’re often used together to complement each other.
Explore the full tutorial to gain hands-on experience with LangGraph, including setting up workflows and building a LangGraph agent that can autonomously parse emails, send emails, and interact with API services.
While you’ll get a brief primer on LangChain in this tutorial, you’ll benefit from having prior knowledge of LangChain fundamentals. You’ll also want to ensure you have intermediate Python knowledge—specifically in object-oriented programming concepts like classes and methods.
Get Your Code: Click here to download the free sample code that you’ll use to build stateful AI agents with LangGraph in Python.
Take the Quiz: Test your knowledge with our interactive “LangGraph: Build Stateful AI Agents in Python” quiz. You’ll receive a score upon completion to help you track your learning progress:
Interactive Quiz
LangGraph: Build Stateful AI Agents in PythonTake this quiz to test your understanding of LangGraph, a Python library designed for stateful, cyclic, and multi-actor Large Language Model (LLM) applications. By working through this quiz, you'll revisit how to build LLM workflows and agents in LangGraph.
Install LangGraph
LangGraph is available on PyPI, and you can install it with pip
. Open a terminal or command prompt, create a new virtual environment, and then run the following command:
(venv) $ python -m pip install langgraph
This command will install the latest version of LangGraph from PyPI onto your machine. To verify that the installation was successful, start a Python REPL and import LangGraph:
>>> import langgraph
If the import runs without error, then you’ve successfully installed LangGraph. You’ll also need a few more libraries for this tutorial:
(venv) $ python -m pip install langchain-openai "pydantic[email]"
You’ll use langchain-openai
to interact with OpenAI LLMs, but keep in mind that you can use any LLM provider you like with LangGraph and LangChain. You’ll use pydantic
to validate the information your agent parses from emails.
Before moving forward, if you choose to use OpenAI, make sure you’re signed up for an OpenAI account and that you have a valid API key. You’ll need to set the following environment variable before running any examples in this tutorial:
OPENAI_API_KEY=<YOUR-OPENAI-API-KEY>
Note that while LangGraph was made by the creators of LangChain, and the two libraries are highly compatible, it’s possible to use LangGraph without LangChain. However, it’s more common to use LangChain and LangGraph together, and you’ll see throughout this tutorial how they complement each other.
With that, you’ve installed all the dependencies you’ll need for this tutorial, and you’re ready to create your LangGraph email processor. Before diving in, you’ll take a brief detour to set up quick sanity tests for your app. Then, you’ll go through an overview of LangChain chains and explore LangGraph’s core concept—the state graph.
Create Test Cases
When developing AI applications, testing and performance tracking is crucial for understanding how your chain, graph, or agent performs in the real world. While performance tracking is out of scope for this tutorial, you’ll use several example emails to test your chains, graphs, and agent, and you’ll empirically inspect whether their outputs are correct.
To avoid redefining these examples each time, create the following Python file with example emails:
example_emails.py
EMAILS = [
# Email 0
"""
Date: October 15, 2024
From: Occupational Safety and Health Administration (OSHA)
To: Blue Ridge Construction, project 111232345 - Downtown Office
Complex Location: Dallas, TX
During a recent inspection of your construction site at 123 Main
Street,
the following safety violations were identified:
Lack of fall protection: Workers on scaffolding above 10 feet
were without required harnesses or other fall protection
equipment. Unsafe scaffolding setup: Several scaffolding
structures were noted as
lacking secure base plates and bracing, creating potential
collapse risks.
Inadequate personal protective equipment (PPE): Multiple
workers were
found without proper PPE, including hard hats and safety
glasses.
Required Corrective Actions:
Install guardrails and fall arrest systems on all scaffolding
over 10 feet. Conduct an inspection of all scaffolding
structures and reinforce unstable sections. Ensure all
workers on-site are provided
with necessary PPE and conduct safety training on proper
usage.
Deadline for Compliance: All violations must be rectified
by November 10, 2024. Failure to comply may result in fines
of up to
$25,000 per violation.
Contact: For questions or to confirm compliance, please reach
out to the
OSHA regional office at (555) 123-4567 or email
compliance.osha@osha.gov.
""",
# Email 1
"""
From: debby@stack.com
Hey Betsy,
Here's your invoice for $1000 for the cookies you ordered.
""",
# Email 2
"""
From: tdavid@companyxyz.com
Hi Paul,
We have an issue with the HVAC system your team installed in
apartment 1235. We'd like to request maintenance or a refund.
Thanks,
Terrance
""",
# Email 3
"""
Date: January 10, 2025
From: City of Los Angeles Building and Safety Department
To: West Coast Development, project 345678123 - Sunset Luxury
Condominiums
Location: Los Angeles, CA
Following an inspection of your site at 456 Sunset Boulevard, we have
identified the following building code violations:
Electrical Wiring: Exposed wiring was found in the underground parking
garage, posing a safety hazard. Fire Safety: Insufficient fire
extinguishers were available across multiple floors of the structure
under construction.
Structural Integrity: The temporary support beams in the eastern wing
do not meet the load-bearing standards specified in local building
codes.
Required Corrective Actions:
Replace or properly secure exposed wiring to meet electrical safety
standards. Install additional fire extinguishers in compliance with
fire code requirements. Reinforce or replace temporary support beams
to ensure structural stability. Deadline for Compliance: Violations
must be addressed no later than February 5,
2025. Failure to comply may result in
a stop-work order and additional fines.
Contact: For questions or to schedule a re-inspection, please contact
the Building and Safety Department at
(555) 456-7890 or email inspections@lacity.gov.
""",
]
You can read through these right now if you want, but you’ll get links back to these test emails throughout the tutorial.