LangGraph 智能体开发实战:从链式编排到图式编排
这里写自定义目录标题欢迎使用Markdown编辑器引言当 Chain 不够用的时候一、为什么需要图式编排二、LangGraph 的核心概念2.1 State状态是图的灵魂四、多 Agent 协作与并行五、工程化实践要点六、总结新的改变功能快捷键合理的创建标题有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能丰富你的文章UML图表流程图FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好 这是你第一次使用# LangGraph 智能体开发实战从链式编排到图式编排引言当 Chain 不够用的时候如果你在过去一年里接触过大模型应用开发LangChain这个名字大概率不会陌生它几乎成了快速搭建 RAG 或简单工具调用应用的脚手架代名词。但当你真正试图用它构建一个逻辑复杂、状态持久、需要根据中间结果动态调整执行路径的智能体Agent时可能会感到力不从心。那种感觉就像用乐高积木搭一个静态模型很顺手但要让它动起来还得自己手动去拧发条、调齿轮。这正是 LangGraph 出现的背景。简单来说LangChain 提供的是链Chain——一种线性的、预定义顺序的执行流而 LangGraph 提供的是图Graph——一种可以包含循环、分支和状态管理的执行流。从链到图的跃迁意味着智能体从按剧本走升级到了能自己看地图找路。一、为什么需要图式编排先看一个真实场景用户提出一个模糊的初始请求——“帮我分析上季度的销售数据并给出下季度的预测建议”。这个任务要求智能体自主决定先去数据库拉取数据接着清洗数据再选择分析模型生成报告最后甚至能根据初步报告发现的问题发起新一轮的细化查询。这种带有循环和状态记忆的任务用传统的 Chain 架构来堆砌代码会迅速变得难以维护和调试。因为 Chain 是静态的、线性的无法表达如果结果不理想就重试根据上一步结果决定下一步这类动态逻辑。LangGraph 的核心价值在于把 Agent 的工作流建模为一个有向图。图中的每个节点Node代表一个可执行的动作调用 LLM、执行工具、读写状态边Edge定义了动作执行后的流转条件。整个图共享一个持久化的状态State随着工作流的推进而更新。这种设计天然支持循环、分支、并行和状态管理。二、LangGraph 的核心概念2.1 State状态是图的灵魂状态是 LangGraph 中最核心的概念。它定义了工作流执行过程中需要保存和传递的数据。每个节点执行后都会更新状态后续节点可以访问前面节点的结果。状态的设计直接决定了图的表达能力。fromtypingimportTypedDict,Annotatedfromlanggraph.graphimportStateGraphclassAgentState(TypedDict):messages:list# 对话历史task:str# 当前任务data:dict# 中间数据retries:int# 重试计数### 2.2 Node节点是执行单元节点是图的基本执行单元可以是调用 LLM、执行工具、处理数据等任意函数。每个节点接收状态作为输入返回状态更新作为输出。### 2.3 Edge边定义流转逻辑边定义了节点之间的流转关系。LangGraph 支持两种边普通边固定流转和条件边根据状态动态决定流向。条件边是实现智能决策的关键——模型判断结果是否满意决定是继续还是结束。### 2.4 Checkpoint检查点与持久化LangGraph 内置了检查点机制可以在任意节点保存状态快照。这意味着任务中断后可以从断点恢复支持时间旅行调试回放任意步骤支持人机协作在关键节点暂停等待人工确认。## 三、实战构建一个带循环和工具调用的 Agent下面用 LangGraph 构建一个能自主完成数据分析任务的 Agent它包含三个节点规划Plan、执行Execute、检查Check并通过条件边实现循环。 pythonfromlanggraph.graphimportStateGraph,ENDfromlangchain_openaiimportChatOpenAI llmChatOpenAI(modelgpt-4o,temperature0)# 节点 1规划defplan_node(state):taskstate[task]planllm.invoke(f为任务制定执行计划{task})return{plan:plan.content,retries:state.get(retries,0)}# 节点 2执行defexecute_node(state):planstate[plan]resultllm.invoke(f按计划执行{plan})return{data:result.content}# 节点 3检查defcheck_node(state):datastate[data]verdictllm.invoke(f检查结果是否满足要求只回答 yes 或 no{data})return{satisfied:verdict.content.strip().lower()yes}# 条件边根据检查结果决定是否重试defshould_continue(state):ifstate.get(satisfied):returnendifstate.get(retries,0)3:returnendreturnretry# 构建图graphStateGraph(AgentState)graph.add_node(plan,plan_node)graph.add_node(execute,execute_node)graph.add_node(check,check_node)graph.set_entry_point(plan)graph.add_edge(plan,execute)graph.add_edge(execute,check)graph.add_conditional_edges(check,should_continue,{end:END,retry:plan})appgraph.compile()resultapp.invoke({task:分析上季度销售数据并给出预测,messages:[]})print(result[data])这段代码展示了 LangGraph 最核心的能力循环。当检查节点判定结果不满足要求时流程会回到规划节点重新执行直到满意或达到重试上限。这种规划-执行-检查-再规划的循环正是 Agent 区别于普通 Chain 的本质特征。四、多 Agent 协作与并行LangGraph 的图模型天然支持多 Agent 协作。你可以把多个 Agent 作为图中的节点通过边定义它们的协作关系顺序协作Agent A 完成后结果传给 Agent B。适合流水线式任务。并行协作多个 Agent 同时执行最后汇总结果。适合可以拆分的独立子任务。LangGraph 支持扇出fan-out和扇入fan-in模式。层级协作一个主管Agent 负责任务分解和调度多个工人Agent 执行具体任务。这是最常用的多 Agent 模式。fromlanggraph.graphimportStateGraph# 并行执行两个子任务graph.add_node(researcher,research_agent)graph.add_node(analyst,analysis_agent)graph.add_node(aggregator,aggregate_agent)graph.add_edge(start,researcher)graph.add_edge(start,analyst)graph.add_edge(researcher,aggregator)graph.add_edge(analyst,aggregator)并行协作能显著提升任务完成速度。比如竞品分析任务可以让信息检索 Agent和数据提取 Agent并行工作最后统一汇总整体耗时能缩短一半以上。五、工程化实践要点第一状态设计要克制。状态是图的共享内存设计得越复杂调试越困难。建议只保存必要的数据中间结果及时清理避免状态膨胀。第二善用检查点。生产环境一定要开启检查点持久化这样任务中断可以恢复也方便回放调试。检查点可以存储到 SQLite、PostgreSQL 等外部存储。第三控制循环次数。Agent 循环是烧钱的重灾区。一定要设置最大迭代次数和预算上限防止 Agent 陷入死循环或无限重试。第四可观测性。LangGraph 支持逐步追踪执行过程配合 LangSmith 可以可视化查看每个节点的输入输出。生产环境务必开启追踪否则 Agent 出问题根本无从排查。第五人机协作。对高风险操作删除数据、发送消息、支付在关键节点设置人工确认断点让 Agent 暂停等待人工审批。这是 Agent 落地到生产环境的安全底线。六、总结LangGraph 把 Agent 开发从写代码提升到了设计图的层次。它的核心贡献不是提供了多少现成组件而是建立了一套表达复杂工作流的模型状态驱动、节点执行、条件流转、检查点持久化。这套模型让 Agent 从玩具走向生产成为可能。对于开发者建议的进阶路径是先理解 State、Node、Edge 三个核心概念然后用 LangGraph 重构一个已有的 Chain 应用体会图式编排的优势接着实现带循环和工具调用的 Agent最后尝试多 Agent 协作和检查点持久化。当你掌握了图式编排的思维你会发现 Agent 开发不再是玄学而是一门可以系统化、工程化的技术。Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持除了标准的Markdown编辑器功能我们增加了如下几点新功能帮助你用它写博客全新的界面设计将会带来全新的写作体验在创作中心设置你喜爱的代码高亮样式Markdown将代码片显示选择的高亮样式进行展示增加了图片拖拽功能你可以将本地的图片直接拖拽到编辑区域直接展示全新的KaTeX数学公式语法增加了支持甘特图的mermaid语法1功能增加了多屏幕编辑Markdown文章功能增加了焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置等功能功能按钮位于编辑区域与预览区域中间增加了检查列表功能。功能快捷键撤销Ctrl/CommandZ重做Ctrl/CommandY加粗Ctrl/CommandB斜体Ctrl/CommandI标题Ctrl/CommandShiftH无序列表Ctrl/CommandShiftU有序列表Ctrl/CommandShiftO检查列表Ctrl/CommandShiftC插入代码Ctrl/CommandShiftK插入链接Ctrl/CommandShiftL插入图片Ctrl/CommandShiftG查找Ctrl/CommandF替换Ctrl/CommandG合理的创建标题有助于目录的生成直接输入1次#并按下space后将生成1级标题。输入2次#并按下space后将生成2级标题。以此类推我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。如何改变文本的样式强调文本强调文本加粗文本加粗文本标记文本删除文本引用文本H2O is是液体。210运算结果是 1024.插入链接与图片链接: link.图片:带尺寸的图片:居中的图片:居中并且带尺寸的图片:当然我们为了让用户更加便捷我们增加了图片拖拽功能。如何插入一段漂亮的代码片去博客设置页面选择一款你喜欢的代码片高亮样式下面展示同样高亮的代码片.// An highlighted blockvarfoobar;生成一个适合你的列表项目项目项目项目1项目2项目3计划任务完成任务创建一个表格一个简单的表格是这么创建的项目Value电脑$1600手机$12导管$1设定内容居中、居左、居右使用:---------:居中使用:----------居左使用----------:居右第一列第二列第三列第一列文本居中第二列文本居右第三列文本居左SmartyPantsSmartyPants 是一个文本转换工具主要功能是将普通的 ASCII 标点符号自动转换为更美观的印刷体标点符号。例如原始符号转换后说明引号“引号”直引号变弯引号单引号‘单引号’直单引号变弯单引号--–两个连字符变短破折号---—三个连字符变长破折号...…三个点变省略号创建一个自定义列表MarkdownText-to-HTMLconversion toolAuthorsJohnLuke如何创建一个注脚一个具有注脚的文本。2注释也是必不可少的Markdown将文本转换为HTML。KaTeX数学公式您可以使用渲染LaTeX数学表达式 KaTeX:Gamma公式展示Γ ( n ) ( n − 1 ) ! ∀ n ∈ N \Gamma(n) (n-1)!\quad\forall n\in\mathbb NΓ(n)(n−1)!∀n∈N是通过欧拉积分Γ ( z ) ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) \int_0^\infty t^{z-1}e^{-t}dt\,.Γ(z)∫0∞​tz−1e−tdt.你可以找到更多关于的信息LaTeX数学表达式here.新的甘特图功能丰富你的文章2014-01-072014-01-092014-01-112014-01-132014-01-152014-01-172014-01-192014-01-21已完成进行中计划一计划二现有任务Adding GANTT diagram functionality to mermaid关于甘特图语法参考 这儿,UML图表可以使用UML图表进行渲染例如下面产生的一个序列图王五李四张三王五李四张三李四想了很长时间, 文字太长了不适合放在一行.你好李四, 最近怎么样?你最近怎么样王五我很好谢谢!我很好谢谢!打量着王五...很好... 王五, 你怎么样?关于UML图表语法参考 这儿,流程图链接长方形圆圆角长方形菱形关于Mermaid语法参考 这儿,FLowchart流程图我们依旧会支持flowchart.js的流程图语法Created with Raphaël 2.3.0开始我的操作确认结束yesno关于Flowchart流程图语法参考 这儿.导出与导入导出如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到文章导出生成一个.md文件或者.html文件进行本地保存。导入如果你想加载一篇你写过的.md文件在上方工具栏可以选择导入功能进行对应扩展名的文件导入继续你的创作。mermaid语法说明 ↩︎注脚的解释 ↩︎

