网易首页 > 网易号 > 正文 申请入驻

LangChain 还是 LangGraph?一个是编排一个是工具包

0
分享至

来源:市场资讯

(来源:DeepHub IMBA)

现在介绍LangGraph 和 LangChain 的文章。每一篇的结论都差不多:简单流程用 LangChain,复杂的用 LangGraph。

但是简单和复杂都是相对的,如果是具体问题呢,比如说一个做代码分析、三个 Agent 串起来的流水线,到底该拿哪一个上线?

所以本文用同一个需求分别用两个框架实现,Agent、逻辑、Gemini 2.5 Flash 调用全部一致,一遍 LangChain,一遍 LangGraph。

两个框架到底在做什么

LangChain 是一个模块化工具包,提供 prompt 模板、文档加载器、retriever、输出解析器、memory 抽象这些零件,再把它们按线性顺序 A → B → C 串起来。像一条传送带:定义步骤,数据往前流,结束。

LangGraph 是一层编排。它把工作流建模成状态机 —— 节点是函数,边是转换 —— 而边可以是条件的。流水线可以循环、分支、重试,也能暂停等待人工输入。就是一张流程图。

不过从 LangChain v1.0(2025)开始,LangChain 自己的 Agent 抽象就是建在 LangGraph 之上的。所以这两个不是两个互相竞争的框架,而是同一个系统不同的抽象层级。

实验:同一条流水线,两个框架

测试用例是一条三阶段的代码审查流水线:

  1. Context agent —— 抓 PR diff 和仓库历史

  2. Analysis agent —— 在改动代码中定位问题

  3. Review agent —— 输出带严重程度评分的结构化反馈

BugLens 线上的 analysis agent 有时需要回头再去拉一轮 context 才能给出有把握的判断。正是这个条件回跳把我逼到了决策点。

