热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai教程 >LangChain学习背景

LangChain学习背景

来源:互联网 更新时间:2026-07-29 07:46

1.1. LangChain是什么

说起LangChain,它本质上就是LLM应用走向复杂化之后的一套工程化框架。

随着LLM真正开始进入实际应用,人们很快发现,一个LLM应用远不止是一次简单的API调用那么简单。它其实是一条由模型、提示词、工具、数据、记忆、流程控制,以及观测评估构成的复杂链路。

LangChain做的事情,简单说就是:在LLM的原始能力和真实的应用工程之间,把那些在LLM应用开发中反复出现的工程步骤,抽象成可复用、可组合、可观测的组件。

1.2. LangChain为什么会出现

经常被问到的一个问题是:LangChain出现之前,难道就不能做LLM应用了吗?

当然可以。最简单的方式就是直接调用模型的API,用户输入什么,模型就输出什么,直接展示出来就可以了。

但是,当应用从简单的问答场景走向真实的业务需求时,问题一下子就复杂起来了。举个例子,一个知识库问答机器人,不仅要调用模型,它还得读取文档、切分文档、做向量检索、把找到的相关内容塞进提示词里、控制模型基于资料回答、解析输出、记录日志,最后还要评估效果。一个AI助手,如果只是聊天还好,但一旦需要查数据库、调用API、使用各种工具、保存上下文、处理中断和恢复,那情况就完全不同了。

在LangChain出现之前,这些能力大部分都得靠开发者自己写“胶水代码”来拼凑。每个项目都在重复造轮子:写提示词模板、工具调用协议、RAG流程、输出解析、上下文管理和调试日志。LangChain的价值就在于,它把这些反复出现的模式抽象成了一个个组件,让开发者能够更系统、更高效地去组合它们。

再后来,随着Agent和复杂工作流越来越多,传统的线性Chain就有点不够用了。于是,LangGraph应运而生,专门负责处理状态、分支、循环、持久化,甚至人类介入这些问题。应用上线之后,又需要观察每一步到底发生了什么,评估改动是否让效果变好了,所以LangSmith又来负责追踪、调试和评估。

所以,LangChain出现的背景,不是因为“模型API太难调”,而是因为“LLM应用工程化过程中,太容易重复造轮子”。

1.3. 从LLM应用的演进过程看LangChain

1.3.1. 起点:LLM单次调用很简单

最早期,大家的使用方式非常直接:用户输入一句,模型返回一句。

这个阶段,LangChain确实用不上,模型SDK就足够了。

1.3.2. 变化:LLM开始进入真实应用

当LLM进入真实业务场景,它需要的就不只是“回答”了,而是要接入文档、数据库、工具、API、历史对话、业务流程,甚至还有调试和评估。

于是,LLM从一个纯粹的“聊天模型”,变成了应用里的一个“推理组件”。

1.3.3. 问题:开发者反复写胶水代码

在LangChain之前,很多能力都得自己手写。

Prompt模版、模型调用封装、RAG流程、工具调用协议、输出解析、记忆管理、日志调试、效果评估

这些代码重复、脆弱,而且非常难以维护。

1.3.4. 回应:LangChain把重复模式组件化

LangChain的核心价值,就是把prompt、model、retriever、tool、parser、memory、agent这些能力,全都抽象成可复用、可自由组合的组件。

它解决的从来不是“模型不会回答”的问题,而是“LLM应用工程链路太复杂”的问题。

1.3.5. 演化:LangChain生态继续分工

随着应用复杂度进一步提升,生态也进一步拆分了。

LangChain负责基础:常用组件、集成、基础的Agent抽象。

LangGraph应对复杂场景:状态管理、循环、分支、恢复等。

LangSmith专注于生产环境:追踪、调试、评估、监控。

整个演进的脉络很清晰:
LLM 能力增强→开发者不再满足于单次问答→开始把 LLM 接入文档、工具、数据库、业务流程→每个项目都重复写 prompt、检索、工具调用、解析、记忆、日志等胶水代码→LangChain 出现:把这些重复工程模式组件化→复杂 agent 继续发展→LangGraph 处理状态与流程编排→生产化需求增强→LangSmith 处理观测、调试、评估

