【大模型】LangGraph 快速入门
LangGraph是 LangChain 推出的一个用于构建可控、多步骤、可循环的 AI Agent 框架。LangGraph = 用“状态机 + 图结构”来控制大模型执行流程。
·
🚀 LangGraph 快速入门:构建可控的多步骤 AI Agent
如果你已经用过 LangChain,但觉得 Agent 不够稳定、流程不可控,那么你一定要看看 LangGraph。
一、什么是 LangGraph?
LangGraph 是 LangChain 推出的一个用于构建 可控、多步骤、可循环的 AI Agent 框架。
👉 核心一句话:
LangGraph = 用“状态机 + 图结构”来控制大模型执行流程
🤔 为什么需要 LangGraph?
传统 LangChain Agent 的问题:
| 问题 | 表现 |
|---|---|
| ❌ 不可控 | LLM 自己决定下一步 |
| ❌ 难调试 | 出错路径不清晰 |
| ❌ 不稳定 | prompt 变化影响大 |
| ❌ 无法复杂流程 | 比如循环 / 分支 |
✅ LangGraph 的优势
| 能力 | 说明 |
|---|---|
| 🧠 状态管理 | 每一步共享 state |
| 🔁 支持循环 | 可以反复推理 |
| 🌳 显式流程 | 类似 DAG / 工作流 |
| 🧩 可插拔节点 | 每个节点就是函数 |
| 🔍 可调试 | 每一步可观测 |
二、核心概念(必须理解)
1️⃣ State(状态)
LangGraph 的核心是一个全局状态对象:
from typing import TypedDict
class State(TypedDict):
question: str
answer: str
steps: list
👉 所有节点共享这个 state
2️⃣ Node(节点)
一个节点就是一个函数:
def call_llm(state):
return {"answer": "这是LLM回答"}
👉 输入:state
👉 输出:state 的更新部分
3️⃣ Edge(边)
定义执行流程:
A → B → C
或者:
A → (条件判断) → B / C
4️⃣ Graph(图)
整个 Agent 的执行流程:
START → 思考 → 调用工具 → 总结 → END
三、5分钟上手示例(最小可运行)
📦 安装
pip install langgraph langchain openai
🧠 示例:一个简单问答 Agent
Step 1:定义 State
from typing import TypedDict
class MyState(TypedDict):
question: str
answer: str
Step 2:定义节点
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI()
def ask_llm(state: MyState):
response = llm.invoke(state["question"])
return {"answer": response.content}
Step 3:构建 Graph
from langgraph.graph import StateGraph
builder = StateGraph(MyState)
builder.add_node("llm", ask_llm)
builder.set_entry_point("llm")
builder.set_finish_point("llm")
graph = builder.compile()
Step 4:运行
result = graph.invoke({
"question": "什么是LangGraph?"
})
print(result["answer"])
四、进阶:实现一个“会思考+用工具”的 Agent
👉 这是 LangGraph 真正强大的地方
🎯 场景:问问题 → 判断是否需要搜索 → 再回答
Step 1:扩展 State
class AgentState(TypedDict):
question: str
need_search: bool
context: str
answer: str
Step 2:思考节点
def decide(state):
if "最新" in state["question"]:
return {"need_search": True}
return {"need_search": False}
Step 3:搜索节点(模拟)
def search(state):
return {"context": "搜索到的结果"}
Step 4:回答节点
def generate(state):
if state["need_search"]:
return {"answer": f"基于搜索:{state['context']}"}
return {"answer": "直接回答"}
Step 5:条件分支(关键)
def route(state):
if state["need_search"]:
return "search"
return "generate"
Step 6:构建 Graph
builder = StateGraph(AgentState)
builder.add_node("decide", decide)
builder.add_node("search", search)
builder.add_node("generate", generate)
builder.set_entry_point("decide")
builder.add_conditional_edges(
"decide",
route,
{
"search": "search",
"generate": "generate"
}
)
builder.add_edge("search", "generate")
builder.set_finish_point("generate")
graph = builder.compile()
🧪 运行
graph.invoke({
"question": "今天AI领域有什么最新进展?"
})
五、LangGraph vs LangChain Agent
| 对比 | LangChain Agent | LangGraph |
|---|---|---|
| 控制方式 | LLM决定 | 开发者控制 |
| 流程 | 隐式 | 显式 |
| 可调试性 | 差 | 强 |
| 支持循环 | 弱 | 强 |
| 适合场景 | 简单问答 | 复杂Agent |
六、典型应用场景(你重点关注)
结合你现在在做的方向 👇
🔥 1. 多轮推理 Agent(ReAct升级版)
思考 → 工具 → 反思 → 再思考
🔥 2. RAG增强系统
问题 → 检索 → 重排序 → 生成 → 校验
👉 比 LangChain 更可控
🔥 3. 企业级工作流(你那个新能源项目非常适合)
用户问题
↓
意图识别
↓
多数据源查询(SQL / 向量 / API)
↓
融合推理
↓
结果审计
🔥 4. 多Agent协作
Planner → Executor → Reviewer
七、调试与可视化(强烈推荐)
LangGraph 支持可视化:
graph.get_graph().draw_png("graph.png")
👉 可以直接看到流程结构(类似 DAG)
更多推荐

所有评论(0)