AI Agent常考面试题汇总- Langchain篇
1. 什么是 LangChain?
LangChain 是一套面向大模型应用开发的框架,核心目标不是替代模型本身,而是把模型、提示词、检索、工具调用、记忆、链式编排这些能力串起来,方便做复杂应用。它更像是“应用层基础设施”,把原本散落在 prompt、API 调用、向量库、工具调度里的逻辑统一起来。
2. LangChain 包含哪些核心概念?
LangChain 里比较核心的概念主要包括 Chains、Components、Prompt Templates、Example Selectors、Output Parsers、Indexes、Retrievers、ChatMessageHistory、Agents 和 Toolkits。它们分别负责流程编排、提示构造、示例选择、输出解析、检索增强、历史记忆和工具调用。可以理解成:LangChain 的本质是把大模型应用拆成多个可组合模块,而不是把所有逻辑都塞进一个 prompt 里。
3. LangChain 中 Components and Chains 是什么?
Components 指的是 LangChain 里可复用的基础模块,比如模型、提示模板、检索器、输出解析器、记忆对象等。Chains 则是把这些组件按顺序或者按依赖关系连接起来,形成完整任务流程。比如一个“检索问答链”里,先取用户输入,再召回相关文档,再拼 prompt,再调用模型,再解析输出。Chains 的价值在于把复杂流程显式化,方便调试和复用。
4. LangChain 中 Prompt Templates and Values 是什么?
Prompt Template 是提示词模板,负责定义输入变量、格式和结构;Prompt Values 是模板渲染之后的实际内容。也就是说,模板是“骨架”,Values 是“填充进去的具体数据”。在复杂应用里,模板往往会包含系统规则、上下文片段、任务约束、示例和输出格式,这样做的好处是可控、可复用,也方便后续版本迭代。
from langchain.prompts import PromptTemplate
template = PromptTemplate(
input_variables=["question"],
template="请用简洁方式回答:{question}"
)
print(template.format(question="什么是 LangChain?"))
5. LangChain 中 Example Selectors 是什么?
Example Selectors 的作用是从一组示例里动态挑选最合适的 few-shot 样本放进 prompt。不是所有示例都固定写死在模板里,而是根据当前输入、相似度、标签或任务类型选择更合适的例子。这样做比静态 few-shot 更灵活,尤其在任务类型多、输入分布变化大的场景里,能明显提升提示效果。它本质上是在帮模型“看最有参考价值的样例”。
6. LangChain 中 Output Parsers 是什么?
Output Parsers 负责把模型输出转换成结构化结果,比如 JSON、字典、枚举值或者自定义对象。它的作用不是简单“格式化字符串”,而是把模型生成的自然语言转成后续程序可以稳定消费的数据。对于要接数据库、工作流、工具调用或者前端展示的应用来说,Output Parser 很关键,因为模型输出天然是不稳定的,必须做解析和约束。
7. LangChain 中 Indexes and Retrievers 是什么?
Indexes 是为了把外部知识整理成可检索的形式,比如向量索引、倒排索引或混合索引;Retrievers 则负责根据用户 query 从索引里取回最相关的内容。它们是 RAG 的核心组件之一。简单说,Index 解决“怎么存”,Retriever 解决“怎么找”。在真实业务里,检索效果往往比模型大小更影响最终答案质量。
8. LangChain 中 ChatMessageHistory 是什么?
ChatMessageHistory 用来保存多轮对话历史,通常包括用户消息、助手消息以及可能的系统消息。它的意义不是“存聊天记录”这么简单,而是让模型在连续交互中保留上下文连续性。对于客服、Agent、长任务执行这类场景,ChatMessageHistory 是维持状态的重要基础。实际工程里通常还会结合摘要、裁剪和长期记忆,不会把所有历史无脑塞进上下文。
9. LangChain 中 Agents and Toolkits 是什么?
Agents 是一种让模型自主决定“下一步做什么”的机制,它会根据当前输入和中间观察结果决定调用哪个工具、是否继续推理、是否结束。Toolkits 则是工具集合,通常把一类能力封装成可被 Agent 调用的工具包。比如检索、网页访问、数据库查询、代码执行都可以做成工具。Agent 的关键不是“能调用工具”,而是“能根据任务动态选择工具并完成闭环”。
10. 什么是 LangChain Agent?
LangChain Agent 可以理解为“带工具使用能力的模型执行体”。和普通的 LLM 问答不同,Agent 不只是生成答案,还会根据任务需要去调用工具、观察结果、继续决策,直到完成目标。它更适合复杂任务,比如多步骤检索、自动化操作、信息整合和任务分解。不过 Agent 也更难控,容易出现工具调用错误、循环思考、状态丢失等问题。
11. LangChain 如何调用 LLM 生成回复?
LangChain 调用 LLM 的核心步骤一般是:先构造 prompt,再把 prompt 传给模型,再接收模型输出,最后做解析或后处理。如果有链式结构,还会在中间插入检索、记忆、工具调用等步骤。对于不同模型,LangChain 会封装统一接口,方便切换 OpenAI、Anthropic、国产模型等后端。真正复杂的地方不是“调一次模型”,而是如何把上下文、工具和输出格式一起控制好。
from langchain.chat_models import ChatOpenAI from langchain.schema import HumanMessage llm = ChatOpenAI(model="gpt-4o-mini") resp = llm.invoke([HumanMessage(content="解释一下 LangChain 是什么")]) print(resp.content)
12. LangChain 如何修改提示模板?
LangChain 修改提示模板一般有两种方式:一种是直接改 PromptTemplate 的模板文本和变量;另一种是通过组合多个消息模板来动态拼装系统提示、用户输入和上下文内容。工程上通常不会把所有逻辑写成一段死模板,而是拆成角色提示、任务提示、约束提示和输出格式提示,这样更容易维护。复杂场景下还会把模板版本化,便于 A/B 测试和回滚。
13. LangChain 如何链接多个组件处理一个特定的下游任务?
典型做法是把任务拆成多个可组合步骤,比如“输入理解 → 检索召回 → 上下文拼接 → 模型推理 → 输出解析”。每一步都用一个组件表达,然后通过 Chain 或 Runnable 串起来。这样做的好处是每一层职责清晰,出错时也容易定位到底是检索问题、prompt 问题还是输出解析问题。复杂任务里,这种显式编排比把所有东西塞到一个 prompt 里稳定得多。
# 伪代码示意 query -> retriever -> docs -> prompt_template -> llm -> output_parser
14. LangChain 何 Embedding & vector store?
Embedding 是把文本映射到向量空间的表示方式,向量相近通常意味着语义更接近。Vector Store 是存储这些向量并支持相似度检索的系统,比如 FAISS、Milvus、Chroma 等。LangChain 把 Embedding 和 Vector Store 封装起来,方便构建语义检索、RAG 和记忆系统。实际使用时,Embedding 的质量、切片策略和召回排序往往比“用了哪个库”更重要。
15. LangChain 里如何实现一个简单的 RAG 流程?
RAG 的基本流程就是:先把文档切片并向量化,再在用户提问时检索相关片段,最后把检索结果和用户问题一起放进 prompt 让模型生成回答。重点不只是“能检索”,而是检索内容要足够相关、足够完整、且不会把噪声塞进上下文。很多 RAG 效果差,不是模型差,而是切分、召回和排序这几个环节没做好。
16. LangChain 里如
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.
查看21道真题和解析