# LangGraph: Stateful Workflows — LangChain / LlamaIndex

Source: https://www.geekswithgeeks.com/en/langchain-llamaindex/g-langgraph

> Model complex flows as a graph with shared state.

## Nodes, edges, state

**LangGraph** (a separate library from the LangChain team) models an application as a **graph**: **nodes** are functions (an LLM call, a tool, a check), **edges** define what runs next (including **conditional edges** and loops), and a typed **state** is passed along and updated. Benefits over a free-running agent: explicit control flow, **checkpointing** (save and resume state, enabling memory and fault recovery), **human-in-the-loop** pauses for approval, streaming of intermediate steps and easier testing of each node. Use it when you need loops, branching, long-running tasks or approvals; use a simple chain when you do not.

## A support-agent graph (sketch)

A conceptual map, not code from a specific version. Shows nodes, a conditional edge and a human approval step.

```text
START -> classify ----billing----> lookup_invoice -> draft_reply --+
                 \--technical--> search_docs ----> draft_reply --+
                 \--other------> draft_reply --------------------+
                                                                v
                                              [human approval if refund > 100]
                                                                v
                                                         send_reply -> END
state = {question, category, evidence, draft, approved}   # saved at each step (checkpoint)
```

**Quiz:** What does checkpointing enable?

- [ ] Hiding prompts
- [ ] Training a model
- [x] Saving and resuming state, for memory and fault recovery
- [ ] Removing nodes

*Answer:* Saving and resuming state, for memory and fault recovery. Checkpoints persist graph state between steps and runs.
