LangChain 是什么?它主要用来解决什么问题?
- 标签:LangChain、LangChain 基础
🏛 业务架构师
LangChain 是什么、解决什么问题(与 028 题同源,这里从"要不要用"的决策角度补充):
是什么:最流行的 LLM 应用开发框架——把模型调用、提示模板、检索(RAG)、记忆、工具调用、Agent 编排抽象成可组合的标准组件,用统一的 Runnable 协议串接,配套 LangSmith 可观测与评测。
解决什么问题:LLM 应用开发中 80% 的工作量不在调模型 API,而在周边工程——对接数据源、管理提示词、维护会话、编排多步流程、换模型适配、监控调试。LangChain 把这些"每个项目都要重写一遍"的部分标准化——5 人团队两周出 MVP 而不是两个月,这就是它的核心价值:降低试错成本,加速价值验证。
企业要不要用,我的决策框架:
- 用它的理由:生态最全(组件/文档/案例)、人才好招(社区大)、快速验证期效率无敌;
- 防它的理由:抽象层多导致排错困难、版本迭代有 Breaking Change、深度绑定后迁移成本高。
我的实践姿势(可直接背):POC 期全量用 LangChain 换速度;生产期收窄依赖面——核心链路只用最底层抽象(模型接口+LCEL),复杂业务逻辑自己写;架构上永远保留"离开 LangChain"的能力——提示词、评测集、数据管道这些真正值钱的资产框架无关。"框架是租的,资产是自己的"——这句话就是我的选型立场。
🏗 系统架构师
LangChain = LLM 应用开发的编排框架:统一抽象(模型/Prompt/检索/记忆/工具)+ 组合管道(LCEL)+ Agent 编排(LangGraph),解决 LLM 生态的碎片化问题:
解决的问题(架构视角三个):
- 集成碎片化:模型厂商、向量库、工具 API 各自为政——LangChain 的统一抽象(
BaseChatModel/VectorStore/Tool)实现依赖倒置,换供应商只改配置;集成生态(上百个包)让 PoC 速度从周级到天级; - 缺乏编程范式:LLM 应用早期各家手写胶水代码——LangChain 定义了标准结构(链式管道、消息模型、输出解析、流式/异步原语),社区形成共同语言;
- 复杂编排缺工具:Agent 循环、状态管理、多步工作流——LangGraph 提供图状态机 + checkpoint 持久化 + human-in-the-loop,把"手写 while 循环 + 全局变量"的粗糙实现工程化。
清醒的边界(生产权衡):
- 抽象税:层数多 → 调试栈深、性能开销、版本迭代快接口不稳——生产核心链路薄封装是正当策略(PoC 用框架抢速度,稳定后热点路径绕过直连 SDK);
- 不替你解决的:评估体系(LangSmith 是配套不是内置能力)、数据质量、Prompt 资产管理——这些是应用团队的功课。
选型结论:2026 年 LangChain+LangGraph 仍是 LLM 应用默认起点(生态最大、文档最全),但把 Prompt/评估集/工具实现沉淀在框架外——框架可换,资产永存。
💻 全栈开发专家
LangChain 是 LLM 应用开发框架,解决的是「从模型 API 到可维护的应用」之间的所有胶水问题:
它解决的问题清单(按痛点):
- 集成碎片化:各家模型、几十种向量库、各种数据源的 SDK 各不相同——LangChain 统一抽象(ChatModel/VectorStore/Retriever),换实现不动业务代码;
- 编排复杂度:prompt→检索→生成→解析的流程、流式/重试/降级这些横切需求——LCEL 管道一行组合,工程能力内置;
- RAG 全链路:加载→切分→嵌入→检索→重排→生成的每个环节都有现成组件;
- Agent 开发:工具定义、Agent 循环、记忆管理、(配合 LangGraph)状态机编排;
- 可观测与评估:LangSmith 集成 trace/评测,LLM 应用的「单元测试」基础设施。
一个最小感受(10 行 RAG):
python
chunks = RecursiveCharacterTextSplitter().split_documents(docs)
vs = Chroma.from_documents(chunks, OpenAIEmbeddings())
chain = ({"context": vs.as_retriever() | fmt, "question": RunnablePassthrough()}
| prompt | llm | StrOutputParser())
chain.invoke("退货政策")我的使用哲学(十年工程视角):
- 原型期:LangChain 极快,生态省几周胶水代码;
- 生产期:只依赖 langchain-core + partner 包,核心链路薄抽象自研——框架升级、抽象泄漏的长期成本要提前防;
- 它最大的价值是把「LLM 应用的通用模式」沉淀成了标准件,哪怕最后自研,你也应该先用它学一遍「该有哪些件」。