一句话理解 LangGraph:LangGraph 是 AI 推理工作流的确定性执行引擎。
不是聊天机器人库,不是 Prompt 胶水,是 LLM 的控制系统。
为什么需要 LangGraph?
你以为的 AI 应用
用户 → LLM → 答案
真实的生产 AI 应用需要
- 思考
- 做决策
- 调用工具
- 检查结果
- 重试
- 询问人工
- 记住状态
- 继续
LLM 本身管不好这些——它们会幻觉、盲目循环、忘记状态。
LangGraph 存在的意义:控制智能,而不只是调用智能。
一个心智模型搞定 LangGraph
LangGraph = 状态机 + LLM 大脑
| 概念 | 含义 |
|---|---|
| State(状态) | 系统的记忆 |
| Node(节点) | 一个推理/行动步骤 |
| Edge(边) | 控制流 |
| Conditional Edge(条件边) | 决策点 |
| Loop(循环) | 思考过程 |
| Checkpoint(检查点) | 持久化记忆 |
如果你理解有限状态机,你就理解了 LangGraph。
LangChain 已经不够用了(诚实的分析)
LangChain 很好用,但:
LangChain 擅长:组件级的能力(工具集成、模型接口、文档处理)
LangChain 在真实系统里的问题:
- 工具重试逻辑混乱
- ReAct 循环靠 Hack
- 多 Agent 系统脆弱
- 调试困难
- 错误恢复几乎不可能
LangGraph 从设计上修复了这些问题。
核心概念详解
1. State(状态)——最重要的概念
State 是贯穿整个图的共享"笔记本",每个节点都可以读写。
入门理解:一个所有步骤都能读写的笔记本。
进阶理解:
- 强类型
- 确定性变更
- 可序列化
- 可回放
python
from typing import TypedDict, Annotated
from langgraph.graph import add_messages
class AgentState(TypedDict):
messages: Annotated[list, add_messages] # 对话历史
context: str # 检索到的上下文
retries: int # 重试计数
verified: bool # 是否已验证关键原则:State 设计错误,整个 Agent 系统就是错的。
2. Nodes(节点)——有边界的智能
每个节点:
- 是一个纯函数
- 接受 State
- 返回部分 State 更新
python
from langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(model="claude-sonnet-4-5")
tools = [search_tool, calculator_tool]
llm_with_tools = llm.bind_tools(tools)
def agent_node(state: AgentState) -> dict: