LangChain

LangChain 是一个用于构建 大语言模型(LLM)应用 的开源开发框架。它最初主要支持 Python,后来也推出了 JavaScript/TypeScript 版本,目的是让开发者能够更方便地将大模型与外部数据、工具和业务流程结合起来,而不仅仅是简单地调用模型 API。

可以把它理解为:

如果 OpenAI、Anthropic 等提供的是“大脑”,那么 LangChain 提供的是把大脑连接到工具、数据库和业务系统的“神经系统”。

LangChain 能做什么?

它主要解决以下几类问题:

1. 统一调用各种大模型

不管你使用的是:

  • OpenAI GPT
  • Anthropic Claude
  • Google Gemini
  • DeepSeek
  • 本地模型(如 Llama)

LangChain 提供了统一的接口,方便切换模型,而不用大改代码。

例如:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4.1")
response = llm.invoke("介绍一下LangChain")

2. Prompt 管理

把 Prompt 模板化,而不是字符串拼接。

例如:

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template(
    "请把下面内容翻译成英文:{text}"
)

prompt.invoke({
    "text": "你好"
})

这样方便维护复杂 Prompt。


3. 连接外部数据(RAG)

这是 LangChain 最流行的用途之一。

例如:

PDF
Word
数据库
网页
知识库
 文档切分
Embedding
向量数据库
LLM回答问题

这就是大家常说的 RAG(Retrieval-Augmented Generation,检索增强生成)

常用组件包括:

  • Document Loader
  • Text Splitter
  • Embedding
  • Vector Store
  • Retriever

4. 调用工具(Tools)

例如:

模型不会算:

345678 × 2345

它可以调用:

  • Python
  • 搜索引擎
  • 天气 API
  • 数据库
  • 企业接口

例如:

用户:
北京天气


LLM


Weather API


返回天气


LLM组织语言回复

5. Agent(智能体)

Agent 是 LangChain 的核心能力之一。

例如用户说:

帮我查一下苹果公司股价,然后写一份分析。

Agent 可以:

① 理解任务


② 调用股票API


③ 获取价格


④ 分析数据


⑤ 输出报告

Agent 会决定:

  • 是否调用工具
  • 调哪个工具
  • 调几次

6. Memory(对话记忆)

例如:

用户:
我叫Tom

AI:
好的。

用户:
我叫什么?

Memory 可以保存上下文。

不过,现代应用通常更倾向于自己管理对话历史,而不是依赖 LangChain 早期的 Memory 抽象。


LangChain 的核心模块

LangChain
├── Models(模型)
├── Prompts(提示词)
├── Chains(流程)
├── Tools(工具)
├── Agents(智能体)
├── Retrievers(检索)
├── Vector Stores(向量库)
└── Output Parsers(输出解析)

一个简单流程

例如:

用户提问


Prompt


LLM


调用搜索工具


LLM


返回答案

或者:

用户


RAG


检索知识库


LLM


回答

LangChain 与其他框架的区别

框架特点适合场景
LangChain功能全面、生态成熟RAG、Agent、多模型集成
LangGraph基于状态机/图的 Agent 编排,更适合复杂、多步骤工作流多智能体、长流程应用
LlamaIndex更专注于数据接入和 RAG知识库问答、文档检索
OpenAI Agents SDK与 OpenAI 模型和工具深度集成基于 OpenAI 生态开发 Agent

LangChain 的优点

  • 支持多种模型,切换成本低。
  • 提供丰富的组件,覆盖 RAG、Agent、工具调用等常见场景。
  • 社区活跃,生态完善,与众多向量数据库、模型和第三方服务集成良好。

需要注意的地方

  • 学习曲线相对较陡,概念和组件较多。
  • API 在近几年迭代较快,不同版本之间可能存在较大变化。
  • 对于简单应用(例如单次调用模型),直接使用模型官方 SDK 往往更轻量,不一定需要引入 LangChain。

什么时候该用 LangChain?

如果你的项目只是:

  • 调用一次 LLM 完成聊天、翻译或总结;

直接使用模型官方 SDK 通常已经足够。

如果你的项目需要:

  • 接入企业知识库(RAG);
  • 调用搜索、数据库、API 等外部工具;
  • 构建多步骤工作流或 Agent;
  • 在不同模型之间灵活切换;

那么 LangChain 能显著减少开发工作量,并提供更好的模块化能力。随着近年来 Agent 应用的发展,很多开发者也会结合 LangGraph 使用 LangChain,以构建更复杂、更可靠的智能体系统。

Vincent zhai
Vincent zhai
Full-Stack Engineer