核心要点

  • LangChain 是面向 LLM 应用开发的编排框架,不是模型本身

  • 解决的工程问题:把模型/提示/记忆/检索/工具/Agent 粘合成可运行应用

  • 核心组件:Models、Prompts、Chains、Memory、Indexes/Retrieval、Agents、Callbacks

  • 2026 现状:以 LCEL 为组合核心,生态扩展为 LangGraph(编排有状态 Agent)+ LangSmith(可观测与评估)

标准回答

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 反而更轻。

追问

追问 1LangChain 和 LlamaIndex 有什么区别?

两者高度重叠但侧重不同。LlamaIndex 起家于"数据索引与检索",在文档加载、切分、索引结构和高级 RAG 检索上更专精;LangChain 更偏"通用编排框架",覆盖 Chains、Agents、工具调用、记忆等更广的应用骨架。实际项目里常见用 LlamaIndex 做检索层、用 LangChain 做整体编排,二者可以混用而非互斥。

追问 2什么时候不该用 LangChain,直接裸调 API 更好?

当需求只是"单次 prompt 拿结果"或逻辑非常简单时,引入 LangChain 反而增加抽象层、依赖和调试成本。框架的抽象在简单场景下可能让调用栈变深、报错难定位。判断标准是:是否真的需要可复用的检索、记忆、多步编排或工具调用——需要则用框架,不需要就直接用厂商 SDK 更轻量可控。

追问 3LangGraph 和传统 LangChain Chain 的关系是什么?

LCEL 组合出的链路本质是有向无环、一次性顺序执行,难以表达循环、分支回退和长期状态。LangGraph 把应用建模成"状态图",节点是步骤、边是转移,天然支持循环、条件分支、人工介入和持久化状态,适合复杂多 Agent 与可中断恢复的工作流。可以理解为:简单链路用 LCEL,需要有状态循环编排时升级到 LangGraph。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习