1. 为什么需要 LangChain?
- 传统应用到智能体时代的跨越。
- 单一 LLM 的局限性 :
- 知识时效受限:受限于预训练数据,无法获取最新的实时信息。
- 无法直接与外部系统交互:不能直接查询数据库、调用 API 或使用外部工具。
- 不具备状态保持(记忆)能力:难以维持长期、连贯的多轮对话,对话历史易丢失。
- 核心理念 :为了构建实用的 AI 应用,必须将大语言模型与外部工具、数据源和记忆机制有机结合。而 LangChain 正是作为大模型与应用之间的中间层,封装了这些复杂的逻辑,是当前构建生产级 AI 智能体系统的首选。
2. LangChain 的介绍与核心结构
2.1 LangChain v1.2 的主要模块
随着 v1.x 系列版本的发布,LangChain 进行了彻底的架构重构与瘦身,其核心包实现了最小化,不同的模型供应商分离为独立包:
langchain-core:官方推荐的核心 API,包含 Runnable、BaseMessage 等核心抽象接口,保持轻量。langchain-classic:向后兼容包。将 0.x 中常用而在 1.x 中被移除/不推荐使用的经典 API(如旧的 Chain 结构)迁移至此。langchain-community:第三方集成包。包含各种第三方合作伙伴包,如langchain-openai、langchain-anthropic等,按需安装,避免依赖臃肿。langgraph:智能体系统基础。深度整合了 LangGraph 1.0,用于协调多个 Chain、Agent、Tools,支持循环调用,是实现复杂状态流转和多智能体协作的核心。
2.2 API 文档与资源
学习 LangChain 不需要死记硬背所有 API,而是将其作为工具箱,按需查询:
- 官网 :www.langchain.com/
- Github 地址 :github.com/langchain-a...
- 中文文档 :docs.langchain.org.cn/oss/python/...
- API 参考文档(最权威的类与方法查询地址) :reference.langchain.com/python/lang...
2.3 LangChain 家族的四大支柱
整个生态已覆盖智能体系统全生命周期,由以下四大支柱构成:
- LangChain(基础能力层):提供统一的模型抽象层、模块化设计(Message/Tool/Agent/Middleware)和丰富的集成生态。适用于构建简单的智能体应用。
- LangGraph (运行时编排层):负责复杂、有状态、支持循环的工作流编排。核心思想是将智能体内部抽象为有向图,包括节点(Node)、边(Edge)和状态(State)。
- Deep Agent (智能体抽象层 / 执行框架):定位为 Agent Harness,构建在 LangChain 与 LangGraph 之上。免去开发者从零构建控制逻辑,提供显式规划 、虚拟文件系统 、子智能体协作 、长期记忆 和可扩展中间件等高级能力。
- LangSmith (监控与评估层):可视化监控与测试平台,提供全链路追踪 、调试与优化 、评测与质量控制 及团队协作,形成开发、测试到运维的质量闭环。
3. 大模型(LLM)应用场景与开发模式
3.1 核心技术与开发模式对比
-
纯 Prompt (直接提示词)
- 模式:应用程序 → Prompt → 基础大模型 → Response → 应用程序。
- 交互:简单的单轮或多轮一问一答,大模型是唯一的交互接口。
-
Agent + Function Calling (智能体与工具调用)
- 核心:LLM 作为"大脑"(推理引擎),主动提出调用外部系统(API、数据库、函数)的需求,以此扩展自身能力。
- 示例:用户询问"明天去杭州需要带伞吗?",Agent 判定需要先调用"天气预报 API",获取数据后再向用户反馈建议。
-
RAG (检索增强生成 - Retrieval-Augmented Generation)
- 痛点:解决 LLM 知识冻结(无法实时学习最新数据)和幻觉问题(胡说八道)。
- 流程 :
- 将本地文件(PDF、Word 等非结构化数据或结构化数据)通过
Loader加载,经Text Splitter切割成文本块(Chunks)。 - 通过
Embedding Model转化为向量,存储到向量数据库中。 - 检索时,将用户提问(Query)进行向量化,在向量数据库中进行相似度搜索,召回相关的文本块。
- 把召回的文本块作为上下文(Context),拼接成 Prompt 喂给 LLM 生成精准答案。
- 将本地文件(PDF、Word 等非结构化数据或结构化数据)通过
- 优化 (Reranker 重排) :
- 在文档数量多时,先召回较多文本(如 top 20 或 top 50),使用重排器进行精排,从而提升准确率,减少喂给 LLM 的无关噪声。
- 适用场景:适合高精度和强相关性要求(如客服、专业知识库);不适合极高响应速度要求的场景。
-
Fine-tuning (精调/微调)
- 模式:使用特定任务数据重新训练模型权重。
- 特点:成本最高,但在前几种方式(Prompt、RAG、Agent)完全解决不了问题(如特定语气、深度垂直领域的定制格式输出)时再考虑使用。
3.2 技术选择决策路径
面对具体项目需求,通常的选择思路是:
graph TD
A[准备测试数据] --> B(用对话应用验证可行性)
B --> C{是否要补充外部知识?}
C -- 是 --> D[采用 RAG 方案]
C -- 否 --> E{是否要对接其它系统?}
E -- 是 --> F[采用 Function Calling / Tool]
E -- 否 --> G{是否值得尝试微调?}
G -- 是 --> H[采用 Fine-tuning]
G -- 否 --> I[直接交付/纯 Prompt 方案]
3.3 Agent 开发核心公式与要素
Agent=LLM (大脑)+Planning (规划决策)+Tools (工具使用)+Memory (记忆)+Action (实际行动)
- LLM:推理与决策中枢。
- Planning:任务分解(如 CoT 思维链)与反思自省框架。
- Tools:调用外部 API、数据库等。
- Memory :
- 短期记忆:单次对话的上下文(受限于模型 Token 窗口长度)。
- 长期记忆:跨对话存储的核心知识,通常通过模型微调、知识图谱或向量数据库实现。
- Action:软件接口操作或物理交互的实际执行。