LangChain与LangGraph:让大模型开发更简单,小白也能轻松掌握(收藏必备)
本文深入剖析了LangChain和LangGraph两大框架,旨在解决开发者在大模型应用开发中面临的“巴别塔问题”。LangChain通过提供统一的LLM应用开发抽象,简化了模型切换和基础设施构建,但存在抽象层级深、依赖臃肿等问题。LangGraph则在LangChain基础上引入状态图架构,支持循环、分支和人机协作,实现了更精细的控制和状态管理,但学习曲线较陡。两者互补,适用于不同复杂度的应用场景,是当前最成熟的Agent开发生态。对于AI/ML开发者,本文提供了从基础到进阶的学习计划,帮助读者快速掌握这两个框架。

◆ LangChain 解决了哪些核心痛点
在 LangChain 出现之前,LLM 应用开发面临着被称为 “巴别塔问题” 的困境:OpenAI、Anthropic、Cohere 等提供商的 API 格式各异,团队之间难以共享代码和最佳实践。开发者需要为每个项目重复实现对话管理、提示模板、模型切换、错误处理和结果解析——这些基础设施工作占据了 80% 的开发时间,仅留下 20% 用于核心 AI 逻辑。

LLM 自身的局限性进一步加剧了这一问题:上下文窗口有限导致无法处理长文档,无内置记忆意味着每次对话都从零开始,知识截止日期限制了对实时信息的访问。开发者需要自行构建向量存储、实现对话历史管理、集成外部工具——这些本应是标准化的能力。
LangChain 的核心目标是 “使开发上下文感知的推理应用程序尽可能简单”。它通过提供模型无关的统一接口,让开发者可以轻松切换底层模型而无需重写业务逻辑;通过模块化的可组合组件,将 LLM 从单纯的文本生成器转变为能够编排复杂数据流程的智能引擎。
◆ LangChain 的核心架构解析
LCEL:声明式链构建的新范式
LCEL (LangChain Expression Language) 是 LangChain 自 2023 年 8 月推出的核心编程模型。它采用声明式方法,让开发者描述”想要发生什么”,而非”如何实现”,由框架自动优化运行时执行。

LCEL 的核心是 Runnable 接口,每个组件都实现 invoke()(单输入)、batch()(批处理)、stream()(流式输出)和异步变体方法。通过管道操作符 | 连接组件,代码简洁直观:
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
# 声明式链定义:提示 → 模型 → 解析器
chain = ChatPromptTemplate.from_template("解释{topic}") | ChatOpenAI() | StrOutputParser()
result = chain.invoke({"topic": "量子计算"})
LCEL 提供两种组合原语:RunnableSequence 实现顺序执行,RunnableParallel 支持并行分支。其优势包括:自动支持流式传输和批处理、内置并行执行优化、与 LangSmith 无缝集成实现自动追踪,以及通过 LangServe 轻松部署为 API。

◆ Agents:从执行者到决策者
Agent 代表了从静态链到动态决策的跨越。与预定义流程的 Chain 不同,Agent 基于 LLM 动态决定使用哪些工具以及执行顺序。其核心循环为:发送请求 → 模型响应工具调用或最终答案 → 执行工具并将结果加入对话 → 循环直至完成。

LangChain 1.0 引入了新的 create_agent 抽象,基于 LangGraph 运行时,支持预构建和自定义中间件(如人机交互审批、上下文摘要、敏感信息脱敏),仅需约 10 行代码即可构建生产级 Agent。
◆ Memory:超越上下文窗口的记忆系统
LangChain 将记忆分为五种类型:短期记忆(当前会话消息历史)、长期记忆(跨会话用户偏好)、语义记忆(事实性知识)、情景记忆(历史交互事件)和程序性记忆(行为规则和系统提示更新)。记忆更新可通过”热路径”(Agent 主动存储)或”后台”(异步进程处理)两种方式实现。

