为什么需要LangGraph,当链式调用不够用的时候
为什么需要LangGraph当链式调用不够用的时候前面写了很多LangChain的链式调用。LLMChain、SequentialChain、路由链能处理大部分场景。但你迟早会遇到一个问题。有些任务用链式调用怎么写都别扭。任务有分支根据中间结果决定走哪条路。任务有循环做完了检查一下不满意要重来。任务有状态中间产生的信息要在多个步骤之间传递和修改。这些场景链式调用的一条直线走到底的模式就不够用了。你需要图。这一篇我们讲为什么需要LangGraph它跟LangChain的链式调用有什么区别什么时候该用它。链式调用的局限先看链式调用为什么不够用。链式调用的本质是流水线。输入进来经过一串固定的步骤输出结果。每一步的输出是下一步的输入像管道一样一路向前。这种模式简单清晰适合线性的任务。写文章、翻译、摘要这些任务从头到尾一条线用链式调用很自然。但真实世界的任务不总是线性的。条件分支。Agent执行一个任务中间需要做判断。如果搜索到了相关资料就走分析路径没搜到就走提问路径。链式调用不支持如果…就走A路径否则走B路径。循环重试。Agent写了一段代码测试发现报错了需要修改后重新测试。这个写-测-改-再测的过程是循环的。链式调用只能走一遍不能循环。状态管理。复杂任务中间会产生很多状态信息。当前进行到第几步、已经收集了哪些信息、哪些步骤完成了哪些没完成。这些状态需要在多个步骤之间共享和更新。链式调用没有显式的状态管理机制。并行执行。有些任务可以并行。同时搜索三个不同的关键词同时分析多个文档。链式调用是串行的不方便做并行。LangGraph就是用来解决这些问题的。LangGraph是什么LangGraph是LangChain团队推出的一个扩展库专门用来构建有状态的、多步骤的复杂Agent工作流。核心概念是图。把Agent的工作流表示成一个有向图。图的节点是处理步骤图的边定义了步骤之间的跳转关系。跟链式调用的区别在于图可以表达更复杂的控制流。图可以有条件边。从节点A出来根据条件决定走向节点B还是节点C。这就是条件分支。图可以有环。从节点B走到节点C再从节点C走回节点B。这就是循环。图有全局状态。所有节点共享一个状态对象每个节点可以读取和修改状态。这就是状态管理。图可以有并行节点。多个节点同时执行等全部完成后再继续。这就是并行。什么时候用LangGraph不是所有场景都需要LangGraph。简单的任务用LangChain的链式调用就够了没必要上LangGraph。LangGraph适合这些场景。多步骤决策任务。任务需要多个步骤步骤之间有依赖关系和条件判断。比如调研一个技术方案这个任务需要先搜索资料然后判断资料够不够够了就分析总结不够就换个关键词重新搜。需要反思和重试的任务。Agent做完一步以后要检查结果不对就重来。比如写代码-测试-修bug-再测试的循环。多Agent协作。多个Agent分工合作有的负责规划有的负责执行有的负责审查。Agent之间有消息传递和状态共享。复杂的状态管理。任务执行过程中需要维护复杂的状态比如对话历史、任务进度、中间结果。需要在多个步骤之间共享和更新。如果你的任务是线性的、单步的、不需要循环和分支的就用LangChain的链式调用。更简单、更好维护。如果你的任务有分支、有循环、有复杂状态就上LangGraph。一个直观的例子来看一个LangGraph能做但链式调用做不了的例子。假设我们要做一个研究Agent。用户给一个研究主题Agent先搜索资料然后判断资料够不够。够了就写总结不够就换个角度再搜。写完总结后自我检查质量不行就重写。这个工作流是这样的。搜索 - 判断够不够 - 够了 - 写总结 - 检查质量 - 不行 - 重写总结- 不够 - 换关键词 - 搜索回到第一步这里有条件判断够不够、质量行不行有循环重新搜索、重写总结有状态管理搜索到的资料、总结的内容。用链式调用没法表达这种流程。用LangGraph就可以。fromlanggraph.graphimportStateGraph,ENDfromtypingimportTypedDict,List# 定义状态classResearchState(TypedDict):topic:strsearch_results:List[str]summary:strquality_check:strsearch_count:int# 定义节点defsearch_node(state):# 搜索资料topicstate[topic]# ... 执行搜索resultsstate.get(search_results,[])results.append(f关于{topic}的搜索结果...)return{search_results:results,search_count:state.get(search_count,0)1}defjudge_node(state):# 判断资料够不够resultsstate[search_results]iflen(results)3:return{quality_check:enough}return{quality_check:not_enough}defsummarize_node(state):# 写总结resultsstate[search_results]summaryf基于{len(results)}条资料的总结...return{summary:summary}defcheck_node(state):# 检查质量summarystate[summary]iflen(summary)20:return{quality_check:good}return{quality_check:bad}# 定义条件边defshould_search_or_summarize(state):ifstate[quality_check]enough:returnsummarizereturnsearchdefshould_finish_or_rewrite(state):ifstate[quality_check]good:returnENDreturnsummarize# 构建图workflowStateGraph(ResearchState)# 添加节点workflow.add_node(search,search_node)workflow.add_node(judge,judge_node)workflow.add_node(summarize,summarize_node)workflow.add_node(check,check_node)# 设置入口workflow.set_entry_point(search)# 添加边workflow.add_edge(search,judge)workflow.add_conditional_edges(judge,should_search_or_summarize)workflow.add_edge(summarize,check)workflow.add_conditional_edges(check,should_finish_or_rewrite)# 编译appworkflow.compile()# 运行resultapp.invoke({topic:AI Agent开发,search_results:[],summary:,quality_check:,search_count:0,})print(result[summary])print(f搜索次数:{result[search_count]})这段代码定义了一个有分支、有循环的研究Agent工作流。搜索完判断够不够不够就回去再搜够了就写总结。写完检查质量不行就重写。用链式调用是写不出这种流程的。这就是LangGraph的价值。LangGraph和LangChain的关系很多人搞不清LangGraph和LangChain的关系。LangChain是基础框架提供了Chain、Agent、Tool、Memory、Retriever这些核心组件。适合大部分Agent开发场景。LangGraph是LangChain的扩展专门处理复杂的工作流。它在LangChain的基础上增加了图结构的状态管理能力。两者的关系是互补的。LangChain管基础组件LangGraph管复杂流程。实际项目里经常一起用LangGraph的节点里调用LangChain的组件。安装也很简单。pipinstalllanggraph下一篇我们深入LangGraph的核心概念。节点、边、状态、条件边每个概念怎么用有什么讲究。

