上一篇立了三根价值轴:组件复用、流程编排、可观测治理。但如果你现在打开 LangChain 的官方文档,会立刻撞上一个困惑——到处都在讲 LangChain、LangGraph、langchain-core,名字像,又不止一个。

很多人卡在这里:以为是三个互相竞争的库,或者以为要全部学完才能用。都不是。它们是同一个体系的三层,各管一摊,边界清晰。这一篇就把这张地图铺开:三层分别是什么、各解决什么问题、你该在哪一层花力气。

先看一张总图:三层叠起来

LangChain 的 v1.0 架构,最底下一层、中间一层、最上面一层,从下往上抽象程度递增,越往上越「开箱即用」,越往下越「灵活可控」。

v1.0 三层架构:从积木到编排到应用

三层从下到上分别是:

  • 底层 langchain-core:提供最基础的「积木」——Runnable 协议、Prompt、Parser、模型接口、Embedding、VectorStore、Retriever。这是整个生态的地基,最稳定。
  • 中层 LangGraph:负责把积木编成「有状态的流程」——图、状态、checkpoint、中断。这是引擎,处理循环、分支、长时间运行。
  • 顶层 langchain:在 LangGraph 之上包出「开箱即用的 Agent」——create_agent、middleware、标准工具。这是你日常最常直接用的。

一句话记住它们的关系:core 提供积木,LangGraph 把积木编成图,langchain 在图上包出 Agent。三层不是竞争,是分工。

底层:langchain-core,最稳的地基

这一层做的是最朴素的事——把 LLM 应用里所有异构的东西,统一成一种可组合的积木

langchain-core:把异构组件统一成 Runnable

它在 v1.0 里提供的核心抽象:

抽象 是什么 解决什么
Runnable 统一的输入→输出协议 所有组件用同一种方式组合(上一篇讲过)
Prompt 模板 把变量填进固定文案 prompt 复用、不散落在代码里
OutputParser / 结构化输出 把模型的自由文本解析成结构 让模型输出可被程序消费
ChatModel / LLM 接口 统一不同模型厂商的调用 换模型不改业务代码
Embedding 接口 把文本转向量的统一接口 换 embedding 模型不动
VectorStore / Retriever 接口 存储与检索的统一抽象 换向量库不动

这一层的关键特征是只定义接口和最基础实现,不做编排。它不知道「先检索再调模型」这种流程——那是中层的活。底层只保证:无论你用 OpenAI 还是 Anthropic、用 Pinecone 还是 Chroma,它们都能被当成同一种东西来对待。

什么时候你主要和底层打交道?当你只是做单点功能(一个 prompt、一次解析、一次检索),还不需要复杂流程的时候。整个 Phase 1 后半段(05–07)都在讲这层。

中层:LangGraph,把积木编成图

这是 v1.0 之后整个体系的重心。底层解决了「单点标准化」,但真实应用是流程——要循环、要分支、要中断恢复——这些底层管不了,由 LangGraph 接手。

LangGraph:把积木编成有状态的图

LangGraph 在底层之上引入了几个新东西:

  • StateGraph(图):把流程建模成「节点 + 连线」的图,节点是一步处理,连线决定下一步去哪
  • State(状态):在节点间流转的数据,比如对话历史 + 业务上下文
  • Checkpoint(检查点):每一步把状态存下来,让流程能暂停、能恢复、能跑很久
  • Interrupt(中断):在某个点暂停,等人介入后再继续

为什么需要这一层?因为 LLM 应用里的流程不是直线。一个 Agent 要「思考 → 调工具 → 看结果 → 再思考」,这是个循环;遇到敏感操作要「停下来等人审批」,这是个中断;不同情况走不同分支,这是个条件路由。这些用底层的链式管道(LCEL)硬写,很快就会失控。LangGraph 把它们变成看得见、改得动的图。

整个 Phase 2(08–17)都聚焦这层。它是你能不能从「会跑 demo」走到「做得出靠谱 Agent」的关键。

顶层:langchain,开箱即用的 Agent

不是每个人都想从「画图、定义状态」开始造 Agent。很多人只是想要一个「能调工具、能记住上下文、能被定制」的 Agent,拿来就用。这一层就是为这类需求准备的。

langchain:在图上包出开箱即用的 Agent

顶层提供的核心:

  • create_agent:标准 Agent 入口,底层跑的就是一个 LangGraph——模型调用 → 执行工具 → 回灌 → 重复,直到给出答案
  • Middleware:不改核心 loop,通过钩子注入「记忆管理、上下文压缩、护栏」等横切关注点
  • 标准工具集:开箱即用的工具定义、绑定、调用

这一层的价值是封装好的套路:你不需要自己画 Agent 的状态机图,create_agent 给你一个合理的默认实现;你想定制,用 middleware 钩进去,而不是重写整个循环。

Phase 3(18–24)讲透这层,重点是 create_agent 和 middleware 这对组合。

一个判断:三层我该在哪层花力气

很多人会问:是不是三层都要学透才能用?不是。这三层对应不同用法,你的精力分配应该跟着用法走。

你的目标 主要在哪层 占用精力
做单个功能(prompt、检索、解析) 底层 core
做标准 Agent(调工具、有记忆) 顶层 langchain
做复杂流程(多 Agent、循环、人工审批) 中层 LangGraph

一个务实的判断:先吃透顶层拿到产出,遇到顶层不够用时下沉到中层,底层按需查。这是从「能做出东西」到「能驾驭复杂场景」的进阶路径,而不是一上来就从底层啃。

这也是本系列的讲解顺序设计:Phase 1 铺底层基础(让你理解积木),但很快进 Phase 2 的 LangGraph(重心),再用 Phase 3 的顶层把 Agent 收回来——是「基础 → 引擎 → 应用」的循环,不是按层数线性堆叠。

收束:有了地图,再上路

这一篇铺开了 LangChain v1.0 的三层地图:

  • 底层 core 提供统一的积木,只管标准化,不管流程
  • 中层 LangGraph 把积木编成有状态的图,管循环、分支、中断
  • 顶层 langchain 在图上包出开箱即用的 Agent,管开箱即用和定制

带着这张地图,你会发现后面每一篇都在讲「这张地图上的某一块」。下一篇会落到地图的最底——Runnable 协议:它是整个地基里最关键的一块积木,也是理解「为什么所有组件都能用同一种方式组合」的钥匙。


关于十三Tech

我是十三,All in AI Agent 方向的架构师,专注 AI 工程实践。我相信 AI 是程序员的最佳搭档。

如果你想跟完这套「图解 LangChain」,欢迎关注公众号 「十三Tech」。全系列 42 篇,会按认识基础、LangGraph 状态机、Agent 与 middleware、RAG 检索、Tools/MCP/记忆、生产化收束这条线更新。

十三Tech公众号二维码