标准回答
LangChain 是一个用于构建 LLM 驱动应用的开发框架,核心价值在于"编排"而非"模型"。
它要解决什么问题
直接调用一个 LLM 的 API 只是发一段 prompt、拿一段文本。但真实应用远不止于此:要管理提示模板、要给模型注入对话记忆、要从知识库检索相关文档(RAG)、要让模型调用外部工具与 API、要把多步推理串成流程、还要观测和评估整条链路。这些"胶水"工作如果每个项目都手写,既重复又容易出错。LangChain 把这些常见模式抽象成标准化、可复用、可组合的模块,让开发者专注业务而不是管道。
核心组件
- Models:对各家 LLM 与 Embedding 模型的统一封装,屏蔽不同厂商 API 差异。
- Prompts:提示模板与示例管理,支持变量填充、few-shot、结构化输出解析。
- Chains:把一步或多步调用与处理串成可复用流程(现已主要由 LCEL 组合表达)。
- Memory:在多轮对话中保存与回填历史上下文。
- Indexes / Retrieval:文档加载、切分、向量化、向量库检索,是 RAG 的基础设施。
- Agents:让模型自主决定调用哪些工具、按什么顺序执行,实现动态推理。
- Callbacks:贯穿全链路的回调钩子,用于日志、流式输出、监控与追踪。
2026 现状
如今 LangChain 以 LCEL(LangChain Expression Language) 作为组合各组件的核心,用管道方式声明式地拼装链路;生态上配套 LangGraph(构建有状态、可循环的多 Agent 工作流)和 LangSmith(链路追踪、调试、评估与监控),形成"开发-编排-观测"一体的工具栈。
常见误区
⚠️ 常见踩坑
LangChain 不是大模型,也不替你训练或托管模型,它只是把已有模型与外部能力编排成应用的胶水层;同时它并非 RAG/Agent 的唯一选择,简单场景直接调 API 反而更轻。
追问
追问 1:LangChain 和 LlamaIndex 有什么区别?
两者高度重叠但侧重不同。LlamaIndex 起家于"数据索引与检索",在文档加载、切分、索引结构和高级 RAG 检索上更专精;LangChain 更偏"通用编排框架",覆盖 Chains、Agents、工具调用、记忆等更广的应用骨架。实际项目里常见用 LlamaIndex 做检索层、用 LangChain 做整体编排,二者可以混用而非互斥。
追问 2:什么时候不该用 LangChain,直接裸调 API 更好?
当需求只是"单次 prompt 拿结果"或逻辑非常简单时,引入 LangChain 反而增加抽象层、依赖和调试成本。框架的抽象在简单场景下可能让调用栈变深、报错难定位。判断标准是:是否真的需要可复用的检索、记忆、多步编排或工具调用——需要则用框架,不需要就直接用厂商 SDK 更轻量可控。
追问 3:LangGraph 和传统 LangChain Chain 的关系是什么?
LCEL 组合出的链路本质是有向无环、一次性顺序执行,难以表达循环、分支回退和长期状态。LangGraph 把应用建模成"状态图",节点是步骤、边是转移,天然支持循环、条件分支、人工介入和持久化状态,适合复杂多 Agent 与可中断恢复的工作流。可以理解为:简单链路用 LCEL,需要有状态循环编排时升级到 LangGraph。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习