Skip to content

什么是 LangGraph ? ​

  • 标签:AI、大模型、LangChain、LangGraph

🏛 业务架构师 ​

LangGraph 是 LangChain 团队推出的编排框架,把 LLM 应用建模为状态图:节点(每步执行的动作)+ 边(条件跳转关系)+ 共享 State(贯穿全流程的数据)。它支持循环、分支、人工介入、并行分发,官方定位是构建"有状态的、多角色的 Agentic 应用"。

为什么需要它:LangChain 的 Chain 是单向 DAG,但真实业务流程充满"检索不满意就重写问题再查""审批不通过退回修改"的循环与回退,用 Chain 硬做只能套 AgentExecutor 黑盒循环,不可控也不可审计。LangGraph 把控制流显式化——每个节点、每条边都可观测、可打断、可持久化(Checkpoint 机制支持暂停恢复、时间旅行调试),这是生产级 Agent 的刚需。

业务价值:一是复杂流程可交付——客服升级流转、多 Agent 协作审批这类以前"演示能跑、生产不敢上"的场景有了工程底座;二是可审计——每个状态的流转都有记录,满足合规要求;三是人机协同——在关键节点插入 human-in-the-loop 审批,AI 出错时业务可控。

我的建议:只要 Agent 流程需要"循环+分支+人工介入"任一项,就直接用 LangGraph 起步,不要在 Chain 上欠技术债。

🏗 系统架构师 ​

LangGraph 是 LangChain 团队推出的图式 Agent 编排框架:把应用建模为状态机(图)——节点是计算步骤(LLM 调用、工具执行、路由判断),边是状态转移(支持条件边),共享一个可持久化的 State 对象。它已经成为复杂 Agent 编排的事实标准。

为什么需要它(相对传统 Chain):Chain 是 DAG、无环,表达不了 Agent 的本质——循环(工具结果不满意再试一次、反思重写)。LangGraph 用带环图 + reducer(状态合并策略)把循环、分支、多 Agent 协作变成一等公民。

核心机制:

  • StateGraph:TypedDict/Pydantic 定义状态 schema,节点读写状态,reducer 控制并发写入合并(如消息列表 append);
  • 条件边:add_conditional_edges 按状态动态路由;
  • Checkpointer:每步后快照持久化(Postgres/Redis),带来三个生产级能力——中断恢复(进程挂了从断点续跑)、时间旅行(回放到某步重试)、人工介入(interrupt 挂起等人审批后继续);
  • Subgraph:子图复用,多 Agent 分层编排。

我的用法:需要循环+状态+可控终止的场景(研究型 Agent、审批流、多 Agent 协作)一律 LangGraph;线性流水线老老实实用 LCEL,图编排的复杂度不值得。

💻 全栈开发专家 ​

LangGraph 是 LangChain 团队推出的低层图编排框架:把应用建模为「节点(函数)+ 边(含条件边)+ 共享 State」的状态机,专门解决 LCEL 只能做 DAG、无法表达循环的问题——而循环恰恰是 Agent 的本质(决策→行动→观察→再决策)。

核心概念:

  • State:一个 TypedDict/dataclass,贯穿全图,节点返回增量更新(可配 reducer 合并,如消息列表 append);
  • Node:一个函数,接收 state 返回更新;
  • Edge:固定跳转;Conditional Edge:按 state 动态路由;
  • Checkpointer:每步持久化(Postgres/Redis),支持断点恢复、time travel、human-in-the-loop 中断等待人工审批。
python
from langgraph.graph import StateGraph, END
g = StateGraph(AgentState)
g.add_node("llm", call_model); g.add_node("tools", tool_node)
g.set_entry_point("llm")
g.add_conditional_edges("llm", should_continue, {"tools": "tools", END: END})
g.add_edge("tools", "llm")
app = g.compile(checkpointer=PostgresSaver(...))

一句话定位:LangChain Chain 是流水线,LangGraph 是状态机;做 Agent、自适应 RAG、多步工作流,2026 年的标准答案就是 LangGraph。