作为一个后端开发者,刚接触 AI Agent 的时候,我一直有个疑问:
大模型能理解问题,但复杂业务流程怎么控制?
比如:
用户提问 → 查询知识库 → 判断是否命中 → 调接口 → 汇总结果 → 返回答案
多步骤审批建议
多 Agent 协同执行任务
如果只是简单聊天,直接调用大模型 API 就够了。但一旦进入复杂业务流程,传统 Prompt 已经不太够用了。
于是,我开始接触一个专门做 AI 工作流编排 的框架 —— LangGraph。
本文从 0 开始,带你快速理解 LangGraph 是什么、解决什么问题,以及如何跑通第一个 AI 工作流。
一、什么是 LangGraph?
LangGraph 是一个基于图(Graph)的 AI Agent 工作流框架,它由 LangChain 团队推出。
简单理解:
LangChain 负责“能力”,LangGraph 负责“流程”。
如果把 AI Agent 比作员工:
LLM(大模型) → 员工的大脑
LangChain → 员工会用的工具
LangGraph → 员工的工作流程
比如:
一个客服 AI:
用户问题
↓
意图识别
↓
知识库查询
↓
是否命中?
┌──────┴──────┐
命中 未命中
↓ ↓
回答用户 调用搜索
└──────┬──────┘
↓
输出结果
这个流程,就是 LangGraph 擅长的事情。
二、为什么需要 LangGraph?
很多人一开始会想:
“直接写 if else 不就行了?”
确实可以。
但问题是:
当业务越来越复杂时:
if (命中知识库) {
if (需要接口调用) {
if (权限允许) {
...
}
}
}
最后代码会变成“面条代码”。
而 LangGraph 的思路是:
把流程抽象成图结构。
每个步骤是一个节点(Node),节点之间的跳转是边(Edge)。
这样:
更容易维护
更适合复杂流程
更适合多 Agent 协作
更容易加入人工审核
特别适合:
AI 知识库
智能审批
智能客服
数据分析助手
企业流程自动化
三、LangGraph 的核心概念
学 LangGraph,先记住 4 个核心概念。
1. State(状态)
State 可以理解成:
流程中的共享数据
类似 Java 里的上下文对象。
例如:
class State(TypedDict):
question: str
answer: str
意思是:
流程中始终共享:
用户问题
AI 回复
流程里的每个节点,都可以修改 State。
类似:
Map<String,Object> context
或者:
RequestContext
2. Node(节点)
Node 就是:
执行某个动作的方法
比如:
调用大模型
查询数据库
调接口
判断逻辑
示例:
def chatbot(state):
return {
"answer": llm.invoke(state["question"])
}
这里:
chatbot 就是一个节点。
作用:
根据问题生成答案。
3. Edge(边)
Edge 表示:
流程执行路径
例如:
A → B → C
表示:
先执行 A,再执行 B,再执行 C。
代码:
graph.add_edge("chat", END)
意思:
执行完 chat 后结束。
4. Conditional Edge(条件边)
条件边是:
根据结果动态决定走向
例如:
知识库命中:
查询知识库
↓
是否命中?
/ \
是 否
↓ ↓
直接回答 搜索网络
代码:
graph.add_conditional_edges(
"search",
route
)
类似:
switch(type)
但更灵活。
四、第一个 LangGraph 示例
下面写一个最简单的聊天流程。
安装依赖
先安装:
pip install langgraph
pip install langchain-openai
编写代码
from typing import TypedDict
from langgraph.graph import StateGraph, END
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o-mini"
)
class State(TypedDict):
question: str
answer: str
def chatbot(state):
response = llm.invoke(state["question"])
return {
"answer": response.content
}
graph = StateGraph(State)
graph.add_node("chatbot", chatbot)
graph.set_entry_point("chatbot")
graph.add_edge("chatbot", END)
app = graph.compile()
result = app.invoke({
"question": "什么是LangGraph?"
})
print(result)
输出:
{
'question': '什么是LangGraph?',
'answer': 'LangGraph 是一个 AI 工作流框架...'
}
五、代码执行流程解析
第一次看可能有点懵。
其实流程特别简单:
用户输入问题
↓
进入 chatbot 节点
↓
调用大模型
↓
更新 state
↓
结束
对应代码:
graph.set_entry_point("chatbot")
入口节点:
chatbot
然后:
graph.add_edge(
"chatbot",
END
)
执行完成直接结束。
所以:
整个 Graph:
START
↓
chatbot
↓
END
六、LangGraph 和 LangChain 的区别
很多人会混淆。
一句话:
LangChain 是工具链,LangGraph 是工作流。
区别:
如果只是:
用户问题 → 大模型 → 输出
LangChain 足够。
但如果:
用户问题
↓
知识库
↓
判断
↓
搜索
↓
人工审核
↓
最终输出
建议:
用 LangGraph。
七、适合哪些项目?
我觉得特别适合下面几类系统:
1. 企业知识库问答
例如:
员工问:
出差报销流程是什么?
流程:
提问
↓
知识库检索
↓
是否命中
↓
答案返回
2. 智能审批助手
比如:
合同审批:
读取合同
↓
风险分析
↓
是否异常
↓
人工确认
↓
审批建议
这种和企业 OA、PDM 系统很搭。
3. 多 Agent 协同
例如:
规划 Agent
↓
代码 Agent
↓
测试 Agent
↓
总结 Agent
多个 AI 协同完成任务。
八、学习建议
如果你刚开始学:
建议路线:
第一步:先理解 Graph 思维
不要急着写复杂 Agent。
先搞懂:
Node
Edge
State
知道流程怎么跑。
第二步:写简单工作流
例如:
输入
↓
分类
↓
回答
第三步:接知识库
RAG + LangGraph。
第四步:接业务系统
比如:
数据库
REST API
企业流程
真正做业务闭环。
九、总结
一句话总结:
LangGraph 本质上是“给 AI 加流程控制”。
它让大模型不只是聊天,而是:
按规则完成复杂任务。
如果你做的是:
AI 知识库
企业系统
智能审批
多步骤业务流程
那么 LangGraph 值得认真学习。
对于后端开发者来说,可以把它理解成:
“AI 世界里的流程引擎。”
下一篇准备继续研究:
如何用 LangGraph 做一个简单的知识库问答 Agent。