LangChain 与 LangGraph 核心介绍
- [一、AI 时代下的编程范式](#一、AI 时代下的编程范式)
-
- [1.1 Vibe Coding(氛围编程)](#1.1 Vibe Coding(氛围编程))
- [1.2 Vibe Coding 的局限性](#1.2 Vibe Coding 的局限性)
- [1.3 AI 开发框架:新战略高地](#1.3 AI 开发框架:新战略高地)
- [1.4 主流 LLM 应用开发框架选择](#1.4 主流 LLM 应用开发框架选择)
- [二、LangChain:LLM 应用开发的核心框架](#二、LangChain:LLM 应用开发的核心框架)
-
- [2.1 LLM 嵌入应用时遭遇的难题](#2.1 LLM 嵌入应用时遭遇的难题)
- [2.2 LangChain 定义与技术特点](#2.2 LangChain 定义与技术特点)
- [2.3 LangChain 发展简史](#2.3 LangChain 发展简史)
- 三、LangGraph:面向复杂工作流的图式架构
-
- [3.1 LangChain 的局限性(为什么需要LangGraph)](#3.1 LangChain 的局限性(为什么需要LangGraph))
- [3.2 LangGraph 的解决方案](#3.2 LangGraph 的解决方案)
- [3.3 LangChain 与 LangGraph 的关系](#3.3 LangChain 与 LangGraph 的关系)
- [3.4 LangGraph 发展简史](#3.4 LangGraph 发展简史)
一、AI 时代下的编程范式
1.1 Vibe Coding(氛围编程)
定义 :开发者使用自然语言 向代码优化的大语言模型(LLM)描述问题,由 LLM 生成软件,程序员摆脱底层编码与调试。
关键特征 :用户通常在不完全理解代码底层机制的情况下,接受 AI 生成的代码。
起源 :由 Andrej Karpathy 于 2025 年 2 月提出,迅速成为新兴编码方式。
对开发者技能的影响:
- 更加注重问题定义和规范,清晰表达需求与期望结果
- 具备指导和审查 AI 生成代码的能力,扮演指导者或编辑角色
- 系统设计和架构理解比低层次编码更重要
- 学会有效与 AI 沟通,掌握提示技巧
1.2 Vibe Coding 的局限性
- 代码质量与架构的"黑箱"困境
AI 目标是生成功能可运行的代码,但无法理解"优雅"、"可维护"、"可扩展"的架构。 - 上下文长度的"金鱼记忆"与知识滞后性
(1) 有限上下文窗口:LLM 无法记住 庞大项目全部代码,后期修改可能生成冲突或重复代码
(2) 知识截止与幻觉:可能使用过时 API 或幻觉出不存在的库函数,对开发者甄别能力要求极高 - 安全性与可靠性的"隐形地雷"
(1) AI 无安全意识,可能生成 SQL 注入、XSS 攻击、硬编码密码等漏洞代码
(2) 生成的代码缺乏严格测试的可靠性,在高并发或边缘情况下不稳定
正确认知:Vibe Coding 不是替代品,而是效率倍增器。
(1) 糟糕的"程序员":无法负责架构设计、技术方案、代码质量与系统安全
(2) 优秀的辅助工具:擅长样板代码、重复任务、单元测试、代码解释、灵感建议
Karpathy 后期观点 :不要幻想有万能 AI 工具解决所有编程问题,更可行的是建立结构,让不同工具在不同场景各司其职,像接力赛一样完成开发任务。
1.3 AI 开发框架:新战略高地
框架原则 :抽象与封装 + 模块化与可组装性
以 LangChain 为例:封装了不同 LLM、向量数据库、工具的交互复杂性;通过"链"将模块组合。
框架提供的价值:
架构:知识代码组织方式
质量:判断 AI 生成代码是否合格
安全:内置最佳实践规避风险
集成:高效组装 AI 生成的"零件"到大系统
学习框架的战略好处:
提升效率,快速原型
化繁为简,解决痛点
强大的生态集成
思维升级:全链路系统思维
职业领先:核心竞争优势
1.4 主流 LLM 应用开发框架选择
| 语言生态 | 框架 | 核心特点 | 适用场景 |
|---|---|---|---|
| Python | LangChain | 生态最丰富、灵活性极高、集成工具众多 | 几乎任何复杂 LLM 应用,高度定制化 |
| Python | LlamaIndex | 专注 RAG 和数据连接,文档索引/查询/检索性能优异 | 以私有数据查询分析为核心的应用(知识库、文档问答) |
| JavaScript/TS | LangChain.js | 官方 JS/TS 移植版,API 与 Python 相似 | 全栈开发、浏览器扩展、Edge Runtime |
| JS/TS | LlamaIndex.TS | TypeScript 版 RAG 框架 | Next.js、Nuxt 等全栈 RAG 应用 |
| Java | LangChain4j | 社区项目,API 符合 Java 习惯 | 现有 Java 企业应用集成 LLM 能力 |
| Java | Spring AI | Spring 官方,与 Spring 生态无缝集成 | Spring Boot 企业级生产系统 |
| Java | Spring AI Alibaba | 阿里云官方支持,深度集成通义千问 | 深度依赖阿里云生态的 Spring 项目 |
| C++ | (无全栈框架) | C++ 主要用于底层推理,上层用 Python/Java 调用 | 极致性能、离线运行、资源受限环境(llama.cpp) |
选择逻辑:
(1)团队技术栈优先
(2)项目需求:研究/灵活性 → Python LangChain;RAG 核心 → LlamaIndex;企业后端 → Spring AI/ LangChain4j;Web 全栈 → LangChain.js;极致性能/嵌入式 → C++ llama.cpp
(3)社区支持:Python/JS 更新最快,社区最活跃
总结:"框架思维"驾驭"Vibe 工具",是未来开发者最强的核心竞争力。
二、LangChain:LLM 应用开发的核心框架
2.1 LLM 嵌入应用时遭遇的难题
以"智能医疗咨询助手"为例,直击原生 LLM 的痛点:
| 场景 | 问题 | 解决方案 |
|---|---|---|
| 幻觉 | 致命错误建议(如吞纽扣电池) | 提示词工程 + RAG,强制从权威知识库检索 |
| 提示词不统一 | 不同功能各自编写,质量参差 | 使用提示词模板统一规范 |
| 模型切换困难 | 与特定模型 API 强耦合 | LLM API 抽象层(LangChain) |
| 非结构化输出 | 程序无法直接解析自然语言结果 | 输出解析,强制 JSON Schema |
| 知识陈旧 | 训练数据截止,无法回答最新问题 | RAG 注入实时外部知识 |
| 外部工具调用 | LLM 自主决定何时调用哪个工具复杂 | 智能体(Agent)框架,让 LLM 规划选择工具 |
总结:成熟 LLM 应用 = 提示词 + RAG + 外部工具 + 输出解析器 + 核心引擎(LLM)。
2.2 LangChain 定义与技术特点
**定义:**用于开发由大语言模型(LLM)驱动的应用程序的框架,通过将 NLP 流程拆解为标准化组件,自由组合、高效定制工作流。
技术特点:
- 统一的模型调用:抽象接口支持多种 LLM 和嵌入模型,灵活切换供应商
- 灵活的提示词管理:提示词模板支持动态生成,管理少样本示例
- 可组合的任务链(Chains):串联多个步骤(如先检索文档再生成回复),实现复杂任务编排
- 上下文记忆机制(Memory):存储多轮对话状态(注:该功能已由 LangGraph 支持,原实现已过时)
- 检索与向量存储集成 :支持文档加载→分割→向量化→存储→检索→输入 LLM ,简化 RAG 开发 ,兼容主流向量数据库(FAISS、Pinecone、Chroma)

2.3 LangChain 发展简史
| 时间 | 事件 |
|---|---|
| 2022.10 | Harrison Chase 开源发布,解决 GPT-3 使用痛点 |
| 2023 中 | 支持 JavaScript/TypeScript,扩展至前端全栈 |
| 2024.01 | 发布 0.1.0 稳定版,拆分 langchain-core 与 langchain-community,引入 LCEL |
| 2024.05 | 发布 0.2.0,增强异步与流式输出支持 |
| 2024 下半年 | 0.3.x 持续改进性能与集成 |
| 2025.09 | 发布 1.x Alpha 内测版,统一现代 LLM 功能,新增预构建 LangGraph 链和代理 |
三、LangGraph:面向复杂工作流的图式架构
3.1 LangChain 的局限性(为什么需要LangGraph)
传统链式结构(Chain A→B→C)是线性的、预先定义的,无法处理:
- 循环与分支:无法"跳回"上一步(如信息收集不完整时反复询问)
- 状态维护困难:链式调用无状态,多轮对话状态管理靠开发者外部存储
- 人工介入困难:AI 无法处理时需要中断链,无法优雅实现暂停→人工处理→继续
- 僵化的流程:不同意图需要不同子流程,链式结构需大量 if-else 控制流
3.2 LangGraph 的解决方案
定位 :低层次编排框架,用于构建可控、可靠的 AI 代理工作流。
核心思想 :将应用逻辑建模为图(Graph),节点表示操作/状态,边表示转移与数据流。
技术特点:
- 循环与分支:节点可连接到任何节点(包括自身),轻松实现循环直到条件满足
- 动态路由:通过条件边根据状态动态决定下一个节点
- 状态维护:核心状态对象自动持久化和传递,支持长时间运行任务
- 持久执行:故障后可自动从上次中断处恢复
- 人机协作:执行过程中随时检查和修改状态,无缝融入人工监督
- 全面记忆:短期工作记忆 + 长期持久记忆
- 可视化调试:借助 LangSmith 追踪执行路径、捕获状态转换
- 生产级部署:专为有状态、长时间运行工作流设计的可扩展基础设施
3.3 LangChain 与 LangGraph 的关系
(1) 互补关系 :LangGraph 底层大量复用 LangChain 组件(模型接口、工具、记忆等)
(2) 简单线性任务 :LangChain 链式结构已足够高效
(3) 复杂控制流、长期状态、多智能体:LangGraph 提供更强大支持
3.4 LangGraph 发展简史
| 时间 | 事件 |
|---|---|
| 2024 初 | 作为 LangChain 0.1.0 一部分引入,实验性功能发布 |
| 2024 中 | 独立演进,引入 Checkpoint 检查点机制 |
| 2024 下半年 | 发布 0.2.x、0.3.x,增强异步、并发、类型定义 |
| 2025 | 发布 0.4.x、0.5.x,完善 Python/JS 实现,推出 LangGraph Platform |
| 2025.06 | 发布 0.6 版本,启动 v1.0 路线图计划 |
写在最后 :通过本文的学习,我们清晰认识到 Vibe Coding 虽强大但局限明显,真正驾驭复杂 AI 应用仍需框架思维。LangChain 作为 LLM 应用开发的核心框架,通过链式组件解决了模型调用、提示词管理、记忆、检索等基础痛点;而 LangGraph 则以图式架构应对循环、分支、状态维护、人机协作等复杂工作流挑战,两者互补构成现代 AI 应用开发的强大基座。掌握这些框架不仅是技术实现的手段,更是从"代码编写者"向"AI 应用架构师"蜕变的战略投资。希望这篇总结能帮助大家高效复习,也欢迎小伙伴们一起学习、共同进步,有任何疑问可以私信博主或在评论区留言,我们一起沟通流吖o( ̄▽ ̄)ブ