首页/新闻资讯/正文详情

LangGraph大模型学习指南:小白程序员必备收藏

发布时间:2026/11/4 7:09:30 来源:云帆数科 栏目:资讯中心
LangGraph大模型学习指南:小白程序员必备收藏
本文详细介绍了LangGraph的概念、核心组件如状态、节点、边等以及LangGraph与LangChain的区别。文章还深入探讨了条件判断、并行执行、循环、人机协作和状态管理等关键功能并列举了LangGraph的五大核心优势持久化执行、完整内存管理、人在回路、生产级可靠性和深度可观测性。最后通过HelloWorld示例和写作工作流实例展示了LangGraph在实际应用中的强大能力为想要学习大模型的读者提供了实用且全面的学习指南。LangGraph相关概念1、什么是LangGraphLangGraph 是 LangChain 团队推出的基于状态图的低层 Agent 编排框架与运行时用于构建支持循环、分支、持久化和人机协作的复杂有状态智能体工作流。2、LangGraph 核心概念State状态State 是一个共享的数据结构代表了应用在当前时刻的“快照”。它贯穿整个图的生命周期所有节点都能读取它并向其写入更新。通常使用带有类型声明的 Schema如 TypedDict来定义并可以配置Reducer归并函数 来决定更新如何合并。例如add_messages 这个 Reducer 会让新消息追加到历史列表中而不是直接覆盖。Node节点节点是执行具体工作的函数。它接收当前 State 作为输入执行计算或产生副作用如调用 LLM、查询数据库、运行代码然后返回一个状态更新。节点内部可以包含任意逻辑既可以是纯粹的代码也可以是 LLM 驱动的步骤。Edge边边负责控制流程的走向即决定一个节点执行完毕后接下来该去哪个节点。边分为两种固定边Unconditional Edge永远指向一个确定的下一个节点。条件边Conditional Edge通过一个路由函数根据当前 State 动态决定下一个节点。这是实现循环、分支和复杂决策逻辑的关键。一个简单的类比如果把 State 想象成一块在流水线上传递的“公共黑板”那么 Node 就是各个工位上的工人读取黑板、干活、写回结果而 Edge 则是传送带决定把黑板送去哪个工位。StateGraphStateGraph 是 LangGraph 中用于定义和构建图的主要类。使用它的流程非常直观1. 定义 State 结构首先通过 Schema 定义状态包含哪些字段。2. 实例化 StateGraph用定义好的 State 类型来创建图构建器。3. 添加节点与边通过 add_node 注册节点函数通过 add_edge 或 add_conditional_edges 连接节点定义流转关系。START 和 END 是两个特殊节点分别标记图的入口和出口。4. 编译Compile调用 .compile() 方法。这一步会进行结构检查并可注入运行时配置如检查点保存器。编译后的图才是可执行的。3、LangGraph和LangChain的区别二者并非替代关系而是不同抽象层级的互补工具。LangChain v1.0 自身的 Agent 抽象也已构建在 LangGraph 之上。简单来说如果你的任务是一个清晰的 A→B→C 流水线用 LangChain 会更快捷当任务需要 Agent 反复思考、根据情况选择路径、甚至中途暂停等待人类决策时就应该使用 LangGraph 来构建其骨架。在实践中常见的模式是用 LangGraph 定义整体流程和状态流转而在图的节点内部复用 LangChain 的组件来具体执行模型调用或工具使用。条件判断条件判断通过条件边Conditional Edge 实现。它不是一条固定的路而是一个路由函数——接收当前 State执行 if/else 逻辑返回下一个节点的名称字符串。返回的名字必须是已注册的节点名否则编译会报错。from typing importLiteral from langgraph.graph import StateGraph, START, END # 路由函数返回的是“目的地节点名”而不是状态更新 defevaluate_response(state: State) - Literal[chatbot_gemini, end_node]: if state.get(is_good): returnend_node # 质量好 → 结束 returnchatbot_gemini # 质量差 → 换模型重试 builder StateGraph(State) builder.add_node(chatbot, chatbot_node) builder.add_node(evaluate_response, evaluate_response) # 路由函数本身也可作为节点 builder.add_node(chatbot_gemini, chatbot_gemini_node) builder.add_node(end_node, lambda s: s) builder.add_edge(START, chatbot) builder.add_edge(chatbot, evaluate_response) builder.add_conditional_edges(evaluate_response, evaluate_response) # 关键条件边 builder.add_edge(chatbot_gemini, end_node) builder.add_edge(end_node, END)并行执行并行执行通过 Send API 实现。在一个节点通常是路由函数中返回一个由多个 Send 对象组成的列表每个 Send 指定目标节点和该实例接收的数据。LangGraph 收到多个 Send 后会自动并行启动多个目标节点实例无需手动管理线程。所有并行实例完成后框架统一合并结果进入下一步。from langgraph.types import Send from typing import Annotated from operator import add classState(TypedDict): documents: list[str] summaries: Annotated[list[str], add] # 用 add 作为 Reducer并行结果自动合并 # Map 阶段为每篇文档生成一个 Send触发并行 fan-out deffan_out_to_workers(state: State) - list[Send]: return [ Send(summarize_doc, {document: doc}) for doc in state[documents] ] # Worker 节点处理单个文档返回摘要 defsummarize_doc(payload: dict): return {summaries: [llm_summarize(payload[document])]} builder StateGraph(State) builder.add_node(summarize_doc, summarize_doc) builder.add_conditional_edges(fan_out_router, fan_out_to_workers)循环循环通过边的回指实现。一个经典结构是agent 节点推理通过条件边判断是否需要调用工具如果需要流向 tools 节点行动tools 执行完毕后通过一条固定边直接指回 agent形成闭环。这个循环会持续直到条件边判断不再需要工具调用路由到 END 终止。from langgraph.graph import StateGraph, START, END from langgraph.graph.message import add_messages from typing import Annotated, Literal classAgentState(TypedDict): messages: Annotated[list, add_messages] defshould_continue(state: AgentState) - Literal[tools, __end__]: last state[messages][-1] if last.tool_calls: # 模型要求调用工具 returntools return__end__ # 不再需要工具 → 结束 builder StateGraph(AgentState) builder.add_node(agent, call_model) # 推理 builder.add_node(tools, tool_node) # 执行工具 builder.add_edge(START, agent) builder.add_conditional_edges(agent, should_continue) # 决定循环还是结束 builder.add_edge(tools, agent) # ★ 关键工具执行完回到 agent形成循环人机协作人机协作通过 interrupt() 函数在节点内部任意位置动态暂停图的执行。调用时LangGraph 利用检查点Checkpointer 自动保存当前完整状态并将 interrupt() 的参数作为 payload 返回给调用方。人类处理完毕后通过传入 Command(resume…) 恢复执行——resume 的值会成为 interrupt() 的返回值供节点后续逻辑使用。from langgraph.types import interrupt, Command def approval_node(state: State): # 暂停执行将待审批内容暴露给外部 decision interrupt({action: delete_file, path: /tmp/a.txt}) # 恢复后decision 来自 Command(resume...) 中的值 return {approved: decision} # --- 第一次调用触发中断并暂停 --- config {configurable: {thread_id: thread-1}} graph.invoke({messages: [...]}, config) # 返回的 __interrupt__ 字段中包含 payload供人类审核 # --- 人类审核后用 Command 恢复 --- graph.invoke(Command(resumeTrue), config) # True 成为 interrupt() 的返回值状态管理State 是贯穿全图的共享数据。当多个节点尤其是并行节点返回对同一个字段的更新时LangGraph 需要知道如何合并这些更新。默认行为是覆盖新值直接替换旧值。但通过 Annotated 为字段挂载一个 Reducer 函数可以改变合并策略Reducers 接收 (当前值, 新值)返回合并后的结果。Reducer 必须是确定性的以保证并行场景下最终状态一致。from typing import Annotated, TypedDict from langgraph.graph.message import add_messages classState(TypedDict): # 挂载 add_messages Reducer新消息“追加”到历史而非覆盖 messages: Annotated[list, add_messages] # 没有 Annotated默认行为是“覆盖”新值直接替换旧值 temperature_unit: str # 节点返回增量 defsome_node(state: State): return { messages: [AIMessage(content新回复)], # 会被 add_messages 追加 temperature_unit: 华氏度, # 直接覆盖旧值 }4、LangGraph 5大核心优势持久化执行 (Durable Execution)让 Agent 拥有“不死之身”。它不仅仅保存当前的数据状态更保存了整个执行上下文。这意味着无论遇到什么系统故障或中断Agent 都可以从断点处无缝恢复确保复杂的建造过程永不中断。完整的内存管理 (Complete Memory)赋予 Agent 真正的“上下文感知”。它完美融合了短期工作记忆用于当前任务的持续推理与长期持久记忆跨会话保留信息让智能体不仅能记住刚才发生了什么还能记住过去的知识与偏好。人在回路 (Human-in-the-Loop)实现可控的“人机协同”。提供了强大的中断机制允许开发者在工作流的关键节点随时按下“暂停键”让人类架构师进行介入、审核、修改状态或提供引导确认无误后再继续执行极大地提升了高风险任务的可靠性。生产级可靠性 (Production-Grade Reliability)提供工业级的“稳定性底座”。不同于实验室项目LangGraph 已经在 Klarna、Replit 等知名公司的真实业务场景中得到了实战验证能够为复杂的 Agent 系统提供企业级、工业级的稳定运行保障。深度可观测性 (Deep Observability)让执行过程“有迹可循”。通过与 LangSmith 的无缝集成LangGraph 能够将极其复杂的执行路径、节点间的数据流转以及模型调用过程进行可视化。这让开发者能够清晰地追踪每一次决策极大地降低了调试和排错的难度。5、LangGraph 在 Agent 中的核心作用LangGraph 的价值在于为 Agent 提供了生产级的基础设施使其能够可靠地处理复杂任务。实现复杂控制流原生支持循环如 ReAct 的“思考-行动-观察”循环和条件分支让 Agent 能够根据中间结果动态调整策略而非执行死板的线性步骤。持久化与容错通过检查点Checkpointer 机制在每一步执行后自动保存 State 快照。这带来了持久执行能力——Agent 在失败后可以从上次中断处精确恢复也支持“时间旅行”式的调试和回放。人机协作Human-in-the-loop可以在图的特定节点设置中断Interrupt暂停执行等待人类审核、修改状态或提供指令后再继续从而在自动化流程中嵌入必要的监督。混合确定性逻辑与 AI允许在同一张图中混合确定性的、手写的代码步骤和LLM 驱动的 Agent 步骤。例如将数据校验、API 调用等需要可靠性的环节用代码固化而将推理、决策等环节交给 LLM实现精细化的控制。多 Agent 编排其图结构天然适合构建多 Agent 系统可以清晰地定义多个 Agent 之间的协作、委派和通信关系。LangGraph应用场景决策LangGraph应用场景workflow和LangGraph融合场景LangGraph相关实践HelloWorld 示例文章写作工作流如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取

