LangGraph 概览
LangGraph 是一个底层编排框架和运行时,用于构建、管理和部署长期运行的有状态 Agent。它为 Agent 编排提供核心基础设施:持久化执行、流式输出、人机协同等。
定位:框架 vs 运行时
| 产品 | 定位 | 说明 |
|---|---|---|
| LangChain | Agent 框架 | 模型、工具、Agent 循环的抽象和集成 |
| LangGraph | 编排运行时 | 持久化、流式、HITL、状态管理 |
| LangSmith | 平台 | 追踪、评估、Prompt、部署 |
| Deep Agents | Agent 框架 | 基于 LangGraph 的高级 Agent Harness |
核心能力
1. Persistence(持久化)
LangGraph 内置持久化层,在每次执行步骤时自动保存状态快照。这使得:
- 容错恢复:节点失败后从最近 checkpoint 继续
- 人机协同:中断执行,人工审查修改后恢复
- 时间旅行:回放历史步骤进行调试
- 对话记忆:跨多次调用保持上下文
2. 流式事件
支持多种流式模式(values、updates、messages、events),让 Agent 的执行过程完全透明。
3. 人机协同
在任意节点插入中断(Interrupt),等待人工审批后再继续执行。
4. 两种 API
- Graph API:以节点和边的图结构定义 Agent
- Functional API:以函数方式定义 Agent(LangGraph 3.0+)
安装
bash
pip install -U langgraphHello World:
python
from langgraph.graph import StateGraph, MessagesState, START, END
def mock_llm(state: MessagesState):
return {"messages": [{"role": "ai", "content": "hello world"}]}
graph = StateGraph(MessagesState)
graph.add_node(mock_llm)
graph.add_edge(START, "mock_llm")
graph.add_edge("mock_llm", END)
graph = graph.compile()
graph.invoke({"messages": [{"role": "user", "content": "hi!"}]})适用场景
- 需要多步骤推理的复杂 Agent
- 需要工具调用循环(思考→行动→观察)
- 需要人工审批的流程
- 需要状态持久化的长期运行任务
- 需要流式实时反馈的聊天应用
使用建议
- LangGraph 是底层框架,更适合需要精细控制的高级用户
- 如果刚接触 Agent,建议先从 LangChain Agent 开始
- LangGraph 可以与 LangChain 配合使用,也可以独立使用