1.4. 从旧方案看LangChain的对比

LangChain的每一个抽象,几乎都来自一个真实项目里会反复出现的麻烦。

现实需求LangChain 出现之前LangChain 的解法
调用不同模型分别写不同SDK的调用代码Chat Model/Model Integration
管理提示词手动写字符串模板Prompt Template
控制输出格式让模型“请输出JSON”,再手动解析Output Parser/ Structured Output
接入私有文档自己写读取、切块、向量化、检索Loader / Splitter / Embedding / Vector Store / Retriever
做知识库问答自己拼 RAG 全流程Retrieval Chain / RAG patterns
调用外部API自定义工具协议和解析逻辑Tool / Tool Calling
让模型自主决策手写循环和条件判断Agent / LangGraph
管理多轮状态手动保存历史消息Memory / State / Checkpoint
调试链路打印 prompt、结果和日志Tracing / LangSmith
评估效果人工看答案或写临时脚本Evaluation / LangSmith

1.5. 判断是否需要使用LangChain

LangChain 不是越早用越好,而是在复杂度到达某个点后,它的价值才会明显体现出来。

简单调用:直接 SDK 就够了标准 RAG / 工具 / agent 原型:LangChain 很有帮助复杂长流程 / 状态机 / 可恢复 agent:考虑 LangGraph生产调试和评估:考虑 LangSmith关键业务链路:理解框架后再决定保留多少抽象

再来看几个具体的例子,会更好理解。

举例1:

用户输入一段产品介绍,系统帮他改写成小红书风格文案。

逻辑抽象是这样的:
用户输入 → Prompt → Model → 输出

结论:这本质上是一次性API调用,链路很短,直接用SDK就够了。

举例2:

用户问公司报销制度,系统要基于公司内部文档回答,并注明依据。如果资料不足,要提示联系HR。

逻辑抽象是:
用户问题→加载公司制度文档→文档切块→向量化→检索相关片段→组织 prompt→模型基于资料回答→返回答案和依据

结论:这是一个标准LangChain链路的典型场景。

举例3:

用户说:“帮我查一下这个客户的最近订单,如果超过30天没购买,生成一封召回邮件草稿。”

逻辑抽象是:
用户目标→模型理解任务→调用客户查询工具→调用订单查询工具→判断是否超过30天→生成邮件草稿

结论:这个场景比较复杂,需要用到LangChain的Agent和Tool抽象。

1.6. LangChain常见背景问题自测

为了帮助理解,这里整理了一些常见问题,可以试着回答看看:

  1. 为什么说LangChain不是为了解决“调用模型”这个问题?
  2. 在LangChain之前,开发者做RAG通常要自己写哪些步骤?
  3. 为什么工具调用会让LLM应用变复杂?
  4. Chain思维为什么在复杂Agent场景里不够用?
  5. LangChain、LangGraph、LangSmith分别是为了解决哪类问题?
  6. 什么场景下不需要LangChain,直接调用模型SDK更合适?
  7. 为什么说LLM应用的难点在“工程链路”,而不是单次生成?
  8. 为什么有人说LangChain过度封装?
  9. RAG为什么会成为LangChain的典型应用场景?
  10. 为什么直接调用模型API不等于构建LLM应用?
  11. LangChain为什么不是为了让模型更聪明?
  12. 为什么LLM应用会产生大量胶水代码?
  13. 没有LangChain时,多轮对话和状态管理为什么容易失控?

1.7. 总结

总的来说,这一章聊了LangChain是什么、为什么会出现、解决了什么问题,也回顾了它出现之前开发者是怎么做的,它的边界在哪里,以及它的生态是如何演化的。

核心要点可以归纳为:

LLM应用从单次调用走向复杂工程链路的时候,LangChain应运而生。

LangChain解决了LLM工程中那些重复的prompt、RAG、tool、memory、parser、trace和胶水代码问题。

在LangChain出现之前,开发者需要自己封装、自己拼接、自己解析、自己调试。

在面对简单的LLM调用任务时,直接使用SDK更合适;只有复杂的流程,才能体现LangChain的真正价值。

最后,整个生态的演化路径也很清晰:LangChain → LangGraph → LangSmith。

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc