一、LangChain 是什么?

1.1 核心概念

LangChain 是一款专为构建基于大语言模型(LLM)的应用程序而设计的开源框架。你可以把它理解为「大模型应用开发工具箱」—— 它把和大模型交互、处理数据、连接外部工具的各种能力封装成模块化组件,开发者无需从零写所有代码,借助 LangChain 就能快速搭建复杂的 AI 应用。

它提供了预构建的代理架构和模型集成,能无缝将 LLM 融入智能体或大模型应用中。借助 LangChain,你甚至可以用不到 10 行代码,就连接并使用 OpenAI、Anthropic、Google 等主流大语言模型。

1.2 核心价值:打破 LLM 的能力边界

原生大语言模型(LLM)只能完成简单的问答、生成任务,而 LangChain 通过模块化设计可组合性,让开发者轻松整合 LLM 与外部数据、工具、知识库,构建具备复杂逻辑、上下文感知、多步推理能力的 AI 应用,例如:

  • 智能客服、代码生成助手
  • 企业知识库问答系统
  • 自主智能体(AI Agent)

如果把 LLM 比作汽车的发动机,那么 LangChain 就是完整的汽车底盘 + 传动系统 + 控制系统 —— 它让 “发动机” 能适配不同的 “车身”(应用场景),实现更复杂的 “行驶功能”(业务逻辑)。

1.3 开发语言与应用场景

LangChain 支持 PythonJavaScript/TypeScript 双语言开发,生态丰富,兼容主流大语言模型(OpenAI、Anthropic、Google Gemini、开源的 Llama/GLM 等),是当前 LLM 应用开发的主流框架之一。

常见应用场景:

二、LangChain 核心组件全景解析

LangChain 框架的架构遵循 “模块化设计”,每个模块解决特定场景的问题,且模块间可灵活组合。其核心组件分为以下几类:

2.1 基础框架层:LangChain(核心内核)

作为智能体系统的 “操作系统内核”,LangChain 提供统一模型接口与模块化开发基础,包含以下关键能力:

  • 模型抽象:用统一接口连接 OpenAI、Anthropic 等 100 + 模型供应商,屏蔽底层差异。
  • 提示词工程:模板化管理与优化,提升输出质量。
  • 工具集成:支持 API、数据库、向量存储等数百种外部服务。
  • 记忆管理:提供多种记忆策略,解决 LLM 无状态性问题。

文档地址:https://docs.langchain.com/oss/python/langchain/overview

2.2 多智能体编排:LangGraph

LangGraph 是运行时编排引擎,用于实现复杂状态管理与任务流控制:

  • 图结构建模:用有向图表示智能体系统,支持条件分支、循环和状态持久化。
  • 多智能体协作:让多个 Agent 协同完成复杂任务(如 “研究→分析→报告” 流程)。
  • 可视化调试:直观呈现执行路径,便于问题定位。

文档地址:https://docs.langchain.com/oss/python/langgraph/overview

2.3 智能体外骨骼:Deep Agents

专注长周期复杂任务处理:

  • 任务规划:将长任务分解为子目标,制定执行策略。
  • 虚拟文件系统:高效管理大输出,减少 token 消耗。
  • 子智能体委托:动态创建子 Agent 处理专项任务,提升效率。

文档地址:https://docs.langchain.com/oss/python/deepagents/overview

2.4 部署服务:LangServe

将智能体转化为生产级 REST/gRPC API 的部署平台:

  • 支持流式输出、批处理和异步调用。
  • 兼容 FastAPI 生态,便于扩展。
  • 一键部署,自动生成 Swagger/OpenAPI 文档。

文档地址:https://github.com/langchain-ai/langserve

2.5 监控平台:LangSmith

统一的可观测性与质量评估中心:

  • 全链路追踪:可视化 LLM 调用、工具使用和状态变化。
  • 评估与测试:提供自动和人工评测机制。
  • 性能监控:分析响应时间、token 使用和错误率。

文档地址:https://docs.langchain.com/langsmith/home

三、LangChain 核心模块详解

3.1 模型输入 / 输出(Models)

Models 是 LangChain 的核心层,负责与各类 LLM / 嵌入模型(Embedding Model)交互,包含以下子模块:

3.1.1 LLMs 与 Chat Models
  • LLMs:对接大语言模型的基础接口,统一不同厂商的 API 调用方式。
  • Chat Models:针对对话式 LLM(如 GPT-3.5/4 Turbo、Claude Chat)的专用接口,支持结构化对话消息(用户消息、助手消息、系统消息)。
3.1.2 Embeddings

对接文本嵌入模型(如 OpenAI Embedding、BERT、智谱 AI 嵌入模型),将文本转换为向量表示,是知识库问答、文本检索的基础。

3.1.3 实战示例:对接阿里云百炼 API

下面是 LangChain 封装阿里云百炼大模型(qwen-plus)的完整代码示例:

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
import os
from dotenv import load_dotenv

# 加载环境变量(从 .env 文件读取 API Key)
load_dotenv()

# 1. 初始化对话模型(对接阿里云百炼)
chat_model = ChatOpenAI(
    model="qwen-plus",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    temperature=0.7  # 生成随机性(0-1之间,值越大越随机)
)

# 2. 构造对话消息并调用模型
messages = [
    SystemMessage(content="你是一个专业的Python编程助手,回答简洁易懂;"),
    HumanMessage(content="请解释什么是装饰器?")
]
response = chat_model.invoke(messages)
print("模型回复:", response.content)