相关新闻

如何快速重置Navicat试用期:navicat-key一键清理注册表实操指南

如何快速重置Navicat试用期:navicat-key一键清理注册表实操指南

如何快速重置Navicat试用期:navicat-key一键清理注册表实操指南 【免费下载链接】navicat-key navicat-key 项目地址: https://gitcode.com/gh_mirrors/na/navicat-key 试用期又到期了。你打开 Navicat 准备跑明天的查询,屏幕上却弹出"试用期…

2026/8/15 4:41:16 阅读更多 →
前端工程师转型Agent开发:从UI构建到智能体设计的心得与实践

前端工程师转型Agent开发:从UI构建到智能体设计的心得与实践

1. 从“画页面”到“造大脑”:一个前端工程师的Agent开发转型心路几年前,如果你问一个前端工程师的核心竞争力是什么,答案多半是“精通Vue/React”、“像素级还原设计稿”、“性能优化”。但今天,这个答案正在发生深刻的变化。我&…

2026/8/15 4:41:14 阅读更多 →
深度解析网站建设logo设计与品牌价值的融合之道,为何它决定企业在线生存的成败与未来

深度解析网站建设logo设计与品牌价值的融合之道,为何它决定企业在线生存的成败与未来

很多人有个误区,觉得公司网站搞出来就行,Logo不就是画个图嘛,随便找个大学生或者模板套一下就能用,反正网上谁也没空盯着你的图标看半天。这种想法其实挺危险的。今天咱们不聊那些高大上的理论,就聊聊最实在的、跟每一位老板、每一位创业者、每一个运营者都息息相关的真事…

