LangChain 和 LangGraph 并非互相替代的关系,而是同一生态系统中不同抽象层级的协作框架。

特性 LangChain LangGraph
核心定位 高层级应用框架,提供标准化的组件和预置的智能体模式 底层编排框架与运行时,用于构建复杂、有状态的工作流
设计思想 组件化线性编排,通过 LCEL 将任务串成一条直线 图结构状态机,将工作流建模为节点和边组成的网络
适用场景 简单的问答、RAG、翻译等一次性或线性任务 多智能体协作、需循环/分支的任务、长期运行的业务流程、需人工介入的场景
状态管理 通过 Memory 组件实现简单状态保持,适合单轮或简单的多轮对话 强大的中央状态管理,支持复杂的状态变更和回溯,确保持久化执行
控制流 主要是线性的 A → B → C,条件分支实现较繁琐 图结构原生支持循环、条件分支和并行执行
底层实现 LangChain v1.0 的 create_agent 抽象构建在 LangGraph 之上 核心 API 稳定,提供持久化、人机协作、流式传输等底层能力

核心区别:

  • LangChain 是“工具包”和“快车道”:它提供大量集成好的组件(提示词模板、文档加载器、向量存储接口等),并定义了标准的调用方式。它的目标是让快速上线简单的 AI 应用。

# LangChain 线性链示例
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

prompt = ChatPromptTemplate.from_template("请回答以下问题:{question}")
model = ChatOpenAI()

# 用 LCEL 的管道符(|)串联组件
chain = prompt | model
result = chain.invoke({"question": "什么是人工智能?"})
  • LangGraph 是“工程蓝图”:它关注的是流程控制状态管理。当你需要的工作流无法用一条直线描述(例如,有循环、需要多智能体协作、或需要等待用户审批)时,LangGraph 提供了完整的图结构(节点、边、条件边)来建模复杂的业务逻辑。
# LangGraph 图结构示例
from langgraph.graph import StateGraph, END
from typing import TypedDict

class AgentState(TypedDict):
    messages: list

# 构建图
workflow = StateGraph(AgentState)
workflow.add_node("agent", agent_node)
workflow.add_node("tool_executor", tool_node)

workflow.add_conditional_edges("agent", should_continue, { "tools": "tool_executor", "end": END })
workflow.add_edge("tool_executor", "agent") # 形成循环
workflow.set_entry_point("agent")

app = workflow.compile()

实际选择:

因为两者可以搭配使用,LangGraph 也并非必须依赖 LangChain。

选择偏好 推荐框架 理由
快速迭代、简单任务 LangChain 你可以利用其丰富的组件和线性的 LCEL 语法,在几分钟内搭建一个可用的 RAG 或问答应用
复杂系统、长远规划 LangGraph 当项目需要处理循环、多智能体协作、长时间运行并需人工介入等复杂逻辑时,LangGraph 提供的状态持久化和流程控制能力是 LangChain 难以替代的
最佳组合 LangChain + LangGraph 可以在 LangGraph 的节点内部使用 LangChain 的 ChatPromptTemplate 等组件,同时在外层用 LangGraph 进行流程编排。这种组合方式能兼顾开发效率和系统灵活性

   总的来说,LangChain 和 LangGraph 并非对立,而是互补的。LangChain 可以让应用快速起步,LangGraph 让应用走得更远。 如果业务逻辑需要循环、分支或人工介入,LangGraph 提供的控制力和确定性是构建可靠 AI 应用的关键。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