首页
看点啥
插画图片
首页 看点啥 LangChain+LangGraph架构深度解析:基于复杂AI任务编排与状态管理的大模型应用开发21.4

LangChain+LangGraph架构深度解析:基于复杂AI任务编排与状态管理的大模型应用开发21.4

2026-07-24 0

​一、前言

基本上我们接触大模型应用开发,一开始都是从调用API入门的。简单测一测问答、文本生成,轻轻松松就能实现一个基础应用,上手门槛很低。但真正想落地到实际项目时,大家都会碰到同一个棘手问题:单纯的API调用太“单薄”,根本撑不起复杂业务。一旦需要实现联网检索、工具调用、多步推理、循环纠错、多智能体协作这类高阶功能,原生API的短板就会彻底暴露。如果纯手写代码实现,不仅逻辑杂乱、重复代码多,后期维护、迭代、调试都会非常困难,完全达不到生产环境的落地标准。

大模型的应用开发绕不开LangChain和LangGraph两大框架的使用,不管是实际应用还是学习了解,这两大框架都至关重要,今天我们结合实际由浅入深拆解两套框架的核心逻辑、架构差异和落地场景。从最简单的线性链式开发,逐步过渡到进阶图式编排,一起探讨LangChain的能力边界、LangGraph的核心价值。

二、框架核心定位

1.LangChain定位

LangChain是目前大模型应用开发最主流的基础开源框架,核心定位是简化大模型应用快速开发。它的本质是一套标准化的组件库与开发规范,解决了原生大模型API能力单一、开发重复度高的问题,让我们不用重复造轮子。具体价值与核心设计特点:

解决原生开发痛点:

核心链式设计理念:

但它的短板也同样突出,也是LangGraph诞生的核心契机,核心局限集中在两方面:

流程逻辑固化:

扩展性与可控性差:

2.LangGraph定位

LangGraph是LangChain的进阶编排框架与运行时,完美兼容LangChain所有组件,是对LangChain能力的底层升级。

2.1核心业务定位

LangGraph的核心定位是复杂、有状态、可循环的AI智能体编排,专门解决LangChain线性流程无法实现的复杂任务场景,聚焦生产级智能体、多轮复杂任务、多智能体协作等高阶场景。

2.2 核心设计革新

它彻底摒弃了LangChain固定线性链式的执行逻辑,采用有向状态图的设计思想,把AI任务的每一个执行单元定义为节点,把任务流转规则定义为边,通过节点和边的自由组合,实现任意复杂的任务流程。

2.3 核心能力突破

相比于LangChain的线性执行,LangGraph最大的突破是引入了全局状态管理和动态流程控制。在LangGraph中,所有节点共享统一的全局状态,节点可以读取状态数据、处理逻辑、更新状态,同时支持根据状态结果动态判断下一步执行路径,轻松实现分支、循环、重试、并行、回滚等复杂逻辑。

两者并非替代关系,而是互补适配的技术组合,场景划分清晰,新手可直接对照选用:

LangChain适配场景:

LangGraph适配场景:

2.3 核心关系总结

二者是基础与进阶、简单与复杂、快速迭代与工程落地的互补关系,可搭配使用搭建完整大模型应用架构。

三、LangChain架构

1.核心基础组件

想要用好LangChain,首先要吃透它的核心组件。所有LangChain应用,都是基于以下五大基础组件组合搭建而成,每个组件各司其职、标准化解耦,极大降低了开发难度,五大核心组件详细说明如下:

1.1 大模型组件(LLM/ChatModel)

该组件是AI应用的核心算力支撑,具备极强的通用性与兼容性,核心能力分为三点:

1.2提示词组件(Prompt)

该组件专门用于标准化提示词管理,解决原生开发的各类痛点,核心价值分为三点:

1.3记忆组件(Memory)

大模型本身无状态,无法自主记忆对话历史,Memory组件专门解决上下文留存、连续对话问题,核心能力分为三点:

1.4工具组件(Tools)

该组件核心作用是拓展大模型能力边界,打破模型固有知识与能力局限,核心优势分为三点:

1.5链路组件(Chain)

该组件是LangChain的核心执行载体,承担组件串联、任务执行的核心作用,核心功能分为三点:

2.完整执行流程

基于LangChain开发轻量化大模型应用,拥有标准化、固定化的开发流程,整体分为四大步骤:

1. 环境初始化

2. 组件定义

3. 链路组装

4. 执行与解析

3.LangChain优缺点

LangChain线性开发模式的核心优势十分突出,非常适合新手入门和轻量化项目落地,核心优势:

与此同时,LangChain的局限性也非常明显,在生产级复杂项目中会被无限放大,核心短板:

4. 链式应用示例解析

该示例演示LangChain LCEL链式开发核心模式:通过|操作符将提示词模板、大模型推理、输出解析器串联为固定处理链路,展示组件初始化→链式组装→逐步执行的完整流程,适合理解LangChain管道式架构。

import osfrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParser# 接入腾讯混元大模型(TokenHub平台)api_key = os.environ.get('TENCENT_API_KEY')model_name = "hy3-preview"print("=" * 50)print("LangChain 链式开发 — 组件初始化")print("=" * 50)# 1. 初始化基础组件(LangChain核心能力)print("n[组件1] 初始化大模型...")llm = ChatOpenAI(model=model_name,api_key=api_key,base_url="https://tokenhub.tencentmaas.com/v1",)print(f"✓ 模型: {model_name} | 端点: tokenhub.tencentmaas.com")print("n[组件2] 构建提示词模板...")prompt = ChatPromptTemplate.from_messages([("system", "你是AI开发科普助手,回答简洁通俗,适合新手学习。"),("human", "请简单讲解:{question}")])print(f"✓ 系统角色: AI开发科普助手")print(f"✓ 用户模板: 请简单讲解:{{question}}")print("n[组件3] 初始化输出解析器...")parser = StrOutputParser()print(f"✓ 解析器: StrOutputParser (纯文本输出)")# 2. 链式组装(LCEL线性链路)# 固定顺序:提示词 => 模型推理 => 结果解析print("n" + "=" * 50)print("链式组装 (LCEL)")print("=" * 50)chain = prompt | llm | parserprint("组装顺序: 提示词模板 → 大模型推理 → 结果解析")print("操作符: prompt | llm | parser")# 3. 执行固定流程任务if __name__ == "__main__":user_question = "LangChain的链式架构特点是什么"print("n" + "=" * 50)print("链式调用执行")print("=" * 50)print(f"n[步骤1] 填充提示词模板")print(f"输入问题: {user_question}")prompt_value = prompt.invoke({"question": user_question})print(f"实际发送给模型的提示词:")for msg in prompt_value.messages:print(f"[{msg.type}] {msg.content[:80]}...")print(f"n[步骤2] 大模型推理中 (hy3-preview)...")llm_output = llm.invoke(prompt_value)print(f"模型原始输出: {llm_output.content[:80]}...")print(f"n[步骤3] 解析器提取纯文本...")res = parser.invoke(llm_output)print(f"解析结果长度: {len(res)} 字")print(f"n{'='*50}")print(f"最终输出")print(f"{'='*50}")print(f"n{res}")

输出结果:

四、LangGraph架构

1.核心基础概念

LangGraph完全兼容LangChain所有组件,仅在执行架构上做了升级。掌握LangGraph架构设计之前,必须了解四大核心基础概念,这是所有图式智能体开发的核心根基,理解后即可快速上手复杂任务编排:

1.1 状态(State)

State是LangGraph的核心灵魂,是整个任务流程的全局共享数据快照,彻底解决LangChain数据零散的痛点,核心特性:

1.2节点(Node)

节点是LangGraph的最小执行单元,是所有业务逻辑的承载载体,核心特性:

1.3边(Edge)

边是节点之间的任务流转规则,决定整个流程的执行路径,分为两类核心形态:

1.4图(Graph)

图是LangGraph最终的任务编排载体,是整合所有逻辑的核心容器,核心能力:

2.LangGraph优势

相比于LangChain的线性架构,LangGraph的图式架构完美解决了传统链式开发的所有痛点,也是其成为生产级智能体开发标准的核心原因,四大核心优势:

2.1灵活的动态流程编排

2.2 统一全局状态管理

2.3天然支持循环与迭代

2.4高可控的生产级特性

3.图编排开发示例解析

该示例演示LangGraph图编排核心模式:通过全局状态管理、独立推理与补充节点、条件边动态分流,实现有状态的Agent工作流——回答不足时自动触发补充链路,展现图式编排相较于线性链式的灵活决策能力。

import osfrom typing import TypedDictfrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatefrom langgraph.graph import StateGraph, START, END# 接入腾讯混元大模型(TokenHub平台)api_key = os.environ.get('TENCENT_API_KEY')model_name = "hy3-preview"# 1. 定义全局状态(LangGraph核心:全局有状态)class AgentState(TypedDict):query: str# 用户输入answer: str # 模型回答need_more: bool # 动态判断标记print("=" * 50)print("LangGraph 图编排 — 组件初始化")print("=" * 50)# 2. 复用LangChain基础组件print("n[模型] 初始化大模型...")llm = ChatOpenAI(model=model_name,api_key=api_key,base_url="https://tokenhub.tencentmaas.com/v1",)print(f"✓ {model_name} | tokenhub.tencentmaas.com")print("n[状态] 定义全局状态 Schema...")print(f"✓ AgentState: query(str) + answer(str) + need_more(bool)")prompt = ChatPromptTemplate.from_messages([("system", "你是AI开发科普助手,回答简洁通俗。"),("human", "{query}")])# 3. 定义独立节点(单一职责)def inference_node(state: AgentState):"""模型推理节点"""print(f"n┌─ 【节点: inference】推理节点 ─┐")print(f"│输入: {state['query'][:50]}...")res = prompt | llmanswer = res.invoke({"query": state["query"]}).content# 动态设置状态:回答过短则需要补充内容need_more = len(answer) < 80print(f"│输出: {answer[:60]}...")print(f"│回答长度: {len(answer)} 字 (阈值80字)")print(f"│状态更新: need_more = {need_more}")print(f"└─ 【inference 完成】──┘")return {"answer": answer, "need_more": need_more}def supplement_node(state: AgentState):"""内容补充节点(分支逻辑)"""print(f"n┌─ 【节点: supplement】补充节点 ─┐")print(f"│原回答过短({len(state['answer'])}字),触发补充流程")supplement_prompt = ChatPromptTemplate.from_messages([("system", "请补充细化回答,讲得更详细易懂。"),("human", "原问题:{query} 原回答:{answer}")])res = supplement_prompt | llmnew_answer = res.invoke({"query": state["query"], "answer": state["answer"]}).contentprint(f"│补充后长度: {len(new_answer)} 字")print(f"└─ 【supplement 完成】──┘")return {"answer": new_answer}# 4. 定义分支流转规则def judge_branch(state: AgentState):"""动态分支判断:是否需要补充内容"""if state["need_more"]:print(f"n→ 条件判断: need_more=True → 路由到 [supplement]")return "supplement"print(f"n→ 条件判断: need_more=False → 路由到 [END]")return "end"# 5. 构建状态图工作流print("n" + "=" * 50)print("构建状态图工作流")print("=" * 50)graph = StateGraph(AgentState)# 添加节点graph.add_node("inference", inference_node)graph.add_node("supplement", supplement_node)print("[节点] inference, supplement 已注册")# 固定边:起始=>推理graph.add_edge(START, "inference")print("[边] START → inference")# 条件边:动态分流,实现分支逻辑graph.add_conditional_edges("inference",judge_branch,{"supplement": "supplement", "end": END})print("[条件边] inference → judge_branch → supplement / END")# 补充节点执行完成后结束graph.add_edge("supplement", END)print("[边] supplement → END")# 编译运行if __name__ == "__main__":print("n" + "=" * 50)print("编译并执行图工作流")print("=" * 50)run_graph = graph.compile()print("✓ 图编译完成")print(f"n输入问题: LangGraph和LangChain有什么区别")print(f"{'─' * 40}")result = run_graph.invoke({"query": "LangGraph和LangChain有什么区别"})print(f"{'─' * 40}")print(f"n{'='*50}")print(f"最终输出")print(f"{'='*50}")print(f"n{result['answer']}")

输出结果:

五、框架差异与选型

1.架构深度对比

1.1 执行模式差异

1.2状态管理差异

1.3流程能力差异

1.4开发与维护差异

2.场景选型方案

理清架构差异后,结合业务场景精准选型,可避免大材小用或能力不足的问题,我们结合实际推荐一些标准化选型方案:

2.1 优先选用LangChain的场景

2.2 优先选用LangGraph的场景

六、应用架构设计

1.分层架构设计

实际项目开发中,不会零散堆砌组件和节点,而是采用标准化分层架构,实现代码解耦、结构清晰、便于长期迭代维护。基于LangChain+LangGraph的组合架构,行业通用标准化分层方案分为四层,可适配绝大多数大模型应用场景,各层级职责如下:

1. 1 基础能力层

1.2流程编排层

1.3业务逻辑层

1.4接口服务层

2.开发规范参考

想要搭建稳定、可迭代、可商用的生产级大模型应用,除了标准化分层架构,还需遵循五大核心开发规范,规避常见架构缺陷,保障项目长期稳定迭代:

2.1节点单一职责原则

2.2 精细化状态设计

2.3完善异常重试机制

2.4可视化流程调试

2.5基础组件统一封装

3.LangChain+LangGraph应用

该示例演示LangChain+LangGraph组合开发模式:LangChain负责提示词模板与模型推理的链式组装,LangGraph负责全局状态管理与图节点编排,两者协作实现有状态的智能问答工作流。

import osfrom typing import TypedDict, Annotatedfrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatefrom langgraph.graph import StateGraph, START, END# 接入腾讯混元大模型(TokenHub平台)api_key = os.environ.get('TENCENT_API_KEY')model_name = "hy3-preview"# 1. 定义全局状态(LangGraph核心特性)class GraphState(TypedDict):user_query: str # 用户问题answer: str # 模型输出结果print("=" * 50)print("LangChain + LangGraph 组合开发 — 初始化")print("=" * 50)# 2. 初始化LangChain基础组件(模型+提示词)print("n[LangChain] 初始化基础组件...")llm = ChatOpenAI(model=model_name,api_key=api_key,base_url="https://tokenhub.tencentmaas.com/v1",)print(f"✓ 大模型: {model_name}")prompt = ChatPromptTemplate.from_messages([("system", "你是专业的AI开发助手,回答简洁通俗、适合新手理解。"),("human", "{user_query}")])print(f"✓ 提示词模板: system角色 + human输入")print("n[LangGraph] 状态Schema...")print(f"✓ GraphState: user_query(str) + answer(str)")# 3. 定义图节点(业务执行单元)def llm_infer_node(state: GraphState):"""大模型推理节点(LangChain链式调用 + LangGraph状态管理)"""print(f"n┌─ 【节点: llm_infer】推理执行 ─┐")print(f"│LangChain 提示词填充: {state['user_query'][:40]}...")# 组装提示词 + 模型推理chain = prompt | llmres = chain.invoke({"user_query": state["user_query"]})print(f"│模型返回: {res.content[:60]}...")print(f"│更新全局状态: answer字段写入")print(f"└─ 【llm_infer 完成】──┘")# 更新全局状态return {"answer": res.content}# 4. 构建LangGraph工作流print("n" + "=" * 50)print("构建图工作流")print("=" * 50)# 初始化状态图graph_builder = StateGraph(GraphState)# 添加执行节点graph_builder.add_node("llm_infer", llm_infer_node)print("[节点] llm_infer 已注册")# 设置执行流程:起始 → 推理节点 → 结束graph_builder.add_edge(START, "llm_infer")graph_builder.add_edge("llm_infer", END)print("[边] START → llm_infer → END")print("[架构] LangChain(链式推理) + LangGraph(状态图编排)")# 编译图并执行print("n" + "=" * 50)print("编译并执行")print("=" * 50)graph = graph_builder.compile()print("✓ 图编译完成n")# 测试运行if __name__ == "__main__":user_q = "简单说说LangChain和LangGraph的区别"print(f"[输入] {user_q}")print(f"{'─' * 40}")result = graph.invoke({"user_query": user_q})print(f"{'─' * 40}")print(f"n{'='*50}")print(f"最终输出")print(f"{'='*50}")print(f"n{result['answer']}")

重点说明:

输出结果:

七、总结

总的来说,LangChain是大模型应用基础组件框架,主打线性链式快速开发、轻量化Demo落地、新手入门;LangGraph是进阶图编排框架,主打动态流程、状态管理、复杂智能体开发、生产级落地。

二者并非对立替代关系,而是互补的完整技术组合体系,也是目前行业主流开发方案。底层基础能力依托LangChain实现,复杂业务流程编排依托LangGraph实现。随着了解的深入,我们也慢慢会聚焦本质,跳出API堆砌,大模型应用开发的核心本质,不是堆砌框架API,而是理解任务编排、状态管理、逻辑解耦的工程化思想。

喜欢(0)

上一篇

DeepSeek实习生日薪5500:真正恐怖的并非工资

DeepSeek实习生日薪5500:真正恐怖的并非工资

下一篇

紫光闪芯携带全栈AI存储产品矩阵亮相WAIC 2026世界人工智能大会

紫光闪芯携带全栈AI存储产品矩阵亮相WAIC 2026世界人工智能大会
猜你喜欢