LangChain 学习记录 01:为什么需要 LangChain?从 API 调用到 AI 应用框架
LangChain 学习记录 01为什么需要 LangChain从 API 调用到 AI 应用框架本文适合刚开始学习 LangChain已经听过大模型 API但还不清楚“为什么要多学一个框架”的同学。关键词LangChain、大模型应用、LLM、RAG、Agent、LangGraph、Deep Agents摘要很多同学第一次接触大模型开发时都会有一个非常自然的问题我都能直接调 OpenAI、DeepSeek、通义千问的 API 了为什么还要学 LangChain这个问题问得非常好。因为 LangChain 不是为了替代模型 API而是为了帮我们把“调用一次模型”升级成“构建一个完整的大模型应用”。本文主要讲清楚直接调用模型 API 会遇到哪些现实问题LangChain 到底帮我们省了什么LangChain、LangGraph、Deep Agents 是什么关系LangChain 的核心模块有哪些学习 LangChain 应该按什么路线走一句话概括模型 API 解决“让模型回答一次”LangChain 解决“把模型能力组织成一个可维护的应用”。文章目录LangChain 学习记录 01为什么需要 LangChain从 API 调用到 AI 应用框架摘要一、为什么直接调用 API 还不够二、LangChain 到底是什么LangChain 的核心价值三、直接 API 与 LangChain 的代码对比方式一直接调用模型 API方式二使用 LangChain两种方式对比四、LangChain 生态全景LangChain、LangGraph、Deep Agents三者对比如何选择五、LangChain 核心架构总览1. 基础层用什么说话2. 能力层怎么做3. 应用层做什么六、用一个知识库问答机器人理解模块协作七、适合用 LangChain 的项目场景八、什么时候不一定要用 LangChain九、学习路线建议十、小结参考资料一、为什么直接调用 API 还不够如果只是让模型回答一句话直接调 API 就够了。例如用户你好请介绍一下 Python。 模型Python 是一种简单易学、应用广泛的编程语言。这种场景不复杂。但一旦进入真实项目你很快会遇到一堆问题。你想实现的功能直接用 API 时要自己处理什么多轮对话自己保存历史消息、拼接上下文、控制 token 长度私有知识库问答自己做文档加载、切分、向量化、检索、拼 Prompt结构化输出自己要求 JSON、解析 JSON、处理格式错误工具调用自己定义函数 schema、解析模型调用结果、处理异常模型切换每个厂商接口参数不同切换时要改很多代码流式输出自己处理流式 token、前后端传输复杂任务编排自己写状态机、循环、重试、回退调试追踪自己记录每一步输入输出排查成本高这些事情单独看都不难。真正麻烦的是它们经常会同时出现。比如你要做一个“企业知识库问答助手”你就需要多轮对话 RAG 检索 结构化输出 流式响应 错误重试 日志追踪如果全部手写很快就会从“调一个 API”变成“从零造一个 AI 应用框架”。这就是 LangChain 出现的原因。二、LangChain 到底是什么LangChain 是一个用于构建大语言模型应用的开源框架。它的核心目标不是让模型本身变聪明而是帮开发者更方便地组织模型、提示词、工具、记忆、检索和工作流。可以这样理解大模型 发动机 LangChain 传动系统 控制系统 工具箱 你的业务应用 车没有 LangChain发动机也能转。但如果你要做一辆能上路的车就不能只有发动机还需要方向盘、刹车、仪表盘、传动结构和安全系统。LangChain 提供的就是这些工程化组件。LangChain 的核心价值核心价值说明统一模型接口不同模型厂商可以用相似方式调用Prompt 工程化用模板管理提示词避免到处拼字符串输出结构化用 Parser 或结构化输出约束模型返回链式组合用 LCEL 把 Prompt、模型、解析器串起来RAG 支持提供文档加载、切分、向量库、检索器等组件工具调用让模型调用外部函数或服务对话记忆管理多轮对话历史调试追踪可结合 LangSmith 观察调用过程最重要的是这句LangChain 让我们把精力从“怎么调 API”转移到“怎么做产品”。三、直接 API 与 LangChain 的代码对比方式一直接调用模型 API以 OpenAI 风格 API 为例fromopenaiimportOpenAI clientOpenAI()responseclient.chat.completions.create(modelgpt-4o-mini,messages[{role:user,content:你好请用一句话介绍 Python}],)print(response.choices[0].message.content)这段代码没有问题。但如果后续你要加历史对话流式输出结构化输出模型切换RAG工具调用就要继续往上堆业务胶水代码。方式二使用 LangChainfromlangchain_openaiimportChatOpenAI llmChatOpenAI(modelgpt-4o-mini)responsellm.invoke(你好请用一句话介绍 Python)print(response.content)看起来只是换了一种调用方式。但它的意义在于这个 llm 对象是 LangChain 生态里的 Runnable。后续可以直接接入chainprompt|llm|parser也可以使用llm.invoke(...)llm.stream(...)llm.batch(...)这就不只是一次 API 调用而是进入了 LangChain 的统一组件体系。两种方式对比对比项直接 APILangChain简单调用直接、轻量也很简单多模型切换需要适配不同 SDK统一接口更方便Prompt 管理容易散落在代码里PromptTemplate 标准化输出解析需要自己写解析逻辑Output Parser / 结构化输出RAG自己搭全链路有标准组件Agent自己写循环和工具调用有预构建能力调试追踪自己打日志可接 LangSmith我的理解小脚本可以直接 API 一旦要做项目就值得考虑 LangChain。四、LangChain 生态全景LangChain、LangGraph、Deep AgentsLangChain 现在不是一个孤立的小库而是一个围绕 Agent 和 LLM 应用构建的生态。可以先看图。简单理解三者关系Deep Agents 建立在 LangChain 之上 LangChain 建立在 LangGraph 能力之上 LangGraph 提供更底层的图结构运行时。三者对比维度LangGraphLangChainDeep Agents定位Agent 运行时 / 图编排LLM 应用框架Agent 套件核心思想用图精确控制流程用组件灵活搭建应用开箱即用的 Agent 能力适合场景企业级复杂流程、状态机、人机协作Prompt、Chain、RAG、Tools、Agent快速做自主 Agent控制力最强中等较弱上手难度较高中等较低本系列重点后续进阶重点学习了解即可如何选择如果你的需求是我想快速做一个可以自主完成任务的 Agent可以关注 Deep Agents。如果你的需求是我要自定义 Prompt、模型、RAG、工具链优先学 LangChain。如果你的需求是我要精确控制每一步流程有审批、回滚、状态保存再深入 LangGraph。对初学者来说建议路线是先学 LangChain再根据项目复杂度决定是否深入 LangGraph。五、LangChain 核心架构总览LangChain 可以从三层理解。1. 基础层用什么说话这一层负责和模型通信。模块作用Messages标准化消息格式如SystemMessage、HumanMessage、AIMessageModels统一模型调用接口包括 Chat Models、LLMs、EmbeddingsStreaming支持实时流式输出Middleware在模型调用前后插入重试、缓存、超时等逻辑这一层解决的是如何以统一方式和模型交互。2. 能力层怎么做这一层提供模型之上的核心能力。模块作用Prompts提示词模板支持变量插入和复用Output Parsers解析模型输出转换为字符串、JSON、对象Structured Output用 schema 或 Pydantic 约束输出格式Tools让模型调用外部函数或 APIMemory管理对话历史和长期记忆这一层解决的是如何把一次模型调用变成可控能力。3. 应用层做什么这一层面向具体业务。模块作用Chains / LCEL把多个组件串成一条工作流Retrieval / RAG检索外部知识并增强回答Agents让模型自主规划步骤并调用工具LangGraph管理复杂状态和流程编排这一层解决的是如何把多个能力组合成应用。六、用一个知识库问答机器人理解模块协作假设我们要做一个企业内部知识库问答机器人。用户问我们公司的年假政策是什么LangChain 中可能涉及这些模块用户问题 ↓ Prompt组织问题和回答规则 ↓ Retrieval从公司文档中检索相关片段 ↓ Model结合问题和上下文生成回答 ↓ Output Parser把结果转为前端需要的格式 ↓ Memory保存本轮对话支持继续追问如果要让它更智能还可以加入 Agent模型判断是否需要检索 ↓ 需要时调用检索工具 ↓ 必要时调用数据库或其他 API ↓ 最后生成回答这就是 LangChain 的核心思想把大模型能力拆成标准组件再按业务流程组合起来。七、适合用 LangChain 的项目场景LangChain 特别适合这些项目场景为什么适合知识库问答RAG 组件丰富容易组合检索和生成文档分析可结合加载器、切分器、模型和解析器智能客服需要多轮对话、记忆、工具调用AI 学习助手可组合 Prompt、结构化输出、用户记录自动化办公可以让模型调用工具处理复杂流程数据抽取Output Parser 和结构化输出很实用Agent 项目内置工具调用和 Agent 架构能力如果你准备做实训项目我会优先推荐RAG 知识库问答 AI 学习助手 文档智能分析 多工具智能客服这些方向既能体现 LangChain 能力也容易写出简历亮点。八、什么时候不一定要用 LangChainLangChain 很有用但不是所有场景都必须用。如果你的需求只是写一个脚本调用模型生成一句话直接用模型 SDK 可能更简单。如果你的需求是只调用一个模型没有 Prompt 管理没有多轮对话没有结构化输出也可以先不用框架。我的判断标准只调用一次模型直接 API。 需要组织多个组件LangChain。 需要复杂状态编排LangGraph。技术选型不是越复杂越高级而是要匹配问题。别为了用框架而用框架。不然就像为了吃一碗泡面专门修了个厨房仪式感很足效率有点感人。九、学习路线建议基于这份课程资料我建议按下面路线学习入门 LangChain 概述 → 环境准备 → Model I/O 核心 Prompts → Output Parsers → Chains / LCEL 进阶 Memory → Tools → RAG 高级 Agents → LangGraph → 部署与调试更具体一点阶段学习内容目标第 1 阶段概述、环境、模型调用能跑通第一个程序第 2 阶段Prompt、Parser、Chain能搭建基础 AI 工作流第 3 阶段RAG、Tools、Memory能做真实项目功能第 4 阶段Agents、LangGraph能处理复杂任务编排先不要一上来就冲 Agent。Agent 很酷但如果 Prompt、Parser、Chain 都没掌握直接学 Agent 容易变成它好像很智能但我完全不知道哪里出了问题。所以先打地基。十、小结这一篇主要回答了一个问题为什么需要 LangChain可以这样总结模型 API 让我们能调用大模型 LangChain 让我们能构建大模型应用。你需要记住几个关键词Models统一模型调用 Prompts管理提示词 Output Parsers解析输出 Chains组合流程 RAG结合外部知识 Tools调用外部能力 Memory管理上下文 Agents自主规划和执行最重要的底层逻辑LangChain 的价值不是封装一个 API而是把大模型应用开发中的常见模式抽象成可复用组件。下一篇继续学习LangChain 环境准备与第一个程序。也就是如何把开发环境搭起来并真正跑通一次模型调用。参考资料LangChain 官方文档https://docs.langchain.com/oss/python/langchainLangChain API Referencehttps://reference.langchain.com/python/langchain/LangChain GitHubhttps://github.com/langchain-ai/langchain