LangChain 与 LangGraph 的关系
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(线性 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)
什么时候用哪个?
演进关系
2022 LangChain 发布
└── Chain / Agent / Memory 基础能力
2023 LCEL(LangChain Expression Language)
└── 声明式组合 Chain,pipe 语法
2024.01 LangGraph 发布
└── 解决 LangChain Agent 在复杂场景下
"流程不可控、状态难管理、无法循环"的痛点
现在 官方推荐:
简单场景 → LangChain
复杂 Agent → LangGraph(已成为官方首推方案)
总结
想深入了解 LangGraph 的 State 设计、多 Agent 架构或者实战代码,告诉我!