# 3. 嵌入模型示例(需替换为百炼支持的嵌入模型)
# from langchain_openai import OpenAIEmbeddings
# embeddings = OpenAIEmbeddings(
#     api_key=os.getenv("DASHSCOPE_API_KEY"),
#     base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
# )
# text = "LangChain是LLM应用开发框架"
# vector = embeddings.embed_query(text)
# print(f"向量长度:{len(vector)}")

说明:

参考文档:https://docs.langchain.com/oss/python/langchain/models

3.2 提示词模板(Prompts)

提示词是 LLM 应用的核心,但手写提示词易出错、难复用。LangChain 的 Prompts 模块提供以下功能:

  • Prompt Templates:提示词模板,支持参数化填充(例如定义 “代码解释模板”,只需替换 “代码片段” 参数即可复用)。
  • Chat Prompt Templates:针对对话模型的提示词模板,适配多轮对话场景。
  • Output Parsers:将 LLM 的文本输出解析为结构化数据(如 JSON、字典、类对象),解决 “LLM 输出不可控” 的问题。

参考文档:

3.3 索引(Indexes)

当 LLM 需要处理外部文档(如 PDF、Word、知识库)时,Indexes 模块负责将文档转换为 “可检索” 的格式,核心流程是:

  1. 加载文档(Load):通过 DocumentLoaders 加载 PDF、TXT、网页、Excel 等格式文件。
  2. 分割文本(Split):将长文档分割为短文本块(避免超出 LLM 上下文窗口)。
  3. 嵌入文本(Embed):将文本块转换为向量。
  4. 存储向量(Store):将文本向量存入向量数据库(如 Chroma、Pinecone、Milvus)。
  5. 检索文本(Retrieve):根据用户问题检索相关文本块。

3.4 链(Chains)

Chains 是 LangChain 的 “灵魂”,它允许将多个组件(LLM、Prompt、检索器等)组合成一个可执行的流程,解决 “单步操作无法完成复杂任务” 的问题。常见的 Chain 类型:

  • LLMChain:最基础的链,将 Prompt Template + LLM 组合,实现 “输入参数→生成提示词→调用 LLM→输出结果”。
  • RetrievalQAChain:检索增强生成(RAG)的核心链,组合 “检索器 + LLM”,实现 “用户提问→检索相关文档→将文档和问题传入 LLM→生成基于文档的回答”。
  • SequentialChain:串行链,将多个 Chain 按顺序执行,前一个 Chain 的输出作为后一个的输入。

3.5 记忆(Memory)

原生 LLM 没有 “记忆”,无法记住多轮对话的上下文。Memory 模块解决这个问题,核心类型如下:

  • ConversationBufferMemory:简单缓存所有对话历史。
  • ConversationSummaryMemory:对对话历史进行总结,避免上下文过长。
  • ConversationTokenBufferMemory:按 Token 数限制缓存对话历史,适配 LLM 的上下文窗口。

参考文档:https://docs.langchain.com/oss/python/concepts/memory

3.6 代理(Agents)

Agents 是 LangChain 的高阶能力,让 LLM 能 “自主决策”—— 根据用户问题选择调用哪些工具(如计算器、搜索引擎、代码解释器),完成多步推理任务:

  • Agent:决策核心,负责判断 “该调用哪个工具”“是否需要继续调用工具”。
  • Tool:工具接口,LangChain 内置多种工具(Calculator、SerpAPI、PythonREPL 等),也支持自定义工具。
  • Executor:执行器,负责执行 Agent 的决策,调用工具并返回结果。

参考文档:https://docs.langchain.com/oss/python/langchain/agents

3.7 工具(Tools)

Tools 模块是 Agents 的基础,提供与外部系统交互的接口,LangChain 内置工具包括:

  • 计算类:CalculatorPythonREPL
  • 检索类:SerpAPI(谷歌搜索)、DuckDuckGoSearch
  • 文件类:FileBrowserCSVLoader
  • API 类:RequestsTool(调用 HTTP 接口)

开发者也可通过 @tool 装饰器快速自定义工具:

from langchain.tools import tool

@tool
def calculator(expression: str) -> str:
    """计算数学表达式,例如:"2 + 3 * 4" """
    try:
        return str(eval(expression))
    except Exception as e:
        return f"计算错误:{str(e)}"

3.8 文档加载器(Document Loaders)

负责加载外部文档,支持几乎所有主流格式:

  • 文本类:TXT、Markdown、JSON
  • 办公类:PDF、Word、Excel、PPT
  • 网页类:URL、HTML、Sitemap
  • 数据库类:MySQL、PostgreSQL、MongoDB
  • 其他:Notion、Confluence、GitHub

参考文档:https://docs.langchain.com/oss/python/langchain/knowledge-base#1-documents-and-document-loaders

3.9 评估(Evaluation)

LLM 应用的效果难以量化,Evaluation 模块提供评估工具,支持:

  • 手动评估:人工打分
  • 自动评估:用 LLM 自身评估回答质量
  • 基准测试:对比不同模型 / 链的效果

参考文档:https://docs.langchain.com/langsmith/evaluation-quickstart#evaluation-quickstart


四、LangChain 学习路径建议

4.1 入门阶段

先掌握 Models、Prompts、LLMChain 三个核心模块,实现简单的文本生成、问答功能。

4.2 进阶阶段

学习 Indexes、Memory、RetrievalQAChain,搭建基础的 RAG 知识库问答系统。

4.3 高阶阶段

学习 Agents、Tools,构建具备自主决策能力的 AI Agent。

4.4 工程化阶段

结合 LangSmith 调试、LangServe 部署,实现生产级应用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