面试知识库
进阶

LangChain核心概念#

一句话答案#

LangChain 是 LLM 应用开发框架,核心抽象:Model / Prompt / Chain / Agent / Memory / Retriever。

核心要点

核心组件:

  • Model:LLM 调用封装
  • Prompt Template:提示词模板
  • Chain:多步骤流水线
  • Agent:基于 LLM 决策的工具调用
  • Memory:对话历史管理
  • Retriever:RAG 检索器

LCEL(LangChain Expression Language): 声明式链构建 prompt | llm | parser

面试回答(2分钟版)

LangChain是目前最主流的LLM应用开发框架,它把构建LLM应用的常见模式抽象成六大组件。Model是对各种LLM的统一封装,屏蔽不同API的差异。Prompt Template是提示词模板,支持变量替换,避免硬编码Prompt。Chain把多个步骤串成流水线,比如先检索再生成。Agent是最核心的概念——让LLM自己决定调用哪个工具,实现了从”被动回答”到”主动执行”的跨越。Memory管理对话历史,支持滑动窗口、摘要等策略控制上下文长度。Retriever是RAG的检索接口,对接向量数据库做相似度搜索。LCEL(LangChain Expression Language)是声明式的链构建语法,用管道符连接组件:prompt | llm | parser,代码简洁直观。不过LangChain的抽象层有时过重,简单场景直接调SDK可能更合适。

追问与易错

追问方向:

  • LangChain 的 LCEL 和传统 Chain 有什么区别?解决了什么问题? → LCEL 用管道符 | 声明式组合组件,支持流式/批量/异步统一接口。解决了传统 Chain 类爆炸(每种组合写一个类)的问题
  • LangChain 和 LangGraph 什么时候用哪个? → 线性流程用 LangChain(检索→生成),需要条件分支/循环/人工审批用 LangGraph(显式状态图)
  • 你们项目用框架吗?为什么选/不选 LangChain? → DocMind 没用,选 Spring AI 原生集成。原因:Java 技术栈 + 需要深度定制 ReAct 循环 + LangChain 的抽象层在精细控制时反而是障碍
  • LangChain 调试困难时怎么排查? → 开启 verbose 模式看每步输入输出,用 LangSmith 做链路追踪,关键是理解底层 ReAct 原理才能定位是 Prompt 问题还是工具问题

易错点:

  • ❌ 过度依赖框架封装不理解底层 → 出问题时需要看框架源码排查,不理解 ReAct 原理就无法 debug Agent 行为
  • ❌ 所有场景都用 LangChain → 简单的 API 调用直接用 SDK 更清晰,框架适合复杂编排场景
  • ❌ 认为 Python 框架是唯一选择 → Java 生态有 Spring AI,Go 有 LangChainGo,选型要看团队技术栈

项目实践(DocMind): 没有使用 LangChain,选择 Spring AI 原生集成。原因:项目是 Java 技术栈(Spring Boot),需要深度定制 ReAct 循环和工具调用流程,Spring AI 提供了 Function Calling 和 MCP 原生支持,且团队对 Spring 生态更熟悉。LangChain 的抽象层在需要精细控制时反而成为障碍。