◆ 2024-2025 包拆分架构
2024 年 1 月,LangChain 进行了重大架构重组,将原本臃肿的单一包(700+ 集成)拆分为清晰的层次结构:
| 包名 | 职责 | 版本策略 |
| langchain-core | 核心抽象、LCEL、基本类型 | 稳定,破坏性更改有版本提升 |
| langchain | 高级链、Agent、检索策略 | 主要发布间隔 2-3 个月 |
| langchain-community | 社区维护的第三方集成 | 补丁版本频繁更新 |
| langchain-{provider} | 特定提供商集成(如 langchain-openai) | 独立版本控制 |
当前最新版本(截至 2025 年底):langchain 1.2.3、langchain-core 0.3.82、langgraph 1.0.5。需注意:旧版 LLMChain 已弃用,应使用 LCEL 构建;AgentExecutor 被 create_agent() 取代。
◆ LangGraph:图结构编排的进化之路
为什么在有 LangChain 后还需要 LangGraph
LangChain 官方博客谈到:“人们想要更多控制。虽然 LangChain 是最快的起步地方,但我们为了易用性牺牲了能力。同样的高级接口现在在人们尝试定制生产时成了障碍。”
LangChain 基于 Chain 链式结构(有向无环图 DAG),任务必须按顺序执行,不支持循环和回溯,状态管理需要手动配置 Memory 组件,多步骤工作流出错时难以定位问题。LangGraph 正是为解决这些局限性而生,它引入了循环图结构、内置状态管理、持久化执行和原生人机协作支持。
◆ StateGraph 状态图架构详解
StateGraph 是 LangGraph 的核心控制器,定义节点、边连接、起点终点和条件分支规则:
from langgraph.graph import StateGraph, START, ENDfrom typing import TypedDictclass WorkflowState(TypedDict): user_query: str analysis_result: str confidence: float# 创建状态图,传入状态 Schemagraph = StateGraph(WorkflowState)
节点(Nodes) 是执行实际工作的 Python 函数,接收状态字典并返回更新:
defanalyze(state: WorkflowState) -> dict: result = llm_analyze(state["user_query"])return {"analysis_result": result, "confidence": 0.85}graph.add_node("analyze", analyze)
边(Edges) 定义节点间连接,条件边(Conditional Edges) 根据状态动态决定下一节点:
defshould_continue(state):if state["confidence"] < 0.8:return"human_review"# 置信度低,需人工审核returnENDgraph.add_conditional_edges("analyze", should_continue, ["human_review", END])
◆ Checkpointing:持久化执行的基石
Checkpointing 在每个节点执行后保存状态快照,是 LangGraph 实现故障恢复和时间旅行调试的关键:
from langgraph.checkpoint.memory import InMemorySavermemory = InMemorySaver() # 开发环境app = graph.compile(checkpointer=memory)# 通过 thread_id 维护独立会话config = {"configurable": {"thread_id": "session_123"}}current_state = app.get_state(config)history = list(app.get_state_history(config)) # 完整执行历史
生产环境推荐使用 AsyncPostgresSaver 或 MongoDB 后端实现持久化。
◆ Human-in-the-loop:人机协作原生支持
LangGraph 通过 interrupt() 函数暂停执行等待人类输入,支持三种决策类型:approve(批准)、edit(修改后执行)、reject(拒绝并反馈):
from langgraph.types import interrupt, Commanddefhuman_review(state): feedback = interrupt("请审核分析结果并提供反馈:")return {"user_feedback": feedback}# 恢复执行app.invoke(Command(resume={"decisions": [{"type": "approve"}]}), config=config)
◆ LangChain 与 LangGraph 的关系
两者互补而非竞争:LangChain 1.0 的 create_agent 底层建立在 LangGraph 之上,而 LangGraph 也可独立使用无需 LangChain。实际选择取决于场景复杂度:
-
使用 LangChain
:线性工作流(RAG、问答)、快速原型、不需要复杂状态管理
-
使用 LangGraph
:需要循环/条件分支、多代理协作、人机交互、长时间运行工作流需持久化
◆ 社区的真实声音:优势与争议
LangChain 的核心优势
LangChain 拥有 700+ 集成的丰富生态,覆盖主流向量数据库、模型提供商和工具。其统一接口让模型切换变得轻松,RAG 管道的完整支持(文档加载器、文本分割器、向量存储)大幅降低了开发门槛。对于快速原型验证和演示项目,LangChain 能实现”从想法到可运行代码只需一个下午”的承诺。
社区批评:不容忽视的痛点
然而,社区的批评同样直接。Hacker News 开发者指出:“它在标准用例下工作良好,但一旦你需要做一些稍微原创的事情,你就必须穿过 5 层抽象才能改变一个微小的细节。” Reddit 用户更尖锐地评价:“LangChain 解决了你自己也能轻松解决的简单问题,但在设计上没有考虑如何帮助你解决困难的问题。”
依赖臃肿是另一常见抱怨——即使基本功能也需安装大量依赖。Octomind 团队在生产环境使用 12 个月后选择移除 LangChain,原因是**“团队花在理解和调试 LangChain 上的时间与构建功能的时间一样多”**。一位开发者发现使用 LangChain 构建简单 RAG 系统的成本是直接使用 OpenAI SDK 的 2.7 倍。
API 频繁变动也是历史包袱。尽管 2024 年发布 v0.1.0 作为首个稳定版本承诺改善,但早期采用者对动荡期记忆犹新。
LangGraph 的改进与局限
LangGraph 的核心改进在于可控性——没有隐藏提示词,完全控制系统行为;图结构执行支持循环和分支;所有节点/边都是普通 Python 函数,透明可调试。Zillow 评价道:“LangGraph 实现了对 Agent 思考过程的精细控制。”
但 LangGraph 也有门槛。官方警告:对于不需要循环工作流的简单应用,LangGraph 可能引入不必要的复杂性。它需要开发者理解图论、状态管理和分布式计算等更专业的技能,学习曲线明显高于 LangChain。
◆ 代码示例 - 主要概念
LCEL 链式调用
from langchain_core.prompts import ChatPromptTemplatefrom langchain_openai import ChatOpenAIfrom langchain_core.output_parsers import StrOutputParserprompt = ChatPromptTemplate.from_messages([ ("system", "你是一个专业的技术文档撰写助手"), ("user", "为以下主题撰写简短介绍:{topic}")])chain = prompt | ChatOpenAI(model="gpt-4o") | StrOutputParser()result = chain.invoke({"topic": "向量数据库"})
Agent 构建
from langchain.agents import create_agentfrom langchain_core.tools import tool@tooldefsearch_docs(query: str) -> str:"""搜索技术文档库"""returnf"找到关于 {query} 的 3 篇相关文档"agent = create_agent( model="openai:gpt-4o", tools=[search_docs], system_prompt="你是一个技术文档检索助手,帮助用户找到相关资料。")response = agent.invoke({"input": "LangChain 最佳实践"})
LangGraph 状态机
from langgraph.graph import StateGraph, START, ENDfrom typing import TypedDictclassAgentState(TypedDict): messages: list next_step: strdefprocess(state: AgentState) -> dict:# 处理逻辑return {"next_step": "review"if needs_review else"complete"}defreview(state: AgentState) -> dict:# 审核逻辑return {"next_step": "complete"}graph = StateGraph(AgentState)graph.add_node("process", process)graph.add_node("review", review)graph.add_edge(START, "process")graph.add_conditional_edges("process", lambda s: s["next_step"], ["review", END])graph.add_edge("review", END)app = graph.compile()
RAG 基本模式
from langchain_openai import OpenAIEmbeddings, ChatOpenAIfrom langchain_community.vectorstores import FAISSfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.runnables import RunnablePassthrough# 初始化组件embeddings = OpenAIEmbeddings()vectorstore = FAISS.load_local("docs_index", embeddings)retriever = vectorstore.as_retriever(search_kwargs={"k": 3})prompt = ChatPromptTemplate.from_template("基于以下上下文回答问题:\n{context}\n\n问题:{question}")# LCEL 构建 RAG 链rag_chain = ( {"context": retriever, "question": RunnablePassthrough()} | prompt | ChatOpenAI())
◆ 学习计划
对于有 AI/ML 经验的开发者,建议按以下计划来学习:
阶段一(1-2 天):基础概念 — 完成 DeepLearning.AI 的 “LangChain for LLM Application Development” 课程,阅读官方概念文档,跟着 Quickstart 构建首个应用。
阶段二(3-5 天):核心技能 — 掌握 LCEL 编程模式,完成 “Chat with Your Data” 学习 RAG 系统,理解 Agent 和 Function Calling。
阶段三(3-5 天):LangGraph 进阶 — 完成 LangChain Academy 的 “Introduction to LangGraph” 免费课程,掌握 State、Nodes、Edges、Checkpointing 核心概念,构建多 Agent 系统实战。
阶段四(2-3 天):生产化 — 学习 LangSmith 的 Observability、Tracing、Evaluation,了解 LangGraph Platform 部署选项。
◆ 总结一下
LangChain 和 LangGraph 代表了 LLM 应用开发框架的两个层次:前者追求快速上手和广泛集成,后者强调精细控制和生产可靠性。Uber、LinkedIn、Klarna、JP Morgan 等企业已在生产中采用 LangGraph,验证了其企业级能力。
对于初创项目的快速验证,LangChain 仍是高效起点;对于需要复杂决策流程、多代理协作或严格可控性的生产系统,LangGraph 提供了必要的架构支撑。两者并非互斥选择——从 LangChain 快速原型开始,在需要更多控制时渐进式迁移到 LangGraph,是许多团队采用的务实路径。
理解这两个工具的边界和最佳适用场景,比盲目追随任何单一框架更为重要。毕竟,正如 Octomind 团队的反思所言:“框架通常是为了基于成熟使用模式强制执行结构而设计的——而 LLM 驱动的应用还没有这些成熟模式。” 保持对工具链的审慎评估,始终是 AI 工程实践的核心素养。
如何学习大模型 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大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

以上全套大模型资料如何领取?

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)