核心框架11k+ · since 2024 · Python / JavaScript

LangGraph

by LangChain

Graph-based orchestration · the production workhorse

把多 agent 工作流建模成可持久化、可恢复的有向图,工业界最广泛使用的多 agent 编排层。

主要内容

LangGraph 的核心抽象是一张图:节点是函数或 agent,边是跳转规则,状态是强类型对象。Checkpointer 把每一步的状态写入持久存储,意味着你可以在任何一步暂停、恢复、分支、时间旅行。LangGraph 2.0 把三年生产经验沉淀成标准原语:Router、Supervisor、Subagent,让常见多 agent 拓扑不必再手搓。它不像 CrewAI 那样倚重角色比喻,也不像 AutoGen 那样围绕对话展开,它就是一个严肃的工作流引擎,长得像 Airflow 遇到了 LLM。

核心关注点

生产级 workflow 的可控性、可观测性、可恢复性。如果你的 agent 要跑几个小时甚至几天,它是最成熟的选择。

图结构优先状态强类型Checkpoint 恢复HITL 原生确定性控制流

安装与 hello world

$ pip install langgraph langchain-core
hello-world.py
from typing import TypedDict
from langgraph.graph import StateGraph, END
from langgraph.checkpoint.memory import MemorySaver
 
class State(TypedDict):
    messages: list
    next_action: str
 
def plan(state: State) -> State:
    state["next_action"] = "search"
    return state
 
def act(state: State) -> State:
    state["messages"].append("搜索结果")
    return state
 
def router(state: State) -> str:
    return "act" if state["next_action"] else END
 
graph = StateGraph(State)
graph.add_node("plan", plan)
graph.add_node("act", act)
graph.set_entry_point("plan")
graph.add_conditional_edges("plan", router)
graph.add_edge("act", "plan")
 
app = graph.compile(checkpointer=MemorySaver())
result = app.invoke(
    {"messages": [], "next_action": ""},
    config={"configurable": {"thread_id": "1"}},
)

关键 API / 概念

StateGraph

用 TypedDict 声明状态 schema,add_node 添加节点,add_edge 连边。

Checkpointer

MemorySaver(内存)、SqliteSaver(本地)、PostgresSaver(生产)三种存储。

interrupt

在节点内调用 interrupt() 暂停图,等人工输入后从断点恢复。

Command

节点返回 Command 可以同时更新状态 + 指定下一个节点,比单纯返回 state 更灵活。

适用场景

01

长时间运行的多 agent 任务

例如研究 agent 跑 5 小时做深度调研,中间失败要能从 checkpoint 恢复而不是从头再来。

02

需要人工审批的业务流程

在图中任意节点 interrupt,暂停等人工输入,人工决策后恢复执行。金融、医疗、法律场景常用。

03

有显式分支逻辑的复杂流程

客服分派、工单分级、合同审查,这类确定性分支逻辑用图结构比对话范式清晰得多。

什么时候别用

  • 只是想做一个单 agent + 几个工具:杀鸡用牛刀,OpenAI Agents SDK 更合适
  • 快速 PoC / hackathon demo:setup 成本偏高,smolagents 或 CrewAI 更快

vs 相邻选项

vs AutoGen

LangGraph 是图,AutoGen 是对话。前者适合确定流程,后者适合探索性协作。

vs CrewAI

CrewAI 的 Flow 类似 LangGraph 但更简单;真正复杂的分支和恢复逻辑,LangGraph 更硬。