相关推荐

Information Fusion 2027 | SD-CR:先判断结构与退化的“冲突”,再恢复与融合!
Information Fusion 2027 | SD-CR:先判断结构与退化的“冲突”,再恢复与融合!

结构与退化 协同推理 Information Fusion 2027|SD-CR|红外可见光融合 在弱光、雾霾、噪声等环境下,可见光减弱,但是红外目标轮廓仍然有可能比较清楚。是应该首先依靠红外结构来补充细节,还是应该先修复可见光的亮度… · 2026/11/4 7:09:30

上门喂猫订单越接越多,怎么管才不乱?代喂服务的管控方法
上门喂猫订单越接越多,怎么管才不乱?代喂服务的管控方法

上门喂猫订单越接越多,怎么管才不乱?代喂服务的管控方法 上门喂猫是这两年宠物服务里增长最快的新业态。逻辑很顺:养猫的人多、猫不宜寄养、白领出差逢年过节刚需——一家店把代喂做起来,等于在洗护寄养之外多开一条产线&#xff… · 2026/11/4 7:09:30

学术速递|2026年9月 arXiv 图像融合论文汇总(09.01–09.30)15 篇最新成果
学术速递|2026年9月 arXiv 图像融合论文汇总(09.01–09.30)15 篇最新成果

arXiv 9 月(09.01–09.30)学术速递,共计 15 篇最新成果。 检索关键词:Image Fusion、Infrared-Visible、Infrared Image、Visible Image,并剔除一些无关论文。 检索网站:www.arxivdaily.com 往期推荐 · 2026/11/4 7:09:30

AndroidGen-GLM-4-9B性能优化技巧:提升Android代理效率的10个方法
AndroidGen-GLM-4-9B性能优化技巧:提升Android代理效率的10个方法

AndroidGen-GLM-4-9B性能优化技巧:提升Android代理效率的10个方法 【免费下载链接】androidgen-glm-4-9b 项目地址: https://ai.gitcode.com/zai-org/androidgen-glm-4-9b AndroidGen-GLM-4-9B是智谱AI推出的一款针对Android开发的大语言模型,能… · 2026/11/4 19:11:33

Driver Store Explorer 驱动清理指南:快速安全释放系统盘空间
Driver Store Explorer 驱动清理指南:快速安全释放系统盘空间

Driver Store Explorer 驱动清理指南:快速安全释放系统盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 如果你的系统盘空间正被悄悄吃掉好几个 GB,而在&qu… · 2026/11/4 19:11:33

三月七小助手使用指南:星穹铁道日常清体力一键搞定,从安装到深度定制
三月七小助手使用指南:星穹铁道日常清体力一键搞定,从安装到深度定制

