LangGraph基础介绍与LangGraph组件 📅 发布时间:2026/7/8 22:24:03 👁️ 浏览次数: 新书预告《LangGraph智能体设计模式与多智能体开发》3.1.1 LangGraph基础介绍我们知道LangGraph是一个基于图结构的开源框架用于创建动态代理Agent及多代理工作流。作为LangChain生态系统的一部分它也可以独立运行核心优势在于支持循环流程、细粒度可控性和内置持久性解决了传统有向无环图DAG框架无法处理循环逻辑的局限性。1.核心特性与技术原理循环与分支LangGraph允许定义包含循环和条件分支的工作流例如代理可多次调用工具优化结果如改进RAG管道的检索质量适应复杂任务需求。状态管理通过节点执行步骤和边执行顺序与条件构建图结构状态在节点间传递并动态更新。例如节点可调用LLM或工具条件边根据状态决定下一步操作。持久性与人工干预自动保存每一步状态支持暂停/恢复执行如错误恢复或时间回溯并允许人类审核或修改代理的下一步行动实现“人在环Human-in-the-Loop”协作。流式支持与集成实时流式传输每个节点的输出包括令牌流并与LangChain无缝集成提升开发效率。2. 应用场景LangGraph适用于自动化复杂业务流程客户服务构建多轮对话机器人提供个性化支持。数据分析代理协同检索多源信息并生成报告。流程自动化如订单处理、库存管理等需状态跟踪的场景。教育/推荐系统AI教师动态调整教学策略或基于用户行为生成推荐。3. 示例与部署用户可通过Python代码定义图结构如分类查询→生成响应→循环优化并利用内置MemorySaver保存对话上下文确保长期任务连续性。其商业平台支持生产环境部署适合构建高可控、高可靠的智能系统。LangGraph通过图计算模型灵感源自Pregel和ApacheBeam实现了灵活的任务编排为开发动态AI应用提供了底层支持推动多代理协作与自动化演进。4. 一个简单、完整的LangGraph智能体我们首先实现一个简单、完整的LangGraph智能体代码如下from langgraph.graph import StateGraph,ENDimport bigmodelfrom pydantic import BaseModelclass AgentState(BaseModel):message:strdef chatbot(state:AgentState):messagestate.messagellm bigmodel.llmreply llm.invoke(message).contentreturn {message:reply}graph_builder StateGraph(AgentState)graph_builder.add_node(chatbot)graph_builder.set_entry_point(chatbot)graph_builder.add_edge(chatbot, END)graph graph_builder.compile()if__name__ __main__:reply graph.invoke({message:你好})print(reply)输出结果如下{message: 你好很高兴见到你有什么我可以帮忙的吗}这段代码实现了一个极简的LangGraph聊天机器人核心是通过图结构串联“输入处理输出”的完整流程让大模型的对话能力以结构化方式运行。代码首先定义了AgentState状态模型该模型仅包含message字段既能够存储用户输入的初始消息又能够承载大模型返回的回复成为贯穿整个流程的状态载体。核心处理逻辑封装在chatbot函数中它接收AgentState实例后提取其中的message内容调用bigmodel中的大模型LLM进行处理获取回复内容后将其重新存入message字段并返回完成“接收消息调用大模型生成回复”的核心逻辑闭环。LangGraph的图结构搭建是这段代码的关键它通过StateGraph构建了一个极简的线性流程。首先创建graph_builder对象并绑定AgentState确保流程中状态的传递格式统一接着将chatbot函数添加为图中的唯一节点该节点既是处理逻辑的载体也是流程的核心执行单元随后设置chatbot为流程的入口点意味着调用图时会直接触发该节点的逻辑最后通过add_edge将chatbot节点与END连接明确节点执行完成后流程即终止形成“单一节点 线性流转”的简洁图结构。代码的运行逻辑直观且易理解在main函数中通过graph.invoke({message:你好})传入初始用户消息触发图的执行首先创建包含该消息的AgentState实例传入chatbot节点节点调用大模型处理“你好”并生成回复更新AgentState中的message字段流程执行到END后终止返回包含最终回复的状态对象最后打印输出结果。这段代码的核心价值在于用最少的代码展示了LangGraph的核心逻辑——节点承载处理逻辑、状态模型传递数据、图结构定义流转路径既适合入门理解LangGraph的基础用法也可以在此基础上扩展更复杂的对话功能如多轮对话记忆、分支处理等。3.1.2 LangGraph组件LangChain框架基于“链”的模型调用与流程设计虽然其能够较好地完成任务但是简单的链不具备循环能力对于多分支任务则需要一个具备更精细控制能力的框架来支持复杂场景的LLM应用。LangGraph的出现宣布智能体的使用进入多智能体框架领域LangGraph是基于图论运作的它提供了一种状态机的技术可与驱动循环代理调用实现有向有环图。因此LangGraph有以下三个关键元素。State状态一个共享的数据结构表示应用程序的当前快照。它可以是任何Python类型但通常是TypedDict或PydanticBaseModel。Nodes节点编码代理逻辑的Python函数。它们接收当前的State作为输入执行一些计算或辅助作用并返回一个更新后的State。Edges边Python函数基于当前的State决定接下来执行哪个Node。它们可以是条件分支或固定转换。通过组合Nodes和Edges可以创建复杂、循环的工作流随着时间的推移演化State。不过真正的强大之处在于LangGraph如何管理这个State。需要强调的是Nodes和Edges仅仅是Python函数——它们可以包含LLM也可以只是普通的Python代码。简而言之Nodes是用于工作的模块Edges告诉我们接下来该做什么。LangGraph的底层图算法使用消息传递来定义一个通用程序。当一个Node完成其操作时它会沿着一条或多条边发送消息给其他节点。这些接收节点随后执行它们的函数将结果消息传递给下一组节点过程继续且程序以离散的“超级步骤”进行。一个超级步骤可以被视为对图节点的一次迭代。并行运行的节点属于同一超级步骤而顺序运行的节点属于不同的超级步骤。在图执行开始时所有节点都处于非活动状态。当一个节点在其任何输入边或“通道”上收到新消息状态时它会变为活动状态。活跃节点运行其函数并响应更新。在每个超级步骤结束时没有收到消息的节点会通过标记自己为非活动状态来停止投票。图执行在所有节点都为非活动且没有消息在传递时终止。在定义图形时首先要做的是定义图形的State。State包含图形的模式以及指定如何应用更新到State的reducer函数。State的模式将是所有Nodes和Edges在图中的输入模式可以是TypedDict或Pydantic模型。所有节点将会发出对State的更新然后通过指定的reducer函数应用这些更新。试想一下如果让大模型比如Qwen、DeepSeek、GLM等以及各种工具查询天气的、计算数据的、调用数据库的像一个小团队一样协作既能分工干活又能根据情况灵活调整流程比如“先让大模型想查询思路再调用工具查数据最后让大模型整理结果”甚至遇到问题还能“返工”比如数据不对就重新查。LangGraph就是为这个需求而生的。它的核心想法特别简单给这些“团队成员”大模型、工具画一幅“协作地图”让它们知道谁先上、谁后上数据怎么传遇到岔路该走哪条路——这幅“地图”就是所谓的“图结构”。为了让这幅“地图”能落地LangGraph定义了三个最基础的“地图规则”节点、边和状态。我们一个个用大白话讲明白。1. 节点Nodes每个干活的“小站”节点其实就是“团队里具体干活的角色”——无论是能思考的大模型还是能动手的工具甚至是能统筹安排的“小管家”比如Agent负责决定下一步做什么都能当节点。举个例子如果你要做“查询天气并整理成文案”的任务节点可以是大模型节点负责理解需求比如“查询北京今天天气”生成工具能懂的查询指令。天气工具节点接收指令实际去查天气数据。文案节点接收天气数据整理成自然的话比如“北京今天晴朗21℃适合户外活动”。简单来说节点就是“谁来干活”每个节点都有一个明确的任务要么思考要么动手。2. 边Edges连接小站的“路”还能当“指路牌”只有干活的“小站”还不够还得告诉它们“怎么配合”——这就是“边”的作用。它本质是“节点之间的连接”但不只是“传东西”还能“做决策”。可以把边分成两种“路”1“传送带”路负责传数据。例如“天气工具节点”查出“北京21℃”这条边就把这个数据送到文案节点让文案节点有素材可用。2“岔路口”路负责做选择。例如查询天气时可能遇到两种情况“工具查到数据了”或“工具没查到比如城市名错了”。这时边就像“指路牌”如果查到了就把数据传给“文案节点”如果没查到就把“查不到”的消息传回“大模型节点”让大模型提醒用户“是不是城市名错了”。因此边不仅是“路”还是“智能指路牌”——让整个协作流程更灵活能应对不同情况。3. 状态空间State记录全程的“共用记事本”现在问题来了如果流程需要“绕圈”比如“查数据→大模型看数据不对→重新查数据”或者多个节点需要共享信息比如“文案节点不仅要天气数据还要知道用户原本的需求是‘给老人看要简单’”该怎么记这些信息这就需要“状态”了——你可以把它理解成团队共用的“记事本”。每次启动一个任务比如“查询北京天气并整理成文案”这个“记事本”就会打开。每个节点干完活都会在“记事本”上更新信息比如天气工具节点写上“北京晴朗21℃”文案节点写完文案后再补上“最终文案XXX”。无论是“传送带”传数据还是“岔路口”做选择都要先看“记事本”中的内容比如“岔路口”要判断“记事本中有没有天气数据”再决定走哪条路。直到任务结束这个“记事本”才会关掉。关键是这个“记事本”不是固定的——每个节点都会动态更新它后续的节点总能拿到最新的信息哪怕流程绕圈也不会乱。例如大模型节点看到“记事本”中的天气数据不对就会让天气工具节点重新查询查询完再更新“记事本”保证流程能顺畅走下去。4. 总结LangGraph其实就是“AI协作地图”简单地说LangGraph的逻辑可以浓缩成3个要点见图3-3节点干活的“小站”大模型、工具。边连接小站的“路指路牌”传数据、做选择。状态State记录全程的“共用记事本”保证信息不丢、流程能循环。图3-3 协同合作的LangGraph有了这三样无论是简单的“查天气→写文案”还是复杂的“分析数据→生成报告→用户提意见→修改报告”都能像搭积木一样灵活搭建——这就是LangGraph的核心价值让大模型和工具从“单打独斗”变成“灵活协作的团队”。
UINO智能问数是什么?为什么它比传统NL2SQL更适合企业级复杂场景 很多团队在建设“智能问数”时,第一反应是NL2SQL。但一旦进入多库、多表、多语义口径的企业环境,准确率和泛化能力就会迅速下降。UINO(优锘科技)的数据智能引擎,核心目标不是把自然语言硬翻译成一条SQL,而是… 2026/7/8 15:49:59
招标|国网甘肃电力2026年第二次物资公开招标采购 2026年3月6日,国网甘肃省电力公司发布2026年第二次物资公开招标采购公告(招标编号:272602)。本次招标共划分31个分标,招标情况如下:查看完整信息,登录AI标讯小程序本次采购涵盖电网运行的关键设… 2026/7/4 7:24:39
Linux-ls命令学习 ls为list的缩写,是linux中常用的命令,用来打印当前目录的清单。若指定其他目录,就会显示指定目录的文件和文件夹清单。通过ls指令不仅可以输出文件夹包含的文件,也可查看文件的权限、目录信息等。1. 命令格式: ls [选项… 2026/5/17 11:06:19
AIGC检测率太高怎么办?2026年最全降AIGC率方法与工具推荐 一、当前AIGC检测的现实困境每年到了毕业季,无数大学生和研究生都会面临同一个难题:AIGC检测到底该怎么做?根据教育部最新统计数据,2026年全国高校毕业生人数预计将突破1300万大关,论文写作压力空前巨大。许多同学在面… 2026/7/9 2:28:04
ICM-42688-P国内现货供应商 ICM-42688-P是一款高性能的六轴MEMS运动传感器,集成了三轴陀螺仪和三轴加速度计。这款芯片因其卓越的性能、紧凑的设计以及低功耗特性,在智能设备、无人机、工业自动化及可穿戴设备等多个领域得到了广泛应用。本文将针对ICM-42688-P在国内市场上的供应情… 2026/7/9 2:26:03
从零到一:3步快速构建工业级STM32温度控制系统 从零到一:3步快速构建工业级STM32温度控制系统 【免费下载链接】STM32 项目地址: https://gitcode.com/gh_mirrors/stm322/STM32 想要轻松掌握ARM Cortex-M微控制器开发,构建专业的嵌入式控制系统?这个精心设计的STM32实战项目将带你… 2026/7/9 2:24:03
混元3d生成3d模型 blender使用Quad Remesher Bridge 1.3.2重拓扑 mixmo 或者autoRigPro骨骼绑定 豆包进行人物ip T-POS 3视图设计 Tencent Hunyuan 3D 混元3d进行3d模型生成 blender 中 用 插件 Quad Remesher Bridge 进行自动化拓扑 拓补完成后材质丢失问题暂时没有解决 说是需要高模烘培低模 简称贴图烘培 需要烘焙插件 Bake Wrangler 插件 进行节点化烘培 CtrlShiftT 不… 2026/7/9 2:22:02
Bash 自动化脚本最佳实践:错误处理、日志记录、参数解析与定时任务封装 Bash 自动化脚本最佳实践:错误处理、日志记录、参数解析与定时任务封装 Bash 是 Linux 运维工程师最常用的脚本语言,几乎所有 Linux 发行版都内置支持,无需额外安装依赖。然而,许多工程师写出的 Bash 脚本缺乏健壮性——遇到错误… 2026/7/9 2:22:02
百货中心供应链管理系统-ssm 本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于ssm百货中心供应链管理系统通过Mysql数据库连接数据库 http://localhost:8080/… 2026/7/9 2:20:00
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08