【AI】LangChain:LLM 应用开发的核心框架
目录
- 一:LangChain:LLM 应用开发的核心框架
- 二:Java生态
- 三:C++生态
- 四:llama.cpp
- 五:LangChain:LLM 应用开发的核心框架
一:LangChain:LLM 应用开发的核心框架
1.LLM 驱动的应用程序的框架
LangChain 不是孤零零存在的,它是整个 LLM 应用开发生态里最核心、最主流的一类框架之一。
1.1 什么叫“LLM 驱动的应用程序框架”?
它们的目标,是为开发者提供一整套工具,用来构建复杂的 LLM 应用,比如:
带记忆的代理
复杂的 RAG 系统
多步骤工作流
也就是说,这类框架并不是只负责“调一下模型接口”,而是负责把一个真正的 AI 应用从输入、处理、检索、状态管理到输出这一整条链路组织起来。
在此之前:我们可能会理解成:
1.拿到 API Key
2.发一句 prompt
3.收到一段回答
但现实中的 AI 应用远不止这样。
一个稍微像样的系统,通常都要考虑:
怎么管理提示词
怎么接入外部知识库
怎么组织多步推理
怎么调用工具
怎么保存上下文
怎么把输出转成程序能处理的结构化结果
所以,LLM 驱动的应用框架,本质上是“围绕大模型构建应用系统”的工程框架。
它解决的不是单次问答,而是整个应用如何稳定地工作。
1.2 什么会出现这么多框架?
不同语言生态、不同业务场景、不同团队背景,对框架的需求不一样。
主流框架:
- Python 生态
- JavaScript / TypeScript 生态
- Java 生态
- C++ 生态

这个分类方式特别实用,因为它不是在问“哪个框架最牛b”,而是在问:
你现在在哪个技术栈里?
你要解决的是什么问题?
你更看重开发效率、生态丰富度,还是性能、企业集成、部署环境?
也就是说,框架选择从来不是纯技术优劣,而是技术栈 + 项目需求 + 团队现实 三者共同决定的。
所以,我们需要理解的是,我们就是一块转,哪里需要就往哪里搬,不能只会一个框架
1.3 核心观点
第一,LLM 应用开发已经进入“框架化”阶段
这说明行业不再满足于“零散调用模型”,而是在逐渐沉淀出成体系的方法论和工具链。
这就像 Web 开发从最早手搓 CGI,慢慢演变到 Spring、Django、Express 一样。
当一个领域开始出现主流框架,说明它已经不只是“能玩”,而是开始走向“能工程化”。
第二,LangChain 之所以重要,不只是因为它火
而是因为它处在一个很关键的位置:
它代表的是 LLM 应用开发的通用工程框架思路。
有些框架更偏 RAG,
有些更偏企业集成,
有些更偏前端和全栈,
有些更偏底层性能;
而 LangChain 之所以核心,是因为它更像一个“通用骨架”,很多复杂 AI 应用都能从它这里搭起来。
第三,学框架不是死记名字,而是建立地图感
也就是说,你不能只记:
LangChain 是干嘛的
LlamaIndex 是干嘛的
Spring AI 是干嘛的
更重要的是要知道:
它们分别站在生态里的什么位置,各自解决哪类问题。
只有这样,后面学具体框架时,你才不会陷入“只会 API,不懂选型”的状态。
2.为什么 Python 会成为 LLM 应用开发的主战场?
如果把整个 LLM 应用开发框架领域看成一张地图,那么 Python 生态基本就是这张地图的中心地带,今天绝大多数 LLM 应用开发、原型验证、RAG 搭建、Agent 实验,最先活跃起来的都是 Python 生态。
所以为什么呢?
因为现在的大模型应用开发,本质上是一个“实验性很强、迭代很快、生态联动很重”的领域。
而 Python 正好有几个天然优势:
第一,写得快。
做 AI 应用时,很多时候不是先追求极致性能,而是先把流程跑通,先验证思路对不对。Python 在快速原型这件事上太有优势了。
第二,库特别多。
不管你是要接模型、读文档、切文本、做向量化、连数据库,还是搭 Web 服务,Python 基本都有成熟方案。
第三,AI 社区本来就偏 Python。
很多模型 SDK、向量数据库客户端、工具库,Python 支持通常最早、最全、资料也最多。
所以,从工程现实看,Python 成为主流,不是因为它“理论最强”,而是因为它最适合当下 LLM 应用这种高频试错、高度集成的开发方式。
3.LangChain:生态最丰富、通用能力最强
3.1.什么叫“生态最丰富”?
意思就是,LangChain 不只是一个单点功能库,它已经围绕 LLM 应用开发形成了一个很大的工具体系。
你做一个 AI 应用时,常见会遇到这些东西:
- 提示词模板
- 大模型调用
- 输出解析
- 检索器
- Agent
- Tools
- Memory
- 向量数据库接入
LangChain 的强项就在于:这些东西它基本都覆盖了。
也就是说,它更像一个“总装框架”,不是只解决某一个局部问题,而是尽量把整个 LLM 应用链路里的核心模块都标准化掉。
你可以把它理解成 AI 应用开发里的“通用工具箱”
不是每个工具都一定是最极致的,但它胜在全、胜在能拼、胜在能快速搭完整系统。
3.2. 什么叫“灵活性极高”?
这表示 LangChain 很适合做定制化。
比如你的项目不是一个简单问答机器人,而是这样的流程:
用户提问
→ 先做提示词处理
→ 再查知识库
→ 再决定是否调用工具
→ 再让模型组织答案
→ 最后解析成结构化格式返回前端
像这种多步骤流程,LangChain 很适合,因为它本来就是围绕“组件组合”来设计的。
你可以自由替换某一层,比如:
模型换成别家
向量库换掉
输出格式改成 JSON
Agent 换一套工具调用逻辑
系统整体不至于推倒重来。
所以它特别适合那种 需求复杂、流程多变、需要不断试方案 的项目。