2026/8/15 11:06:19 阅读更多 →

最新新闻

项目实战-LAMP与LNMP

项目实战-LAMP与LNMP

项目实战:LAMP 部署 WordPress 博客 & LNMP 部署 ECShop 商城上一篇我们学了 MariaDB 基础,这一篇直接上手「项目实战」——用两种最经典的 Web 架构,分别部署两个真实站点: LAMP(Linux Apache MariaDB PHP)→ 部署 WordPress 博客系统…

2026/8/16 2:49:47 阅读更多 →
高并发下MySQL数据安全:悲观锁、乐观锁与队列化方案实战解析

高并发下MySQL数据安全:悲观锁、乐观锁与队列化方案实战解析

1. 项目概述:高并发下的数据安全困境做后端开发或者数据库运维的朋友,肯定都遇到过这样的场景:一个热门商品秒杀,或者一个关键配置项被多个服务节点同时更新,数据库里同一行数据在极短时间内被多次修改。这时候&#x…

2026/8/16 2:49:47 阅读更多 →
别人说你不像测出的MBTI怎么办?自评与他评的对照方法

别人说你不像测出的MBTI怎么办?自评与他评的对照方法

“我测出来是这个类型,但朋友都说不像”是常见困惑。自评看到的是自己的动机、消耗和内心取舍,他评看到的则是外显行为。两种观察角度不同,出现冲突并不等于其中一方一定错了,也不需要立刻推翻结果或要求别人认可。 为什么自评与他…

