LangGraph 概览
一句话
LangGraph 是一个用于构建有状态、多智能体应用程序的低级编排框架和运行时,专注于可靠处理复杂任务的智能体设计。
什么时候翻这页
- 需要构建长期运行、有状态的智能体工作流
- 需要实现持久化、流式处理、人机交互等高级功能
- 想了解 LangGraph 与 LangChain 生态系统的关系
- 需要部署生产级的复杂智能体系统
核心概念
- StateGraph(状态图):LangGraph 的核心数据结构,用于定义智能体工作流
- 节点(node):工作流中的处理单元,通常是一个函数
- 边(edge):连接节点的路径,定义工作流中的执行流程
- 持久化(Persistence):智能体能够通过故障并从中断点恢复的能力
- 人机交互(Human-in-the-loop):在任何检查点修改智能体状态的能力
- 内存管理(Memory):包括短期工作记忆和长期跨会话记忆
- checkpoint:保存智能体状态的点,用于恢复和调试
怎么做
-
安装 LangGraph
pip install -U langgraph # 或 uv add langgraph -
创建基本工作流
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!"}]}) -
设置 LangSmith 调试
export LANGSMITH_TRACING=true export LANGSMITH_API_KEY=your_api_key
命令 / API 速查
StateGraph:创建状态图的主要类MessagesState:消息状态类型,用于处理对话历史START,END:特殊节点,表示工作流的开始和结束add_node(node, name?):向图中添加节点add_edge(start_node, end_node):在节点间添加边compile():编译图,准备执行invoke(input):执行图并获取结果stream(input):流式执行图
与 Hello-Agents / Claude Code 的联系
LangGraph 是 Hello-Agents 中 LangGraph 章节的基础框架。Hello-Agents 提供了更高层次的抽象和预构建架构,而 LangGraph 则提供了更底层的控制力和灵活性。在 Hello-Agents 中,你可能已经使用了基于 LangGraph 构建的智能体,而本页文档帮助你理解这些智能体是如何工作的。
初学者易错点
- 混淆 LangGraph 和 LangChain:LangGraph 是独立的框架,不依赖 LangChain,但常与 LangChain 组件一起使用
- 忽略 LangSmith 的重要性:LangSmith 对调试复杂智能体至关重要,建议从一开始就设置
- 低估状态管理:智能体的状态管理是核心,需要仔细设计状态结构
- 过度关注提示词:LangGraph 不抽象提示词,需要自行管理提示词设计