3.3. 什么叫“组件最全面”?
LangChain 提供了最全面的组件,比如:
链(Chains)
代理(Agents)
检索器(Retrievers)
等等。
这意味着它不是一个“模型调用封装器”,而是一个真正的应用开发框架。
换句话说,它不是只帮你“问模型”,而是帮你把“模型怎么参与业务流程”组织起来。
这一点很关键。
因为真正复杂的 AI 应用,难点从来都不是“能不能调接口”,而是:
模型在整个流程里扮演什么角色?
它什么时候该回答?
什么时候该检索?
什么时候该调用工具?
结果怎么交给程序继续处理?
LangChain 的价值,就在于它把这些问题抽象成了标准组件。
4.LangChain 适合什么场景?
几乎任何复杂的 LLM 应用,尤其是需要高度定制化和集成第三方工具的场景,是大多数项目的首选。
如果你做的是一个“小而固定”的应用,比如单纯的文档问答原型,那不一定非得用 LangChain。
但如果你做的是下面这种项目,LangChain 往往就很合适:
1. 多步骤 AI 工作流
比如一个智能助手,不是直接回答,而是要先分析意图、再查数据、再调用工具、再返回结果。
这种场景 LangChain 很顺手。
2. 强依赖第三方集成
比如你要接:
OpenAI / Anthropic / 本地模型
Pinecone / Chroma / FAISS
搜索引擎
数据库
自定义 API
LangChain 的接口层和生态通常能让你少造很多轮子。
3. 需要高度定制化
比如你不是照着官方 demo 做,而是有自己的业务流程、约束条件、输出要求,那 LangChain 的灵活性就能体现出来。
所以可以给 LangChain 一个很实在的定位:
它不是最专一的,但它往往是最通用、最能打复杂仗的。
5.LlamaIndex:更聚焦 RAG 和数据连接
如果说 LangChain 更像一个“通用 AI 应用框架”,那 LlamaIndex 的特点就更聚焦,它最初最出名的方向就是:RAG 和数据连接。
5.1. 专注于 RAG 和数据连接
RAG 的核心思想你可以简单理解成:
模型自己的记忆不够,就去外部知识库里先查,再拿查到的内容辅助回答。
而 LlamaIndex 的强项,正是在“让模型更好地连接外部数据”这件事上。
比如:
读一堆 PDF
接公司内部文档
建立索引
做分块
做检索
找到最相关内容再喂给模型
这整条链路,LlamaIndex 做得很顺。
所以它特别适合那些“模型知识不够,必须依赖私有数据”的应用。
5.2. 为什么它在文档查询和检索方面更突出?
因为它的设计起点,本来就很偏“数据到答案”这条线。
它不是先想“我要做一个万能 AI 应用框架”,而是先盯住一个很高频的问题:
如何让大模型高质量地读懂、索引、检索并利用外部文档?
所以当你的核心任务是“让模型基于资料回答问题”时,LlamaIndex 往往更专业、更顺手。
比如做这些东西时,它就很有存在感:
企业知识库问答
内部文档检索
私有数据问答机器人
文档分析助手
基于资料增强回答质量的聊天系统
这些都属于它很擅长的范围。
5.3. 它已经不只是“RAG 小工具”了
LlamaIndex 现在已经扩展为全功能框架。
这意味着你不能再把它简单理解成“只会查文档的库”。
它虽然是从 RAG 方向做强的,但现在能力已经在往更完整的应用框架方向发展。
5.4.LlamaIndex 适合什么场景?
以查询和分析私有数据为核心的应用,如企业知识库、文档智能问答、数据增强的聊天机器人。
这句话特别好理解。
你可以把它浓缩成一句:
如果问题的关键不在“模型会不会想”,而在“模型能不能读懂并用好你的数据”,那 LlamaIndex 就很值得优先考虑。
举个现实例子:
假设你做一个企业内部助手。
员工提问:“报销流程怎么走?”
答案不该靠模型瞎猜,而应该来自公司制度文档。
又比如做一个法律文档助手、医疗知识助手、产品手册助手,本质都一样:
重点不是让模型“自由发挥”,而是让它基于给定资料回答。
这种时候,LlamaIndex 就特别对路。
6.LangChain 和 LlamaIndex它们的区别

