从 Langchain 到 Langgraph:构建更智能的 LLM 应用架构
Langchain 是一个用于构建 LLM 应用的 Python 框架,它提供了对 LLM、Prompt 模板、Memory、Tool、Chain 等概念的封装,旨在让开发者更容易地把语言模型接入到实际应用中。prompt = PromptTemplate.from_template("你是谁?")这个例子非常简单,但实际项目通常涉及多个子任务(例如:信息抽取、查询改写、多轮交互、调用工具等),这
过去一年,大语言模型(LLM)的能力突飞猛进,也带来了“AI 应用开发”这个全新领域的火热。而在所有的工具链中,Langchain 几乎成了构建 LLM 应用的代名词。然而,随着项目复杂度的上升,Langchain 的线性调用方式开始显得力不从心。Langgraph 正是在这样的背景下应运而生。
什么是 Langchain?
Langchain 是一个用于构建 LLM 应用的 Python 框架,它提供了对 LLM、Prompt 模板、Memory、Tool、Chain 等概念的封装,旨在让开发者更容易地把语言模型接入到实际应用中。
一个典型的 Langchain 应用,可能长这样:
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
llm = ChatOpenAI()
prompt = PromptTemplate.from_template("你是谁?")
chain = LLMChain(llm=llm, prompt=prompt)
result = chain.run("")
print(result)
这个例子非常简单,但实际项目通常涉及多个子任务(例如:信息抽取、查询改写、多轮交互、调用工具等),这种线性链式结构会很快遇到瓶颈。
什么是 Langgraph?
Langgraph 是一个在 Langchain 基础上构建的状态机框架,它允许开发者以图(Graph)的方式组织多个节点,并在节点间定义跳转逻辑。简单来说,它把 Langchain 中的链(Chain)升级成了“图”(Graph),解决了流程控制复杂、多轮交互难以建模的问题。
Langgraph 最核心的概念是:
-
• Node(节点):一个节点通常是调用 LLM、运行一个函数、或执行某种任务。
-
• Edge(边):定义了从一个节点到另一个节点的跳转逻辑。
-
• State(状态):每轮对话或执行过程中携带的信息。
下面是一个 Langgraph 的简单例子:
import operator
from langgraph.graph import StateGraph, END
from langchain.chat_models import ChatOpenAI
# 定义状态数据结构
from typing import TypedDict
classMyState(TypedDict):
input: str
answer: str
# 定义节点函数
defreply_node(state: MyState) -> MyState:
llm = ChatOpenAI()
content = llm.predict(f"请回答问题:{state['input']}")
return {"input": state["input"], "answer": content}
# 构建图结构
graph = StateGraph(MyState)
graph.add_node("reply", reply_node)
graph.set_entry_point("reply")
graph.set_finish_point("reply")
app = graph.compile()
result = app.invoke({"input": "地球到月球有多远?"})
print(result)
是不是感觉逻辑更清晰了?相比 Langchain 的链式结构,Langgraph 的图结构更适合处理需要判断、跳转、循环的复杂流程。
典型使用场景对比
场景 |
Langchain 适用 |
Langgraph 更优 |
简单问答 |
✅ |
✅ |
多轮对话 |
✅ |
✅(更清晰) |
工具调用 |
✅ |
✅ |
条件判断跳转 |
❌ |
✅ |
状态管理 |
一般 |
强 |
多节点分支流程 |
❌ |
✅ |
Langgraph 更像是“Langchain 的 Plus 版本”,适用于对流程控制要求更高的场景,比如:
-
• 多轮问答中动态跳转(比如判断是否结束)
-
• 多 Agent 协作(比如一个审校 Agent,一个改写 Agent)
-
• 复杂任务流程管理(如调用多个工具 + 多轮生成)
图解:Langchain vs Langgraph
Langchain:
Prompt -> LLM -> Output
Langgraph:
[input] --> (Node A) --> (Node B) --> END
\--> (Node C) --/
图中的 Langchain 是线性的,而 Langgraph 则像流程图,有分支、有判断、更灵活。
实战:一个“旅行助手”示例
假设我们希望构建一个智能旅行助手,它可以:
-
1. 获取用户的旅行目的地
-
2. 判断用户是想查天气还是推荐景点
-
3. 根据判断调用不同的模块
我们使用 Langgraph 来实现这个功能:
from langchain.chat_models import ChatOpenAI
from langgraph.graph import StateGraph, END
from typing import TypedDict
classTravelState(TypedDict):
input: str
goal: str
result: str
llm = ChatOpenAI()
defclassify_goal(state: TravelState) -> str:
text = state["input"]
if"天气"in text:
return"weather"
elif"景点"in text:
return"attractions"
else:
return END
defget_weather(state: TravelState) -> TravelState:
result = llm.predict(f"请告诉我{state['input']}的天气")
return {**state, "result": result}
defget_attractions(state: TravelState) -> TravelState:
result = llm.predict(f"请推荐{state['input']}的景点")
return {**state, "result": result}
# 构建图结构
graph = StateGraph(TravelState)
graph.add_node("weather", get_weather)
graph.add_node("attractions", get_attractions)
graph.add_conditional_edges(
"classify",
classify_goal,
{"weather": "weather", "attractions": "attractions", END: END}
)
graph.set_entry_point("classify")
graph.set_finish_point("weather")
graph.set_finish_point("attractions")
app = graph.compile()
result = app.invoke({"input": "我要去东京看天气"})
print(result)
你可以很容易扩展更多节点,比如:加一个餐厅推荐、酒店预订、甚至是日语翻译。
总结
Langchain 和 Langgraph 各有所长:
-
• Langchain 更轻量,适合线性流程、原型开发
-
• Langgraph 更强大,适合复杂流程、生产环境
如果你已经在用 Langchain,不妨试着用 Langgraph 改写一下自己的核心链条,你会发现它更易维护、更具扩展性。
未来 LLM 应用会越来越复杂,Langgraph 提供的“状态机 + 图建模”方式,很可能会成为主流。
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)