2026/8/16 2:49:47 阅读更多 →
[应用方案] GALT61120套件_TPS92518的电流简单调节

[应用方案] GALT61120套件_TPS92518的电流简单调节

一、前言 GALT61120前灯评估板套件,BUCK电路使用的是TPS92518HVQPWPRQ1芯片。评估板默认是输出300mA电流,那如果需要输出500mA应该如何调节?我整理了学习笔记和调试过程以供参考。二、TPS92518芯片特性 1、基本特性 TPS92518是德州仪器推出的…

2026/8/16 2:49:47 阅读更多 →
蚂蚁Ling 3.0 Tiny MoE大模型本地部署与实战评测指南

蚂蚁Ling 3.0 Tiny MoE大模型本地部署与实战评测指南

这次我们来看一个刚发布就引起关注的开源大模型——蚂蚁集团推出的 Ling 3.0 Tiny。它最核心的看点在于,这是一个参数规模为 79 亿(7.9B)的“小”模型,却采用了 MoE(Mixture of Experts,专家混合&#xff0…

2026/8/16 2:49:47 阅读更多 →
Vibe Coding 实战指南:构建 AI 辅助开发工作流,提升编程效率

Vibe Coding 实战指南:构建 AI 辅助开发工作流,提升编程效率

最近在尝试将 AI 融入日常开发流程时,发现了一个非常有趣且高效的新范式——Vibe Coding。这个概念由吴恩达教授(Andrew Ng)在 DeepLearning.AI 的课程中提出,它并非一个具体的工具,而是一种全新的开发理念和工作流。简…

2026/8/16 2:48:47 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →