Skip to content

LangChain vs LangGraph

两个框架的定位、能力边界和选型建议。这是面试中经常被问到的话题。

一句话总结

LangChain 是构建 LLM 应用的框架,LangGraph 是编排有状态 Agent 的运行时。

LangChain = 积木 + 设计模式 LangGraph = 用来拼积木的工作台 + 状态机

定位对比

LangChainLangGraph
定位应用开发框架编排运行时
核心抽象Chain(链)、Agent(智能体)StateGraph(状态图)
状态管理简单 MemoryCheckpoint 持久化
控制流线性 Chain + 简单 Router图结构 + 条件边
人机协同不支持Interrupt 原生支持
流式Chain 级别Token/State/Event 多模式
时间旅行不支持基于 Checkpoint 原生支持
可替代性可用其他框架替代底层能力不可替代

能力边界

LangChain 擅长什么

python
# 简单链式调用
chain = prompt | model | output_parser

# 内置 Agent(快速上手)
agent = create_react_agent(model, tools)

LangGraph 擅长什么

python
# 自定义状态和路由
class State(TypedDict):
    messages: Annotated[list, add_messages]
    need_approval: bool

def router(state) -> Literal["tool", "human", END]:
    ...

# 图结构编排
builder.add_conditional_edges("agent", router, ...)

如何协作

在实际应用中,两者通常是配合使用而不是二选一:

python
from langchain.chat_models import init_chat_model   # LangChain
from langchain.tools import tool                     # LangChain
from langgraph.graph import StateGraph, START, END    # LangGraph

# LangChain 提供组件
model = init_chat_model("claude-sonnet-4-6")

@tool
def search(query: str):
    """搜索"""
    return vectorstore.similarity_search(query)

# LangGraph 提供编排
builder = StateGraph(State)
builder.add_node("llm", lambda s: {"messages": [model.invoke(s["messages"])]})
builder.add_node("search", lambda s: {"messages": [search(s["messages"][-1].content)]})

选型建议

选 LangChain

  • 刚接触 LLM 开发
  • 需求是简单问答、基础 RAG
  • 快速上线原型
  • 团队规模小、迭代快

选 LangGraph

  • 需要多步骤有状态工作流
  • 需要人工审批流程
  • 需要持久化/容错
  • Agent 逻辑复杂、分支多
  • 生产化部署

两者都用

  • 需要 LangChain 的模型/工具生态
  • 需要 LangGraph 的编排能力
  • 标准的组合方式

Deep Agents 的定位

Deep Agents 是基于 LangGraph 构建的 Agent Harness(智能体框架),提供:

  • 子 Agent 管理
  • 文件系统工具
  • 上下文管理
  • 沙箱执行

它比 LangGraph 更高层,但比 LangChain Agent 更灵活。

LangChain(框架)→ Deep Agents(Harness)→ LangGraph(运行时)

常见误区

  1. ❌ LangGraph 是 LangChain 的升级版

    • 它们是互补关系,不是替代关系
  2. ❌ 用 LangGraph 就不能用 LangChain

    • 大部分 LangGraph 项目都配合 LangChain 使用
  3. ❌ 简单场景用 LangGraph 太重了

    • 如果只是简单的 LLM 调用,确实 Chain 就够了

参考

本站为非官方中文学习站点,不代表 LangChain 官方。部分内容参考官方文档并重新整理为中文学习笔记。