读完这篇文章你可以按层定位 LangChain Python 仓库知道 langchain-core、langchain、langchain-classic、partners/*、standard-tests、model-profiles 分别解决什么问题以及一条请求在 RAG 和 Agent 场景下是怎么流动的。适合谁工程实践者、技术负责人或者刚接手 LangChain 代码库的人。如果你正在做 Agent、RAG、模型切换、Provider 适配这篇会很有用。阅读假设本文基于当前 LangChain Python monorepo 结构整理聚焦 libs/ 目录下的包关系不展开 JS/TS 仓库也不深入 LangSmith 和 LangGraph 独立产品能力。01 背景为什么很多人第一次看 LangChain 会觉得“又大又散”LangChain 容易让人混淆不是因为它设计混乱而是因为它把“公共 API”“核心抽象”“第三方集成”“文本处理”“标准测试”“模型能力元数据”拆成了多个包。如果你只盯着 pip install langchain 这个入口很容易误以为所有能力都塞在一个包里。等到你开始看源码、做适配、排查问题就会发现真正的结构是分层的。更关键的是LangChain 还有两套视角要同时看。一套是仓库视角代码放在哪一层谁依赖谁。另一套是运行时视角一条请求从 Prompt 到 Model、从 Retriever 到 Answer、从 Agent 到 Tool Loop 是怎么跑起来的。02 目标把 LangChain 看成“分层架构 三条主线”如果只用一句话概括我会把 LangChain 理解成这样LangChain 不是一个“大而全”的单包而是一套由 langchain-core 抽象协议、langchain 公共入口、partners/* Provider 适配、text-splitters 预处理工具、standard-tests 标准回归、model-profiles 能力画像组成的工程化体系。在这个体系上最值得抓住的三条运行时主线是• Prompt / Runnable / Model 组合主线• RAG 检索增强主线• Agent 工具调用主线只要你把这四层结构和三条主线对上LangChain 的整体架构就不再抽象。03 方案总览先看 monorepo再看每条请求怎么流动先看整体分层图。图 1LangChain Python monorepo 分层架构。它不是一个单体包而是公共入口、核心抽象、集成适配与质量保障的组合。从这张图里可以先抓住 6 个判断langchain 是 v1 的公共入口面向今天的新项目。langchain-classic 是 legacy 包承接旧链路、历史 API 和兼容逻辑。langchain-core 定义核心抽象例如 chat model、retriever、vector store、runnables。partners/* 提供第三方 Provider 集成比如 OpenAI、Anthropic、Ollama 等。text-splitters 负责把长文档切成更适合索引和检索的 chunk。standard-tests 和 model-profiles 不是“外围工具”而是集成质量和能力元数据的一部分。这也是为什么很多人在看 LangChain 时会犯第一个错误明明想找“协议层”却一直在“公共入口层”里兜圈子。04 关键步骤先拆公共入口和运行时组合层如果你想理解一条普通 LLM 调用是怎么装起来的最值得看的是 init_chat_model()、ChatPromptTemplate 和 RunnableSequence / LCEL 之间的关系。图 2init_chat_model() 负责把 Provider 适配包装配成统一的 BaseChatModel而 prompt | model 会组合成 RunnableSequence。这里最重要的不是 API 名字而是职责边界• init_chat_model() 负责“统一入口”。你给它模型标识和 Provider它去装配对应的集成包。• BaseChatModel 负责“统一模型接口”。无论底层是 OpenAI、Anthropic 还是其他 Provider运行时都尽量收敛到统一行为。• ChatPromptTemplate 负责“把输入组织成消息”。• RunnableSequence / LCEL 负责“把组件声明式地接起来”并天然支持 invoke、stream、batch 这一类执行方式。换句话说LangChain 的关键价值不只是“帮你调一次模型”而是把 Prompt、Model、Parser、Retriever、Tool 这些组件放进同一套可组合协议里。下面这段代码就是最小骨架from langchain.chat_models import init_chat_model from langchain_core.prompts import ChatPromptTemplate model init_chat_model(openai:your-chat-model) prompt ChatPromptTemplate.from_messages( [ (system, 你是内部知识库助手。), (human, {question}), ] ) chain prompt | model reply chain.invoke({question: LangChain 的核心抽象是什么})这段代码背后的重点不是 invoke()而是中间那条 prompt | model。这个竖线表达的不是“字符串拼接”而是 LCEL 的组合语义。它意味着 LangChain 在运行时把 Prompt 和 Model 收敛成了一个 Runnable所以你后面可以继续接 parser、retriever、fallback、history、trace config。05 关键步骤再看 RAG 和 Agent 两条主线LangChain 最常见的两种业务线路是 RAG 和 Agent。它们看起来都在“拿上下文再回答”但本质上解决的是两个不同问题。RAG 解决的是“如何把外部知识带进模型上下文”。Agent 解决的是“如何让模型做决策、调用工具、管理状态并循环执行”。先看 RAG。图 3RAG 的重点不是“检索一下就结束”而是把索引阶段、检索阶段、答案合成阶段拆开。这条链路里建议记住 4 个动作用 text-splitters 把原始文档切成 chunk。用 embeddings 把 chunk 向量化写入 vector store。通过 as_retriever() 把 vector store 暴露成 retriever。用 create_retrieval_chain() 把“检索结果 问题输入 combine_docs_chain”拼成一个可执行链。一个足够小、但能对上架构图的骨架是这样from langchain_classic.chains import create_retrieval_chain retriever vector_store.as_retriever( search_typemmr, search_kwargs{k: 4} ) rag_chain create_retrieval_chain(retriever, question_answer_chain) result rag_chain.invoke({input: LangChain 的核心抽象是什么})如果你用的是带对话历史的问答链路会再多一层“history-aware retriever”。本质上它先把用户问题改写成更适合检索的独立问题再把检索结果送给回答链。再看 Agent。图 4create_agent() 不是简单返回一个函数而是把模型、工具、状态持久化能力编译进一个基于 LangGraph 的执行图。这张图最关键的地方有 5 个create_agent() 接收 system_prompt、tools、middleware、response_format 等装配输入。它产出的不是一次性调用器而是一个编译后的 StateGraph。Model Node 先跑模型如果输出里有 tool_calls就进入 Tool Node。Tool Node 执行完以后会把 ToolMessage 回灌给模型形成循环。checkpointer 和 store 负责线程级状态和跨线程共享状态。最小骨架如下from langchain.agents import create_agent def check_weather(location: str) - str: return f{location}: sunny agent create_agent( modelopenai:your-chat-model, tools[check_weather], system_prompt你是一个会调用工具的助手。, ) for chunk in agent.stream( {messages: [{role: user, content: 帮我查一下上海天气}]}, stream_modeupdates, ): print(chunk)如果你把 RAG 和 Agent 放在一起看会发现一个非常实用的区分标准RAG 更像“补上下文”。Agent 更像“做决策和执行动作”。很多系统会把两者组合起来但不要在脑子里把它们混成一件事。06 别忽略保障层为什么 standard-tests 和 model-profiles 也属于架构如果你只看运行时很容易低估 LangChain 的工程性。但在 monorepo 里Provider 集成不是“写个 adapter 就完了”。它后面还有一套维护闭环。图 5一个 Partner 集成要稳定不只要实现接口还要跟上模型画像刷新和标准测试。这张图对应的现实含义是• langchain-core 给出了接口契约。• partner package 去实现这些契约。• langchain-tests 提供标准测试基座保证不同 Provider 至少在基础行为上可比。• langchain-model-profiles 则负责把模型能力数据同步进集成包让 .profile、structured output、tool calling 等能力判断更可靠。这也是为什么我会把 standard-tests 和 model-profiles 视为“架构层的一部分”而不是“辅助脚本”。它们决定了 LangChain 不是只追求“能跑”还追求“多 Provider 下仍然可维护、可回归、可扩展”。07 踩坑与排雷把 langchain 当成唯一入口。现象是想看抽象协议却只在公共 API 上打转。解决方法是先判断你要看的到底是“接口层”还是“入口层”。看协议去 langchain-core看公共装配去 langchain。把 langchain-classic 当成新增功能主阵地。langchain-classic 当然还能用但它主要承接 legacy chains、历史 re-export 和兼容逻辑。做新功能时优先看主 langchain 包。做 RAG 时只盯着向量库不看切分策略。很多检索效果问题不是 vector store 本身有问题而是 chunk 太大、太碎或者 history-aware retriever 根本没接上。做 Agent 时只盯着模型不看状态层。当你需要中断恢复、跨轮次记忆、跨线程共享信息时真正影响系统设计的是 checkpointer 和 store而不是 prompt 再润色一下。新增 Provider 适配只写代码不补保障链路。如果一个集成没有配套标准测试和模型能力元数据它在多人协作和后续升级里会越来越难维护。怎么验证你是真的看懂了你能回答langchain-core 和 langchain 的边界分别是什么。能画出一条调用从 ChatPromptTemplate 到 RunnableSequence 再到 BaseChatModel 的路径。你能说明 RAG 和 Agent 的分工差异。你能说出新增一个 Provider 时至少要看哪几层接口、适配、标准测试、能力画像。可复用清单拿走就能用想看 v1 公共 API先读 libs/langchain_v1想看核心协议先读 libs/core想看 legacy / 兼容逻辑再看 libs/langchain想看文本切分看 libs/text-splitters想看 Provider 适配看 libs/partners/*想看统一回归看 libs/standard-tests想看模型能力元数据看 libs/model-profiles结尾下一步怎么做如果你准备继续读源码我建议按这条顺序走一遍从 init_chat_model()开始理解公共模型入口怎么落到具体 Provider。从 create_retrieval_chain()开始理解 RAG 为什么是“检索组件 合成组件”的组合。从 create_agent()开始理解 LangChain 为什么把 Agent 建模成图而不是单次函数调用。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】