A project-based Python series
Learn LangGraph by building a workshop support desk.
Eight complete articles. One evolving project. Start with Python functions, then add routing, evidence, saved approval, recovery, and an optional local model.
Default runs require no API keys. Tested edition: Python 3.12.4 · LangGraph 1.2.16 · SQLite checkpointer 3.1.2.
Setup and repository guide · Publishing handover · Verification

Build a Support Workflow in Python Before Adding LangGraph
Start with a small working program, learn what a workflow means, and identify the problems a graph will help us organize.
Turn Two Python Functions into Your First LangGraph
Build and run a StateGraph, then trace how nodes return changes to a shared dictionary-shaped state.
Route Support Questions with Conditional Edges and State Updates
Give technical questions and human-only requests different paths, and keep a readable log of the nodes that ran.
Add Document Retrieval and a Bounded Draft-Check Loop
Find relevant local notes, attach source references to a reply, and stop a failed revision loop after a deliberate limit.
Pause for Human Approval and Resume After Python Exits
Store a review checkpoint in SQLite, end the process, and continue the same ticket with an explicit approval or rejection.
Handle Failures with Retries, Progress Events, and an Idempotent Outbox
Recover from a simulated transient lookup failure, show the nodes that complete, and prevent a repeated queue operation from creating duplicate rows.
Add a Local LLM Without Handing It Control of the Workflow
Replace one drafting function with an optional Ollama adapter, validate its JSON response, and keep source checks and human review around generated text.
Finish, Test, and Publish Your LangGraph Support Desk
Run the assembled application across separate commands, inspect the local outbox, and evaluate a fixed set of tickets before publishing the repository.