LangChain 更像“总调度框架”
它关注的是:
整个 LLM 应用怎么搭起来。
它擅长的是:
工作流组织
多组件拼装
Agent
Tools
灵活集成
高度定制
所以它适合复杂系统、通用型项目。
LlamaIndex 更像“数据连接专家”
它关注的是:
如何把外部数据更好地接入模型。
它擅长的是:
文档索引
检索
查询
RAG
私有知识库构建
所以它适合以知识库和数据问答为核心的项目。
你可以把两者理解成:
LangChain:偏“搭系统”
LlamaIndex:偏“喂数据”
当然,这种区分不是绝对的。
因为现在两边都在扩展,能力也会有交叉。
二:Java生态
7.为什么 Java 生态在 AI 应用里仍然很重要?
原因其实很现实:
很多公司的核心业务系统本来就是 Java 写的,比如:
1.微服务体系
2.企业管理系统
3.后端中台
4.风控系统
5.订单系统
6.OA、ERP、CRM 这类大型业务平台
这些系统不可能因为要接 AI,就整体推倒重写成 Python。
所以,很多企业真正的需求不是“从零做一个 AI 项目”,而是:
如何把 LLM 能力平滑接入现有 Java 企业应用。
8.LangChain4j:受 LangChain 启发的 JVM 框架
它是一个受 LangChain 启发、为 JVM 设计的框架,API 设计符合 Java 使用习惯;但它不是 LangChain 团队官方开发的,而是社区项目
8.1. 它和 LangChain 有关系,但不是官方“Java 版”
很多人看到名字容易误会,以为 LangChain4j 就是 LangChain 官方出的 Java 移植版。
单:它不是 LangChain 团队开发的,而是社区项目。
8.2. 为什么说它“符合 Java 习惯”?
因为框架不是只看功能,还要看它是不是符合你原有生态的开发思维。
Java 开发者通常更习惯:
明确的类型系统
面向对象建模
工程结构清晰
配置与注解式开发
更偏规范化、可维护的代码风格
所以,LangChain4j 的意义就在于:
它不是简单把 Python 那套 API 生搬硬套过来,而是按 Java 开发者熟悉的方式组织接口和能力。
这会让 Java 团队更容易上手,也更容易把 LLM 功能纳入已有项目结构里。
9.LangChain4j 适合什么场景?
需要将 LLM 能力集成到现有 Java 企业应用中的场景,比如微服务、大型后端系统。
比如:
现有 Java 微服务里加一个 AI 问答能力
给已有业务系统接入文本分析、总结、分类
在企业后端里加入知识库助手
在客服、审批、检索、报表分析这类流程里嵌入 LLM 能力
也就是说,LangChain4j 的主要价值在于:
让 Java 团队不用换主战场,也能把 AI 能力接进自己的系统。
你可以把它理解成:
它不是为了做最前沿、最花哨的 AI 实验,而是为了让 Java 企业开发更方便地“拥抱大模型”。
10.Spring AI:Spring 官方出手,面向企业生产环境
10.1. 为什么“Spring 官方项目”这么关键?
因为在企业开发里,很多团队选技术,并不只是看“能不能用”,还会看:
稳不稳定
和现有框架合不合
官方支持够不够
后续维护靠不靠谱
生产环境友不友好
而 Spring 在 Java 企业开发里的地位,不用多说。
所以当 Spring 自己下场做 AI 框架时,很多企业团队天然就会更放心。
因为这意味着:
你不是在业务系统旁边硬塞一个陌生 AI 组件,而是在用 Spring 体系内部更自然的一部分来扩展 AI 能力。
10.2. 什么叫“无缝集成”?
意思就是,Spring AI 的设计思路不是脱离 Spring 另起炉灶,而是尽量延续 Spring 生态一贯的开发体验。
它提供了 统一的 API 和数据抽象,而且 生产就绪特性更强。
这个“生产就绪”特别值得提。
因为企业系统关心的从来不只是“跑起来”,还包括:
配置管理
依赖管理
服务整合
可维护性
监控和部署便利性
如果一个框架只适合写 demo,那在企业里价值有限;
但如果它能和 Spring Boot 那套成熟体系自然融合,那落地成本就会低很多。
11.Spring AI 适合什么场景?
所有基于 Spring Boot 的项目,尤其是企业级生产系统,追求稳定性和框架原生集成的场景。
12.Spring AI Alibaba:深度对接阿里云生态
这个框架的定位更细,它是:
Spring AI 的扩展项目,由阿里云官方支持,核心优势是对阿里云灵积模型服务平台以及通义千问等模型的深度集成和优化。
它不是想取代 Spring AI,而是在 Spring AI 的基础上,进一步把阿里云这一整套云服务生态打通。
12.1它为什么会有独立价值?
因为很多企业并不是在“纯本地”环境里做 AI,而是已经深度使用某个云厂商的生态。
一旦项目本来就在阿里云上,企业通常会关心:
模型调用是否方便
配置是否开箱即用
权限和安全是否更顺
内网访问是否更低延迟
和对象存储、文件系统等云服务能不能自然联动
Spring AI Alibaba 的价值,就在这里。
它不是单纯“再封装一次”,而是把阿里云模型服务和 Spring 开发方式结合得更自然。
12.2. 它适合哪些场景?
重点包括这些:
深度依赖阿里云生态和服务的 Spring 项目
需要直接高效使用通义千问系列模型
希望在阿里云 VPC 内网访问模型服务,获取更低延迟和更低成本
希望和阿里云其他服务,比如 OSS、NAS 等结合使用
这说明它特别适合国内云上企业场景。
尤其是那些已经大量采用阿里云服务的项目,选它会更顺手。
13.Java 生态这三个框架怎么理解它们的区别?
1. LangChain4j:偏通用、偏社区、偏 Java 风格的 LLM 框架
它的特点是:
受 LangChain 启发
不是官方项目
API 贴合 Java 习惯
适合把 LLM 能力接入 Java 后端系统
所以它更像 Java 世界里一条比较自然的“LangChain 路线”。
2. Spring AI:偏官方、偏 Spring 原生、偏企业生产
它的特点是:
Spring 官方项目
和 Spring Boot 集成自然
更强调统一抽象和生产就绪
特别适合企业级生产系统
所以它更像企业 Java 团队最容易接受的一条主线方案。
3. Spring AI Alibaba:偏云生态、偏阿里云深度整合
它的特点是:
Spring AI 的扩展方向
阿里云官方支持
深度适配通义千问和阿里云服务
适合强依赖阿里云的项目
所以它更像是在 Spring AI 基础上,针对阿里云场景做增强。
三:C++生态
14.为什么 C++ 生态缺少“全栈式 LLM 框架”?
不是 C++ 做不了,而是它不适合当前 LLM 应用框架最主要的需求形态
1. 开发效率和快速迭代需求不匹配
现在的大模型应用开发,很多时候都还在高速试错阶段。开发者经常会反复做这些事情:
改提示词
调整工作流
切换模型
试不同的工具链
改检索策略
看效果,再继续改
这类工作本质上追求的是:改得快、试得快、反馈快。
而在这件事上:
Python / JS 是轻的,改完马上跑,适合快速原型和敏捷试验
C++ 是重的,编译链更长,修改和验证周期通常也更长
这就像什么呢?
如果你现在在实验一个产品原型,今天改 10 次业务逻辑,明天换 3 个模型,后天再换一下知识库流程,
那你肯定更希望自己用的是“拿起来就改、改完就测”的工具。
而 C++ 更像一把非常锋利、非常强大的工业刀具,但它不是最适合拿来高频试错的那一把。
所以 C++ 的开发体验相对“厚重”,和当前 LLM 应用强调敏捷开发的节奏不太一致。
这不是能力问题,是 场景匹配问题
15.生态系统的重心不同
C++ 传统强项更多在这些领域:系统编程,游戏开发,高频交易,嵌入式,性能敏感型底层模块。
而对于现代 LLM 应用开发很依赖的那些方向,比如:
1.云服务集成
2.Web API 快速对接
3.数据清洗和实验流
4.快速拼装第三方模型生态
C++ 的现成生态通常没有 Python 那么方便、那么密、那么“拿来就能试”。
16.最核心的原因:技术架构里的天然分工
Python / Java 负责应用层,C++ 负责底层推理层。
- 应用层负责“做什么”
应用层关心的是:
用户输入怎么处理
工作流怎么编排
提示词怎么组织
是否要接 RAG
是否要调用工具
数据从哪来、结果到哪去
整个系统怎么交付给业务
这些事情本质上更偏业务、偏流程、偏集成。
- 底层推理层负责“怎么高效做”
推理层关心的是:
模型怎么加载
内存怎么控制
推理速度怎么优化
量化怎么做
CPU / GPU 资源怎么利用
在有限硬件下怎么把模型跑起来
这些问题天生就更贴近 C++ 的强项:
资源控制、执行效率、底层优化、跨平台性能
四:llama.cpp
它几乎可以算是 C++ 在整个 LLM 技术栈中最有代表性的项目之一
17.llama.cpp 是什么?
它是一个用 C/C++ 编写 的热门项目,用来高效推理 LLaMA 系列以及很多其他架构的大模型。它最大的标签就是;
性能强
内存占用低
支持量化
能让模型在消费级硬件上运行
18.为什么它能体现 C++ 的价值?
因为它正好击中 C++ 最擅长的几个点:
对底层资源控制细
性能优化空间大
适合做推理执行核心
更适合在资源受限环境下精打细算
19. C++ 在实际系统里通常怎么用?
方案一:C++ 直接嵌入本地推理
适合一些对性能、离线能力要求很高的程序。
比如桌面端、本地工具、嵌入式设备、边缘设备。
方案二:C++ 做推理服务,别的语言做业务层
这更常见。
C++ 把模型服务起来,对外暴露 HTTP API;
Python / Java / JS 再负责:
工作流
业务逻辑
前后端交互
数据层
产品集成
这种方式特别像“强引擎 + 灵活车身”的组合。
而这恰恰就是现代 LLM 系统里很常见的工程分层。
20.C++ 生态定位
- C++ 不是没有价值,而是价值不在“全栈框架”
它不像 LangChain、Spring AI 那样,主打“快速搭建完整 AI 应用流程”。
所以如果你硬拿它去和 Python 框架比“谁更适合快速做 Agent / RAG 原型”,那肯定不占优。
- C++ 的价值在底层执行能力
它更适合:
推理引擎
模型部署
本地运行
资源受限设备
高性能计算
量化和底层优化
3. C++ 是 LLM 技术栈里的“基石”
虽然缺少全栈框架,但 C++ 在 LLM 技术栈中是不可或缺的基石。
五:LangChain:LLM 应用开发的核心框架
1.为什么要学习LangChain / LangGraph 这种框架
原生 LLM 在复杂应用里会遇到一堆工程问题,而框架的作用,就是把这些问题拆开、标准化、组件化,让你能把 AI 真正塞进业务系统里。
2.不同语言分别在干什么
Python 这边,LangChain 是最通用、生态最全、组件最多的主流方案,适合复杂、多工具集成的 LLM 应用;LlamaIndex 更偏 RAG 和私有数据检索,做知识库问答会很顺手。JS/TS 这边,LangChain.js 适合全栈和 Web 场景;Java 这边,LangChain4j、Spring AI、Spring AI Alibaba 更适合企业后端集成。
C++ 生态并不擅长做 LLM 应用的“全栈编排层”,不是因为 C++ 不强,而是因为当前 LLM 应用开发更强调快速试错、快速接入三方服务、快速改 prompt 和 workflow,这些事 Python/JS 更合适。C++ 更适合做底层高性能部分,比如本地推理引擎。
C++ 负责“怎么高效跑模型”,Python/JavaScript 负责“怎么把模型接进应用”
3.为什么LLM的业务能力不行
提示词容易幻觉、提示词风格不统一、模型切换成本高、输出难以结构化解析、知识会过时、外部工具调用不可靠。
所以我们可以知道的是:复杂 AI 应用的问题,本质不是“模型够不够聪明”,而是“系统有没有工程化地约束模型”。
模型像一个非常强、但不守规矩的实习生;框架的作用,就是给它加流程、加模板、加接口、加护栏。
4.LangChain 到底解决了什么?
总结就是:把混乱变标准。
它通过把应用拆成标准组件,来解决刚才那些痛点。比如:
1.用 Prompt Templates 管提示词;
2.用 统一模型接口 解耦不同模型供应商;
3,用 Output Parser 把自然语言输出变成 JSON / 对象;
4.用 Retriever + Vector Store 做 RAG;
5.用 Agent / Tools 把模型接到搜索、数据库、API、计算器等外部能力上。
成熟的 LLM 应用不是“直接调一个模型”,而是一个完整系统:
提示词工程 + RAG + 工具调用 + 输出解析 + 模型抽象层。
这个思想可以类比到 C++:
原生 socket 很强,但麻烦,所以有 libcurl;
原生线程能用,但复杂,所以有线程池、协程框架;
原生 LLM API 也能调,但一复杂就崩,所以有 LangChain。
这就是抽象与封装。课件前面其实已经用 Spring、libcurl 类比过这一点。
5.LangChain是一个串起来的组件
意思就是:把多个步骤串起来,让整个流程一次性跑完。
LangChain 不是某一个功能强,而是“让复杂流程可搭积木”很强。
6.LangChain的模块
LangChain的模块:统一模型调用、提示词管理、任务链、记忆、RAG 集成。
7.LangGraph 的本质:把 AI 应用建模成“图”
LangGraph 的关键词是:图结构 + 状态化。
8.LangGraph 和 LangChain的区别
LangGraph 不是替代 LangChain,而是对 LangChain 的扩展和补充。
LangGraph 底层会复用 LangChain 的很多组件,你依然可以在节点里调用模型、工具、检索器、甚至链。
更多推荐
所有评论(0)