Search

什么是 LangChain?真正解决的问题不是调用大语言模型

LangChain 不是聊天框架,而是一套围绕大语言模型构建应用的软件工程框架。它关注的不是模型如何思考,而是当模型需要和现实世界协作时,我们应该如何组织整个系统。

Pluszzz2 min read

什么是 LangChain?它真正解决的问题,其实不是调用大语言模型

当第一次接触大语言模型时,大多数人的第一段代码几乎都是这样的:

from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "user", "content": "什么是 Transformer?"}
]
)

看起来,一次 API 调用就已经能够完成所有事情。

于是很多人都会产生一种错觉:

AI 应用,不就是「用户输入一句话,模型返回一句话」吗?

真正开始做项目以后,你会发现现实完全不是这样。


当模型开始真正参与业务

假设现在要开发一个企业知识库。

用户提出一个问题:

公司去年的年终奖政策是什么?

这个问题并不能直接交给模型。

模型并不知道你的企业文档,也不知道数据库里存放着什么内容。

真正发生的流程其实更像这样:

  1. 理解用户的问题。
  2. 到知识库检索相关文档。
  3. 将检索结果整理成上下文。
  4. 重新组织 Prompt。
  5. 再交给大语言模型回答。

如果继续扩展需求:

  • 回答前先联网搜索最新信息;
  • 根据用户身份决定能访问哪些文档;
  • 回答结束后记录聊天历史;
  • 回答过程中可以调用数据库、浏览器或者 Python;

那么整个系统已经不再是一次模型调用,而变成了一套完整的工作流。

真正复杂的,其实已经不是模型本身。

而是如何组织模型完成一系列任务。


LangChain 就是在这样的背景下诞生的

很多人第一次接触 LangChain,都会把它理解成一个 Agent 框架。

其实这并不准确。

LangChain 从诞生开始,它想解决的问题一直只有一个:

如何把一次模型调用,扩展成一个可以执行复杂任务的 AI 应用。

换句话说,它更像是一套基础设施。

如果把 GPT 看成 CPU,那么 LangChain 更像操作系统。

它并不会提升模型本身的能力,却负责协调模型与外部世界之间的各种交互。

例如:

  • 如何组织 Prompt;
  • 如何维护聊天上下文;
  • 如何调用外部工具;
  • 如何连接向量数据库;
  • 如何让多个步骤串联起来。

这些能力,最终共同组成了一次完整的 AI Workflow。


LangChain 的核心思想:Everything is Composable

如果只用一句话来概括 LangChain,我更喜欢下面这句话:

Everything is Composable.(一切皆可组合。)

这是 LangChain 最重要,也是最容易被忽略的设计思想。

在传统开发里,我们习惯把业务拆分成很多模块:

  • Controller
  • Service
  • DAO

而在 LangChain 里,开发者同样把 AI 应用拆成很多可以自由组合的小组件。

例如:

  • Prompt
  • Model
  • Retriever
  • Tool
  • Output Parser

这些组件彼此独立,却又能够像积木一样自由组合。

不同项目之间,真正变化的往往不是模型,而是这些组件的组合方式。

这也是 LangChain 名字中 Chain 的由来。

它强调的并不是某一个组件,而是组件之间的连接关系。


从「Chain」到「Graph」

不过,随着 AI Agent 越来越复杂,新的问题又出现了。

最初的 LangChain,更多采用的是一种线性的工作方式。

也就是说:

一个步骤结束以后,才能进入下一个步骤。

这种方式对于 RAG 或简单问答已经足够。

但是对于真正复杂的 Agent,例如:

  • AI Coding Assistant
  • Deep Research
  • Multi-Agent Collaboration

事情开始变得没有那么简单。

模型可能需要:

  • 根据结果再次搜索;
  • 多个工具同时执行;
  • 自己反思刚才的答案;
  • 必要时重新规划整个流程。

工作流已经不再是一条链,而更像一张不断循环的图。

于是,LangGraph 出现了。

很多人认为 LangGraph 是 LangChain 的升级版。

我更愿意把它理解成:

LangChain 负责提供各种能力,而 LangGraph 负责组织这些能力。

一个负责提供组件,一个负责编排组件。

它们并不是替代关系,而是互补关系。


我的理解

很多教程都会告诉你:

LangChain 有 Prompt、Memory、Tool、Retriever、Agent……

这些当然都很重要。

但如果只记住这些 API,很快就会忘记。

真正值得理解的是它背后的设计思想。

在我看来,LangChain 从来都不是一个聊天框架。

它更像一套围绕大语言模型构建应用的软件工程框架。

它关注的,不是「模型如何思考」。

而是:

当模型需要和现实世界协作时,我们应该如何组织整个系统。

这也是为什么今天越来越多的 AI Agent、RAG 系统、企业 Copilot,都能够看到 LangChain 的影子。


写在最后

如果说 GPT 让我们第一次拥有了能够理解自然语言的「大脑」。

那么 LangChain,则让这个大脑第一次拥有了双手、双脚以及记忆。

它不会让模型变得更聪明。

却让模型真正开始具备完成复杂任务的能力。

下一篇,我想聊聊 LangChain 中最重要的设计思想之一:

为什么 Runnable 会逐渐取代传统的 Chain?

PLUSZZZ*ZHANGJIA*