三月七小助手使用指南:星穹铁道日常清体力一键搞定,从安装到深度定制 【免费下载链接】March7thAssistant 日常交给三月七,开拓留给你。《崩坏:星穹铁道》开源自动化助手。 项目地址: https://gitcode.com/gh_mirrors/ma/March7… · 2026/11/4 19:11:33

三步装好 Bilibili-Evolved:让 B 站增强脚本按你的意愿运转
三步装好 Bilibili-Evolved:让 B 站增强脚本按你的意愿运转

三步装好 Bilibili-Evolved:让 B 站增强脚本按你的意愿运转 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved 写给想自己掌控 B 站页面体验的新手。Bilibili-Evolved 是一款运行在油… · 2026/11/4 19:11:33

Whisky 上手实测:在 Mac 上运行 Windows 软件的完整步骤与边界
Whisky 上手实测:在 Mac 上运行 Windows 软件的完整步骤与边界

Whisky 上手实测:在 Mac 上运行 Windows 软件的完整步骤与边界 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky Whisky 是一个用 SwiftUI 写成的 Wine 封装工具&#xff0… · 2026/11/4 19:11:33

可视化编程编辑器 Blockly 一文拆解:拖块如何生成五门语言代码
可视化编程编辑器 Blockly 一文拆解:拖块如何生成五门语言代码

可视化编程编辑器 Blockly 一文拆解:拖块如何生成五门语言代码 【免费下载链接】blockly The web-based visual programming editor. 项目地址: https://gitcode.com/gh_mirrors/bloc/blockly 在网页里嵌一个编程界面,自己从零做,光处… · 2026/11/4 19:10:32

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码