LangGraph
约 607 字大约 2 分钟
2026-09-01
简介
LangGraph 是 LangChain 团队推出的一个库,用于构建有状态、多参与者(multi-agent)的 LLM 应用。核心思想是把整个工作流建模成一张图(Graph):节点代表一个个步骤,边代表步骤之间的流转关系。
它最典型的应用是构建 Agent——尤其是那种要走很多步、会来回绕、需要调用工具、甚至需要暂停等待人工确认的复杂智能体。
为什么需要它
普通的 LLM 调用是「一次问答就结束」,而现实中的 Agent 任务往往是:
- 多轮:调用模型 → 决定调用工具 → 拿到结果 → 再调用模型 → …… 直到完成
- 有分支:根据模型的输出,下一步走哪条路是不同的
- 可能循环:失败重试、自我修正、反复迭代
- 需要暂停:关键步骤要等人工确认后才能继续
传统的 Chain 只能流水线式地走一遍,无法表达「循环」和「条件分支」。LangGraph 用图这种天然支持环和分叉的结构,把这些问题一并解决了。
与 LangChain 的关系
| LangChain | LangGraph | |
|---|---|---|
| 定位 | 组件工具包(模型、prompt、检索、各种 Chain) | 任务编排层(把组件组织成可运行的工作流) |
| 类比 | 一堆「积木」 | 「画流程图并让它跑起来」 |
| 灵活性 | 流水线,难以表达循环 | 支持环、条件边、动态路由 |
LangGraph 基于 LangChain 生态,可以无缝使用 langchain 提供的各种模型封装和工具,但它的图执行、状态管理和持久化能力是独立且更底层的。
核心能力
- StateGraph:用强类型方式定义状态与流转逻辑
- 条件边(conditional edge):根据运行结果动态选择下一步
- 循环:天然支持 ReAct 式「模型 ↔ 工具」反复交互
- 状态持久化(checkpointer):每一步都存档,可回溯、可恢复、可 time-travel
- Human-in-the-loop:
interrupt()在图执行中暂停,等待人工决策后继续 - 流式输出:
stream()/astream()逐节点产出结果
目录导航
| 文档 | 说明 |
|---|---|
| 核心概念 | State、Node、Edge、条件路由、编译与运行 |
| 构建一个 Agent | 从零手动搭建 ReAct Agent,含完整可运行代码 |
| 图形化界面与可视化 | Studio、Builder、draw_mermaid 与 Agent Chat UI 的区别与用法 |
