🚀 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)

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