LangChain 版本

 from langchain_core.prompts import ChatPromptTemplatefrom langchain_google_genai import ChatGoogleGenerativeAIfrom langchain_core.output_parsers import StrOutputParserllm = ChatGoogleGenerativeAI(model="gemini-2.5-flash")context_chain = (ChatPromptTemplate.from_template("Analyze this PR diff: {diff}")| llm| StrOutputParser()analysis_chain = (ChatPromptTemplate.from_template("Find issues in: {context}")| llm| StrOutputParser()review_chain = (ChatPromptTemplate.from_template("Write review for: {analysis}")| llm| StrOutputParser()# 线性执行def run_pipeline(diff: str):context = context_chain.invoke({"diff": diff})analysis = analysis_chain.invoke({"context": context})review = review_chain.invoke({"analysis": analysis})return review

干净、可读,五分钟能写完。问题在于:analysis 返回的置信度一旦偏低,整条链就会有问题 —— 得在链外面加 if/else,手动 re-invoke,再自己把状态拼回去。

LangGraph 版本

 from langgraph.graph import StateGraph, ENDfrom typing import TypedDictclass ReviewState(TypedDict):diff: strcontext: stranalysis: strreview: strconfidence: floatiterations: intdef context_node(state: ReviewState) -> ReviewState:# 根据 diff 和仓库历史获取 contextcontext = fetch_context(state["diff"])return {**state, "context": context}def analysis_node(state: ReviewState) -> ReviewState:result = run_analysis(state["context"])return {**state,"analysis": result["content"],"confidence": result["confidence"],"iterations": state.get("iterations", 0) + 1def review_node(state: ReviewState) -> ReviewState:review = write_review(state["analysis"])return {**state, "review": review}def should_loop(state: ReviewState) -> str:# 置信度低则回头再取一轮 contextif state["confidence"] < 0.75 and state["iterations"] < 3:return "fetch_more_context"return "write_review"graph = StateGraph(ReviewState)graph.add_node("get_context", context_node)graph.add_node("analyze", analysis_node)graph.add_node("review", review_node)graph.set_entry_point("get_context")graph.add_edge("get_context", "analyze")graph.add_conditional_edges("analyze", should_loop, {"fetch_more_context": "get_context","write_review": "review"graph.add_edge("review", END)pipeline = graph.compile()

前置代码多了不少,但是置信度阈值触发自动回跳;状态在节点之间自动流转,不用人工维护;后续要加 human-in-the-loop 审核时,一行 interrupt() 就够了 —— LangGraph 原生支持。

LangChain 依然占优的场景


LangChain 的 pipe 语法 chain1 | chain2 | chain3 用在线性流程上是真的漂亮。BugLens 里不需要分支的那些环节我还是用它:总结单个文件、从 diff 里抽结构化数据、给最终输出做格式化。不该分支的地方没必要背上 LangGraph 的开销。

更现实的一点是生态:LangChain 有 600+ 开箱即用的集成。要快速接一个向量库、PDF 加载器、外部 API,这套生态目前没有对手。LangGraph 并不是要替代它们,而是叠在上面。

反转:LangChain 1.0 内部跑的就是 LangGraph

大多数对比文章漏掉了这一条:从 LangChain v1.0 起,AgentExecutor 事实上已经废弃,LangChain 新的 Agent 抽象在底层直接构建在 LangGraph 上。

现在调用 create_react_agent(),跑的就是 LangGraph 状态机。真正的问题不是 LangChain 还是 LangGraph,而是想要 LangChain 那层更高的封装,还是想直接控制这张图。

先用 LangChain 的高层 API;撞到墙(循环、重试、条件分支、持久化)再往下落到 LangGraph。二者可以共存,不少生产系统同时用两套。

决策框架


其实可以两个都用。外层编排 —— GitHub webhook 事件路由、决定调用哪条 Agent 流水线、API 失败后的重试管理 —— 全部走 LangGraph;内层链 —— 格式化 diff、总结文件、解析结构化输出 —— 交给 LangChain LCEL。

总结

构建一条简单的 RAG 流水线或单步 LLM 工作流,LangChain 更快也更干净,没必要让 LangGraph 把复杂度压上去。

一旦涉及到多 Agent、条件逻辑、重试行为或需要持久化的状态,LangGraph 就不只是“更好”而已,它是唯一的选项;想在纯 LangChain 里复刻这套控制流,最后拼出来的正是 LangGraph 被造出来要替掉的那种缝合式状态管理。

by Satyabrata Mohanty

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
双标到骨子里!香港网友这波操作,把“崇洋媚外”刻在了脸上

双标到骨子里!香港网友这波操作,把“崇洋媚外”刻在了脸上

番外行
2026-03-31 08:43:22
广东女大学生被骗电诈园,舆论发力终迎转机,平安回家指日可待!

广东女大学生被骗电诈园,舆论发力终迎转机,平安回家指日可待!

行者聊官
2026-04-24 15:04:32
加拿大女歌手北京演唱会取消:因抢不到五一高铁票,艺人不喜欢过多飞行

加拿大女歌手北京演唱会取消:因抢不到五一高铁票,艺人不喜欢过多飞行

观察者网
2026-04-24 11:45:37
李小冉离婚了!?

李小冉离婚了!?

八卦疯叔
2026-04-22 11:02:16
通信资费全新优化,移动29元套餐刷屏全网,不懂版本区别必踩大坑

通信资费全新优化,移动29元套餐刷屏全网,不懂版本区别必踩大坑

复转这些年
2026-04-24 19:49:57
俄议员:俄罗斯希望回购中国航母,中方务必拆掉武器停止军用

俄议员:俄罗斯希望回购中国航母,中方务必拆掉武器停止军用

风雨与阳光
2026-04-23 13:51:06
DeepSeek V4震撼亮相, 它的意义绝不只是便宜

DeepSeek V4震撼亮相, 它的意义绝不只是便宜

傅盛
2026-04-24 20:06:34
2026款丰田皇冠实车曝光 内饰大变 新增高效混动

2026款丰田皇冠实车曝光 内饰大变 新增高效混动

娱乐圈的笔娱君
2026-04-22 10:03:48
痛心!湖北一派出所所长因公牺牲,年仅45岁

痛心!湖北一派出所所长因公牺牲,年仅45岁

极目新闻
2026-04-23 13:43:56
赖清德无法窜访,卢秀燕表态后,日本也发声了,非常不简单

赖清德无法窜访,卢秀燕表态后,日本也发声了,非常不简单

DS北风
2026-04-24 11:32:03
美日菲南海大规模军演,解放军不仅出动辽宁舰,就连四川舰也去了

美日菲南海大规模军演,解放军不仅出动辽宁舰,就连四川舰也去了

胖福的小木屋
2026-04-23 23:44:58
4月24日,农业银行存款利率更新?29万元存四年,利息有多少?

4月24日,农业银行存款利率更新?29万元存四年,利息有多少?

王五说说看
2026-04-24 06:58:54
“见过最廉价的兜底”,一份山姆烧鸡,让低认知母子沦为全网笑柄

“见过最廉价的兜底”,一份山姆烧鸡,让低认知母子沦为全网笑柄

妍妍教育日记
2026-04-15 09:30:09
美国在国民党豢养的鹰犬终于不装了!不仅卖台,还疯狂攻击大陆

美国在国民党豢养的鹰犬终于不装了!不仅卖台,还疯狂攻击大陆

胡同里有只猫A
2026-03-13 17:46:01
14岁少年公园内骑电动摩托车 撞倒5岁男孩 致其头骨骨折 当地回应:已委托第三方鉴定肇事电动车是否涉及改装 赔偿将在责任认定之后进行

14岁少年公园内骑电动摩托车 撞倒5岁男孩 致其头骨骨折 当地回应:已委托第三方鉴定肇事电动车是否涉及改装 赔偿将在责任认定之后进行

闪电新闻
2026-04-24 23:04:52
这下不得瑟了吧!男子炫耀自己工作,每天很清闲,公司发现后调岗

这下不得瑟了吧!男子炫耀自己工作,每天很清闲,公司发现后调岗

川渝视觉
2026-04-20 13:02:37
继人民日报发声后,官媒再次三问董宇辉,言辞犀利,字字揭他老底

继人民日报发声后,官媒再次三问董宇辉,言辞犀利,字字揭他老底

离离言几许
2026-04-23 20:04:00
在当下历史的关键拐点,选择中立,就是纵容邪恶

在当下历史的关键拐点,选择中立,就是纵容邪恶

壹家言
2026-04-24 21:46:00
深圳新任市委书记履新首月,多场政务活动关注哪些议题?

深圳新任市委书记履新首月,多场政务活动关注哪些议题?

南方都市报
2026-04-24 21:24:06
王子文和王朔未婚生子的瓜!

王子文和王朔未婚生子的瓜!

八卦疯叔
2026-04-23 11:10:22
2026-04-25 02:16:49
新浪财经 incentive-icons
新浪财经
新浪财经是一家创建于1999年8月的财经平台
3005640文章数 6912关注度
往期回顾 全部

科技要闻

DeepSeek V4牵手华为,价格依然"屠夫级"

头条要闻

航班提前起飞10分钟 大学生把海航告了

头条要闻

航班提前起飞10分钟 大学生把海航告了

体育要闻

上海男篮23连胜+主场全胜 姚明之后最强一季

娱乐要闻

停工16个月!赵露思证实接拍新剧

财经要闻

LG财阀内斗:百亿美元商业帝国争夺战

汽车要闻

零跑Lafa5 Ultra北京车展上市:11.88-12.48万

态度原创

亲子
时尚
教育
艺术
军事航空

亲子要闻

好书共读 好文共享-《母鸡》

今日热点:爱奇艺回应暂停页面广告争议;经纪公司否认THEBOYZ解约成功……

教育要闻

帝国理工IC相当于国内什么大学?

艺术要闻

世界最高20座大楼,你见过几栋?

军事要闻

美伊陷入互相封锁僵局

无障碍浏览 进入关怀版