LangChain 与 LangGraph 的关系


一句话概括

LangChain 是基础生态库,LangGraph 是在其之上构建的"有状态多智能体编排引擎",两者是包含与扩展的关系,而非竞争替代。


关系全景图

┌─────────────────────────────────────────────────────────┐
│                   LangChain 生态                         │
│                                                          │
│  ┌─────────────┐  ┌──────────────┐  ┌────────────────┐  │
│  │langchain-core│  │langchain-comm│  │  langchain     │  │
│  │ 基础抽象     │  │ unity 集成库  │  │  链/Agent/RAG  │  │
│  │ LLM/Prompt  │  │ OpenAI/Kafka  │  │  LCEL 表达式   │  │
│  │ Memory/Tool │  │ /Chroma/...   │  │  传统 Chain    │  │
│  └──────┬──────┘  └──────────────┘  └────────────────┘  │
│         │                                                 │
│  ┌──────▼──────────────────────────────────────────────┐ │
│  │                    LangGraph                         │ │
│  │         有状态 · 多智能体 · 图编排引擎                │ │
│  │  Node(节点)+ Edge(边)+ State(状态)              │ │
│  │  循环执行 · 条件分支 · Human-in-the-loop             │ │
│  └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘

核心对比

对比维度

LangChain

LangGraph

定位

AI 应用开发基础框架

有状态智能体编排引擎

核心抽象

Chain / Agent / RAG

Graph / Node / Edge / State

执行流

线性 / DAG(有向无环)

支持循环(有向有环图)

状态管理

有限(Memory 组件)

内置强状态管理,跨步骤持久化

适合场景

简单问答、RAG、单次 Chain

复杂多步推理、多 Agent 协作

控制流

固定流程

条件分支、循环、动态路由

Human-in-loop

不原生支持

✅ 原生支持,可随时暂停介入

可视化调试

有限

✅ 图结构天然可视化

发布时间

2022 年

2024 年


执行模型对比

LangChain(线性 Chain)

Input → [Prompt] → [LLM] → [Parser] → [Tool] → Output
         ↑__________________________固定顺序,不可回头__↑

LangGraph(有环图)

          ┌──────────────────────┐
          ▼                      │
Input → [Agent节点] → 判断是否需要工具
              │ 需要               │ 不需要
              ▼                   ▼
         [Tool节点]             Output
              │
              └──────────────────┘
              结果返回 Agent 继续推理(循环!)

二者分工协作

LangGraph 负责"骨架"(流程编排)
    ├── 定义 Node(每个节点可以是一个 LangChain Chain)
    ├── 定义 Edge(条件路由、固定流转)
    └── 管理 State(跨节点共享、持久化)

LangChain 负责"血肉"(能力组件)
    ├── LLM 调用(ChatOpenAI、Claude 等)
    ├── Prompt 模板管理
    ├── RAG 检索(VectorStore + Retriever)
    └── Tool 调用(Search、Calculator 等)

代码体现:

from langchain_openai import ChatOpenAI          # LangChain 提供 LLM
from langchain_core.tools import tool            # LangChain 提供 Tool
from langgraph.graph import StateGraph, END      # LangGraph 提供图编排

llm = ChatOpenAI(model="gpt-4o")                 # LangChain 组件

# LangGraph 图中直接使用 LangChain 组件
def agent_node(state):
    response = llm.invoke(state["messages"])     # ← LangChain 能力
    return {"messages": [response]}

graph = StateGraph(State)
graph.add_node("agent", agent_node)              # ← LangGraph 编排
graph.add_edge("agent", END)

什么时候用哪个?

场景

推荐

原因

简单问答 / 单次 LLM 调用

LangChain

轻量,够用

RAG 知识库问答

LangChain

Chain + Retriever 成熟方案

单 Agent + 工具调用

LangChain AgentExecutor

简单场景足够

多 Agent 协作

LangGraph

多节点图编排,状态共享

需要循环推理(ReAct / 自我反思)

LangGraph

原生支持有环图

需要人工介入审核

LangGraph

interrupt_before 原生支持

长任务、多步骤、状态持久化

LangGraph

内置 Checkpointer

复杂条件分支流程

LangGraph

条件边动态路由


演进关系

2022      LangChain 发布
            └── Chain / Agent / Memory 基础能力

2023      LCEL(LangChain Expression Language)
            └── 声明式组合 Chain,pipe 语法

2024.01   LangGraph 发布
            └── 解决 LangChain Agent 在复杂场景下
                "流程不可控、状态难管理、无法循环"的痛点

现在       官方推荐:
            简单场景 → LangChain
            复杂 Agent → LangGraph(已成为官方首推方案)

总结

LangGraph ⊂ LangChain 生态

LangGraph 是 LangChain 官方出品,完全基于 langchain-core

LangGraph 不是替代品

而是对 LangChain 在复杂 Agent 场景的能力补全

最佳实践

LangGraph 做流程骨架 + LangChain 组件做节点内部能力

想深入了解 LangGraph 的 State 设计多 Agent 架构或者实战代码,告诉我!