相关新闻

Unity预制体修改不生效?深度解析覆盖机制与同步解决方案

Unity预制体修改不生效?深度解析覆盖机制与同步解决方案

1. 问题现象与核心痛点:为什么我的修改“丢了”? 在Unity项目开发中,尤其是团队协作或迭代频繁时,你很可能遇到过这个让人抓狂的场景:你精心修改了一个预制体(Prefab)——比如调整了UI按钮的位置…

2026/8/10 19:13:53 阅读更多 →
国赛报名冲刺:从北工大8月31日截止到9月10日开赛,33天双线作战表

国赛报名冲刺:从北工大8月31日截止到9月10日开赛,33天双线作战表

# 国赛报名冲刺:从北工大8月31日截止到9月10日开赛,33天双线作战表2026 年"高教社杯"全国大学生数学建模竞赛将于 9 月 10 日(周四)18 时至 9 月 13 日(周日)20 时举行。随着 8 月的到来&#xf…

2026/8/9 15:36:25 阅读更多 →
线路板制板机进化实录:小批量产线的效率破局点

线路板制板机进化实录:小批量产线的效率破局点

PCB行业的订单结构正在发生肉眼可见的变化。过去那种“一款产品打天下、一次下单跑全年”的稳定节奏,逐渐被多品种、小批量、快交付的碎片化需求取代。无论是打样验证还是试产爬坡,电路板加工环节的响应速度,直接决定了一家公司能把新品推进到…

2026/8/9 15:36:25 阅读更多 →

最新新闻

1.8V低压SPI NAND选型推荐|XT26Q02D

1.8V低压SPI NAND选型推荐|XT26Q02D

在嵌入式存储方案选型中,NOR Flash与并行NAND各有优劣。NOR接口简单、支持XIP(就地执行),但大容量下单位成本较高;并行NAND容量大、成本低,但引脚多、占PCB面积,且坏块管理与ECC依赖主控端实现&…

2026/8/10 19:15:03 阅读更多 →
如何永久保存你的数字记忆:微信聊天记录备份与深度分析指南

如何永久保存你的数字记忆:微信聊天记录备份与深度分析指南

如何永久保存你的数字记忆:微信聊天记录备份与深度分析指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/…

2026/8/10 19:15:03 阅读更多 →
Engintron安全加固:隐藏服务器信息与防止DDoS攻击的最佳实践

Engintron安全加固:隐藏服务器信息与防止DDoS攻击的最佳实践

Engintron安全加固:隐藏服务器信息与防止DDoS攻击的最佳实践 【免费下载链接】engintron Engintron for cPanel/WHM is the easiest way to integrate Nginx on your cPanel/WHM server. Engintron will improve the performance & web serving capacity of you…

2026/8/10 19:15:03 阅读更多 →
终极目标检测教程:TrainYourOwnYOLO让AI识别如虎添翼

终极目标检测教程:TrainYourOwnYOLO让AI识别如虎添翼

终极目标检测教程:TrainYourOwnYOLO让AI识别如虎添翼 【免费下载链接】TrainYourOwnYOLO Train a state-of-the-art yolov3 object detector from scratch! 项目地址: https://gitcode.com/gh_mirrors/tr/TrainYourOwnYOLO TrainYourOwnYOLO是一个功能强大的…

2026/8/10 19:15:03 阅读更多 →
如何用scroll-world零基础创建惊艳的3D滚动页面?完整指南

如何用scroll-world零基础创建惊艳的3D滚动页面?完整指南

如何用scroll-world零基础创建惊艳的3D滚动页面?完整指南 【免费下载链接】scroll-world A skill that turn any brand into a scrollable 3D world landing page 项目地址: https://gitcode.com/gh_mirrors/sc/scroll-world 你是否曾经羡慕过苹果产品页面上…

2026/8/10 19:15:03 阅读更多 →
postcss-scss性能优化指南:提升大型SCSS项目的解析效率技巧

postcss-scss性能优化指南:提升大型SCSS项目的解析效率技巧

postcss-scss性能优化指南:提升大型SCSS项目的解析效率技巧 【免费下载链接】postcss-scss SCSS parser for PostCSS. 项目地址: https://gitcode.com/gh_mirrors/po/postcss-scss 在现代前端开发中,SCSS作为CSS预处理器的重要代表,极…

2026/8/10 19:14:02 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/10 1:05:29 阅读更多 →
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/10 17:07:33 阅读更多 →