LangGraph

LangGraph 可以理解成:

专门用来构建“有状态、可循环、可控制”的 AI Agent 工作流框架。

如果说 LangChain 是工具箱,那么 LangGraph 更像是流程引擎 / 状态机

这两个经常一起使用。


1. 为什么需要 LangGraph?

先看一个普通的 LLM:

用户
Prompt
LLM
回答

很简单。

但是实际的 AI Agent 往往是:

用户问题
分析问题
需要查询数据库?
   ├── 是 → 查询数据库
   │          ↓
   │       分析结果
   │          ↓
   │       结果是否正确?
   │          ├── 否 → 再次查询
   │          └── 是
生成答案

甚至:

用户
Agent
调用工具
得到结果
Agent重新思考
调用另一个工具
得到结果
Agent重新思考
最终答案

这种有状态、分支、循环、人工介入、多 Agent 协作的流程,就非常适合 LangGraph。


2. LangGraph 最核心的思想

LangGraph 的名字里面有一个 Graph(图)

它把 Agent 应用抽象成:

        ┌──────────────┐
        │              ↓
START → 分析问题 → 查询数据库
        │              │
        │              ↓
        └────────── 检查结果
                ┌──────┴──────┐
                ↓             ↓
              正确           错误
                ↓             │
              生成答案 ←──────┘
               END

这里有三个非常重要的概念:

State
Node
Edge

3. State —— 状态

State 可以理解成:

整个 Agent 工作过程中需要保存的数据。

例如:

class State(TypedDict):
    question: str
    sql: str
    result: str
    answer: str

执行过程中:

question
sql
result
answer

State 会不断被更新。

例如:

State:

question = "查询昨天销售额"

sql = ""

result = ""

answer = ""

SQL Agent 执行之后:

State:

question = "查询昨天销售额"

sql = "SELECT SUM(amount) ..."

result = "125000"

answer = ""

最后:

State:

question = "查询昨天销售额"

sql = "SELECT SUM(amount) ..."

result = "125000"

answer = "昨天销售额为125000元"

4. Node —— 节点

Node 就是一个具体的处理步骤。

例如:

Node 1:分析问题

Node 2:生成 SQL

Node 3:执行 SQL

Node 4:检查 SQL

Node 5:生成答案

可以理解成 Java 中的方法:

analyzeQuestion()

generateSQL()

executeSQL()

checkResult()

generateAnswer()

5. Edge —— 边

Edge 决定:

下一步执行哪个 Node。

例如:

generateSQL
executeSQL
checkSQL

但是 checkSQL 可能有两种结果:

          checkSQL
          /      \
       正确      错误
        ↓          ↓
     answer    generateSQL

这就是 Conditional Edge(条件边)


6. LangGraph 最重要的能力:循环

这是 LangGraph 和普通 Chain 一个非常重要的区别。

例如 Agent:

思考
调用工具
观察结果
思考
调用工具
观察结果
思考
最终答案

可以形成:

        ┌─────────────┐
        ↓             │
      Think           │
        ↓             │
      Tool            │
        ↓             │
    Observation       │
        ↓             │
   是否完成? ── 否 ──┘
      Answer

这种循环非常适合 Agent。


7. LangChain vs LangGraph

LangChainLangGraph
核心思想LLM 应用组件Agent 工作流
抽象Chain / Tool / RetrieverGraph / State / Node / Edge
简单 LLM⭐⭐⭐⭐⭐⭐⭐
RAG⭐⭐⭐⭐⭐⭐⭐⭐⭐
Agent⭐⭐⭐⭐⭐⭐⭐⭐⭐
循环一般⭐⭐⭐⭐⭐
状态管理一般⭐⭐⭐⭐⭐
条件分支很强
Human-in-the-loop有相关能力很适合
多 Agent可以很适合
复杂工作流一般⭐⭐⭐⭐⭐

简单来说:

LangChain
提供各种 AI 组件

LangGraph
把这些组件组织成复杂的 Agent 工作流

8. 一个实际例子:SQL Agent

假设你做一个企业数据分析 AI。

用户:

帮我分析一下今年销售额下降的原因。

Agent 可能需要:

             用户问题
          分析问题
          生成 SQL
          查询数据库
          分析数据
       是否需要更多数据?
          ↙          ↘
        是            否
        ↓              ↓
    再次查询          生成报告
      分析
        └───────────┐
                 最终答案

用 LangGraph,就可以把它表示成:

State
  ├── question
  ├── sql
  ├── database_result
  ├── analysis
  └── answer

Node
  ├── analyze_question
  ├── generate_sql
  ├── execute_sql
  ├── analyze_result
  └── generate_answer

Edge
  ├── analyze → generate_sql
  ├── generate_sql → execute_sql
  ├── execute_sql → analyze_result
  └── analyze_result → generate_sql / answer

这就非常像一个有状态的工作流引擎


9. 为什么 Java 后端工程师特别容易理解 LangGraph?

你本身有 Java、Spring、微服务、Kubernetes 等后端背景的话,可以把 LangGraph 类比成:

Spring Application
业务流程
Service A
Service B
Service C

而 LangGraph:

Agent Workflow
Node A
Node B
Node C
根据 State 决定下一步
Node A / Node D / END

甚至可以把它理解成:

State Machine + Workflow Engine + LLM Agent

这个理解非常接近它的核心思想。


10. LangGraph 和 Spring StateMachine 的感觉很像

如果你以前接触过状态机,可以这样理解:

StateMachine

State
Event
Transition
Next State

LangGraph:

State
Node
Edge
Next Node

例如订单:

CREATED
PAID
SHIPPED
DELIVERED

Agent:

QUESTION
THINK
TOOL_CALL
OBSERVATION
THINK
ANSWER

所以对于后端开发者来说,LangGraph 的思维其实并不陌生


11. LangGraph 在 AI Agent 架构中的位置

现在你可以把整个 AI 技术栈理解成:

                    AI Application
             ┌───────────┴───────────┐
             ↓                       ↓
            RAG                    Agent
             │                       │
       ┌─────┴─────┐          ┌──────┴──────┐
       ↓           ↓          ↓             ↓
   Vector DB    Retriever    Tools       Workflow
                               │             │
                               │         LangGraph
                              API
                            Database

而底层:

                LLM
        ┌────────┼────────┐
        ↓        ↓        ↓
      GPT     Claude   Gemini

Vincent zhai
Vincent zhai
Full-Stack Engineer