AI大模型面试题最全详解:LangChain + Milvus + RAG + Agent + FDE + LangGraph
讲的最详细的AI大模型面试题:Langchain+Milvus+RAG+Agent+FDE+langgraph!
摘要:本文是全网最详细的AI大模型面试题汇总,深度覆盖LangChain、Milvus向量数据库、RAG检索增强生成、AI Agent、基础数据处理(FDE)以及LangGraph等核心技术栈。针对每个主题,本文提供高频面试题、原理剖析及代码示例,帮助读者系统备战大模型面试。
1. 引言
随着大语言模型(LLM)技术的飞速发展,企业对AI工程师的要求不再停留在“会调API”的层面。2025年之后,大模型面试重点转向了工程落地能力,LangChain、Milvus、RAG、Agent、FDE、LangGraph 等已成为核心考点。本文将逐一拆解这些技术栈,给出最详细的面试题解析。
2. LangChain 面试题详解
2.1 什么是 LangChain?它的核心组件有哪些?
参考答案:LangChain 是一个用于开发由大语言模型驱动的应用程序的开源框架。它的核心价值在于将 LLM 与外部数据源、计算工具连接起来,实现复杂的推理链路。
核心组件包含以下六大模块:
- Models(模型):提供对各类 LLM、聊天模型、文本嵌入模型的统一接口封装。
- Prompts(提示词):提供提示词模板管理、示例选择器和输出解析器,帮助开发者构建复杂的提示工程逻辑。
- Chains(链):将多个组件串联成固定的执行管线,是最基础的编排单元。常见的有 LLMChain、SequentialChain、RetrievalQA 等。
- Indexes(索引):即 Document Loaders、Text Splitters、VectorStores 和 Retrievers 的组合,用于实现 RAG 模式下的文档加载与检索。
- Agents(代理):让 LLM 具备自主决策能力,动态选择并调用工具来完成任务。核心包含 Agent、Tool 和 AgentExecutor。
- Memory(记忆):提供短期和长期记忆机制,使链或代理能记住与用户的交互上下文。
2.2 LangChain 中 Chain 和 Agent 的本质区别是什么?
参考答案:核心区别在于控制流由谁主导。
- Chain:执行路径是预定义的、硬编码的。开发者提前确定步骤顺序(如:检索→提示词拼接→LLM生成),运行时不会改变流程。
- Agent:执行路径由 LLM 动态决定。LLM 作为推理引擎,根据任务状态自主选择调用哪个工具、何时停止,控制流是动态且非确定性的。
2.3 在 LangChain 中如何处理大文档的上下文长度限制?
参考答案:主要有以下几种策略:
- 文本切分(Text Splitting):使用 RecursiveCharacterTextSplitter 等按语义边界切分文档,配合 chunk_size 和 chunk_overlap 控制块大小与重叠区域。
- Map-Reduce 摘要链:先用 Map 步骤对每个文档块分别生成摘要,再用 Reduce 步骤汇总所有摘要生成最终答案。
- Refine 链:迭代式处理文档块,每次将当前块与之前的中间结果合并后让 LLM 提炼,适合需要全局视角的任务。
- Stuff 链:直接将所有文档块拼接到提示词中,适用于文档总量较小的情况。
3. Milvus 向量数据库面试题详解
3.1 什么是向量数据库?为什么大模型应用需要它?
参考答案:向量数据库是专门用于存储、索引和查询高维向量数据的数据库。在大模型应用中,文本、图片等非结构化数据被嵌入模型(Embedding Model)转换成高维向量,向量数据库负责高效检索语义最接近的向量。
核心价值在于:解决了 LLM 无法感知私有数据的问题。通过将企业知识库向量化存入向量数据库,可在推理时检索出相关上下文,实现 RAG。
3.2 Milvus 的核心架构是怎样的?
参考答案:Milvus 采用存储计算分离的云原生架构,主要包含四个层次:
- 接入层(Access Layer):提供客户端 SDK(Python、Java、Go 等)及 RESTful API,负责请求转发与结果聚合。
- 协调服务(Coordinator Service):包括 Root Coord、Query Coord、Data Coord、Index Coord,分别管理元数据、查询调度、数据持久化和索引构建。
- 工作节点(Worker Node):包括 Query Node(执行向量检索)、Data Node(处理数据插入)、Index Node(构建向量索引)。
- 存储层(Storage):元数据用 etcd,消息流用 Pulsar 或 Kafka,对象存储用 MinIO 或 S3。
3.3 Milvus 支持哪些索引类型?如何选择合适的索引?
参考答案:Milvus 支持十余种向量索引,常见的有:
- IVF_FLAT:基于倒排文件的索引,量化加速搜索。适合对精度要求高、可接受一定查询延迟的场景。
- IVF_SQ8 / IVF_PQ:在 IVF 基础上进行标量量化或乘积量化,进一步压缩内存占用。适合内存有限的大规模数据集。
- HNSW:基于分层可导航小世界图,查询性能极高、构建速度较快。适合低延迟在线服务场景,是目前最主流的选择之一。
- SCANN:Google 提出的向量近似最近邻搜索算法,在召回率和性能上表现优异。
选择建议:对延迟不敏感、追求高精度选 IVF_FLAT;在线服务追求高 QPS 选 HNSW;内存紧张、数据量极大选 IVF_PQ。
3.4 Milvus 如何实现混合检索(Hybrid Search)?
参考答案:Milvus 从 2.4 版本开始原生支持混合检索。本质是将向量相似度检索与标量过滤、全文检索相结合。典型场景是:在电商中同时按商品图片相似度和价格、品牌等标量条件筛选。实现方式包括:
- 标量过滤 + 向量检索:先通过布尔表达式过滤标量字段,再在候选集中做向量相似度检索。
- 多向量混合检索:对同一实体同时用多个向量字段(如图片向量和文本向量)进行检索,结果按加权得分重排序。
4. RAG 检索增强生成面试题详解
4.1 请详细描述 RAG 的完整工作流程
参考答案:RAG(Retrieval-Augmented Generation,检索增强生成)的标准流程分为离线索引和在线检索生成两个阶段:
离线索引阶段:
- 文档加载:从 PDF、网页、数据库等多种数据源加载原始文档。
- 文档解析与清洗:去除页眉页脚、乱码等噪声,提取纯文本内容。
- 文本切分:按语义边界将长文档切分为适当大小的块(Chunk),并保留块间重叠。
- 向量化:使用 Embedding 模型将每个文本块转换为固定维度的向量。
- 向量存储:将向量和对应的原始文本元数据存入 Milvus 等向量数据库。
在线检索生成阶段:
- 用户提问:用户输入自然语言问题。
- 问题向量化:使用同一 Embedding 模型将问题转为向量。
- 相似度检索:在向量数据库中检索 Top-K 个语义最相似的文本块。
- 上下文拼接:将检索到的文本块与用户问题、提示词模板组合成完整 Prompt。
- LLM 生成:将拼接后的 Prompt 发送给 LLM,生成包含引用来源的答案。
4.2 RAG 中常见的检索失败原因及优化方案有哪些?
参考答案:常见失败原因及对应优化:
- 知识库内容不完整或质量差:优化方案是提升文档质量、补充缺失内容,建立文档版本管理机制。
- Embedding 模型与领域不匹配:针对专业领域(医疗、法律、金融等)使用领域微调的 Embedding 模型,或采用 BGE、E5 等高性能开源模型。
- 文本切分策略不当:Chunk 过大导致召回精度低,过小导致语义碎片化。需根据文档结构动态调整 chunk_size 和 chunk_overlap,必要时采用语义分块或父子索引模式。
- Top-K 选择不合理:K 值过小遗漏关键信息,K 值过大引入噪声。可通过 ReRank 对召回结果重排序,或采用多路召回融合策略。
- 用户问题表述模糊:可通过查询重写(Query Rewriting)、Multi-Query 生成和 HyDE(假设文档嵌入)等技术优化查询表达。
4.3 什么是 Advanced RAG?与传统 RAG 有何区别?
参考答案:Advanced RAG(高级 RAG)在传统“检索→生成”两阶段基础上,引入了更多预处理和后处理模块来提升效果和可靠性。核心增强包括:
- 查询增强:包括查询重写、子问题分解(Sub-Query)、多步推理(Step-Back Prompting)等,提升检索召回率。
- 检索增强:包括混合检索(向量+关键词)、多路召回融合、上下文压缩、自查询检索等。
- 后处理增强:包括 ReRank 重排序、相似度阈值过滤、引用验证、幻觉检测等。
- 索引增强:包括层级索引、摘要索引、知识图谱辅助索引、多粒度索引等。
5. Agent(智能体)面试题详解
5.1 什么是 AI Agent?它的核心架构是怎样的?
参考答案:AI Agent 是能够感知环境、自主规划、调用工具并执行任务的智能实体。在大模型语境下,Agent 以 LLM 为核心推理引擎,具备以下四大核心模块:
- 规划模块(Planning):负责任务分解(Task Decomposition)和反思(Self-Reflection)。将复杂目标拆解为可执行的子任务,并根据执行结果动态调整计划。
- 记忆模块(Memory):分为短期记忆(对话上下文、当前任务状态)和长期记忆(向量数据库存储的历史经验、用户偏好)。
- 工具使用(Tool Use):Agent 通过调用外部 API、数据库、代码解释器、搜索引擎等工具来弥补 LLM 自身能力的不足(如数学计算、实时信息获取)。
- 行动模块(Action):负责执行具体操作,将工具调用的结果反馈给推理链路。
5.2 ReAct 模式是什么?请举例说明
参考答案:ReAct(Reasoning + Acting)是将推理和行动交错执行的范式。Agent 不直接给出最终答案,而是通过“思考→行动→观察→思考…”的循环来逐步求解。典型流程:
- Thought(思考):分析当前状态,决定下一步需要什么信息或操作。
- Action(行动):调用具体工具(如搜索 API、计算器)。
- Observation(观察):获取工具返回的结果。
例如用户问“2024年诺贝尔物理学奖得主的年龄是多少?”Agent 会先思考需要搜索获奖者姓名,调用搜索工具得到“John Hopfield 和 Geoffrey Hinton”,再搜索两人出生日期,最后调用计算工具算出年龄。这种方式比一步到位直接回答更可靠,且过程可解释。
5.3 如何设计一个生产级的 Agent 系统?需要考虑哪些问题?
参考答案:生产级 Agent 系统设计需要关注以下方面:
- 安全边界:限制 Agent 对敏感 API 的访问权限,设置操作审批机制(Human-in-the-Loop)。
- 超时与重试:单次工具调用设置超时时间,避免因网络或服务异常导致无限等待。
- 最大步数限制:防止 Agent 陷入无限循环,设置每轮任务的最大推理步数。
- 工具描述质量:工具名称、参数说明必须清晰准确,直接影响 LLM 的工具选择准确率。
- 成本控制:监控 Token 消耗,对频繁调用昂贵模型的步骤设置预算上限。
- 可观测性:记录每一次 Thought-Action-Observation 的完整链路,便于调试和审计。
6. FDE(基础数据处理)面试题详解
6.1 在大模型应用中,FDE 包含哪些关键环节?
参考答案:FDE(Foundation Data Engineering,基础数据处理)是 RAG 和 Agent 系统的基石,整个数据处理管线直接影响大模型应用的最终效果。核心环节包括:
- 数据接入(Ingestion):支持多种数据源连接器,如 PDF 解析(PyPDF2、PDFPlumber、Unstructured)、HTML 抓取、数据库 CDC 同步、API 对接等。
- 数据清洗(Cleaning):去除多余空白、页眉页脚、水印、HTML 标签等噪声;处理编码问题;统一文本格式。
- 数据转换(Transformation):包括 Markdown 转纯文本、表格提取、OCR 识别图片文字、多语言翻译归一化等。
- 元数据提取与维护:从文档中提取标题、作者、日期、页码等结构化元数据,用于后续的精准过滤和引用溯源。
- 数据质量监控:检查文本块长度分布、语言一致性、向量化覆盖率等指标,确保知识库质量。
6.2 如何处理非结构化文档中的表格和图片信息?
参考答案:这是 FDE 中的关键挑战,主流方案有:
- 表格处理:使用 Unstructured 库的 table extraction 功能将表格转 Markdown 或 HTML 格式保留列结构;对复杂表格可配合多模态模型(如 GPT-4V、Qwen-VL)直接理解表格语义。
- 图片处理:对文档中的示意图、架构图,通过多模态 Embedding 模型(如 CLIP)生成图片向量,与文本向量一同存入向量数据库;也可先通过 OCR 提取图中的文字信息。
- 图文关联:将图片与其相邻的段落绑定为父子 Chunk,检索时以文本 Chunk 召回,同步返回关联的图片作为上下文。
7. LangGraph 面试题详解
7.1 LangGraph 是什么?它解决了什么问题?
参考答案:LangGraph 是 LangChain 生态中专门用于构建有状态、多角色、可循环 Agent 和复杂流程的框架。传统 Chain 是固定的有向无环图(DAG),而 LangGraph 通过图结构(Graph)定义应用流程,天然支持:
- 循环控制流:Agent 可在节点间循环往复,直到满足终止条件。这正是 ReAct 等 Agent 模式的底层支撑。
- 状态管理:每个图实例维护一个 State 对象,在节点之间传递并持久化,解决了 Agent 的长期记忆和上下文管理问题。
- 人机交互(Human-in-the-Loop):可在图的任何节点暂停执行,等待人工审批后再继续,是生产级 Agent 的关键能力。
- 流式输出:支持节点级别和 Token 级别的流式事件推送,提升用户体验。
7.2 LangGraph 的核心概念有哪些?
参考答案:LangGraph 的核心概念包括:
- State(状态):定义图内部共享数据的结构(TypedDict 或 Pydantic 模型),包含消息列表、中间结果、用户偏好等。
- Nodes(节点):图中的执行单元,通常是 Python 函数或 Runnable。接收 State,返回 State 的部分更新。
- Edges(边):连接节点,分为普通边(固定流转)和条件边(根据 State 内容动态路由到不同节点)。
- StateGraph:核心构建器 API,用于声明式地添加节点、边并编译为可运行的应用。
- Checkpointer:持久化组件,支持将每个步骤的状态保存到内存或数据库(如 SQLite、Postgres),实现暂停恢复和版本回溯。
7.3 请给出一个 LangGraph 构建 Agent 的代码示例
参考答案:以下是一个基于 LangGraph 实现的 ReAct Agent 核心代码骨架:
from typing import TypedDict, Annotated, Sequence
from langgraph.graph import StateGraph, END
from langgraph.checkpoint.memory import MemorySaver
from langchain_core.messages import BaseMessage, HumanMessage, AIMessage
import operator
1. 定义 State
class AgentState(TypedDict):
messages: Annotated[Sequence[BaseMessage], operator.add]
next_step: str
2. 定义节点:调用 LLM 进行推理与工具选择
def call_model(state: AgentState, config):
# 实际开发中这里绑定 LLM 与工具
# response = llm_with_tools.invoke(state["messages"])
response = AIMessage(content="推理结果...")
return {"messages": [response]}
3. 定义路由条件
def should_continue(state: AgentState):
last_message = state["messages"][-1]
# 如果没有工具调用请求,则结束
if not hasattr(last_message, "tool_calls") or not last_message.tool_calls:
return "end"
return "continue"
4. 构建图
workflow = StateGraph(AgentState)
workflow.add_node("agent", call_model)
workflow.add_node("tools", call_tools) # call_tools 为自定义工具执行函数
workflow.set_entry_point("agent")
workflow.add_conditional_edges(
"agent",
should_continue,
{
"continue": "tools",
"end": END
}
)
workflow.add_edge("tools", "agent") # 工具执行后返回 agent 继续推理
5. 编译应用
memory = MemorySaver()
app = workflow.compile(checkpointer=memory)
6. 运行
inputs = {"messages": [HumanMessage(content="帮我查询北京今天的天气")]}
for event in app.stream(inputs, {"configurable": {"thread_id": "user-123"}}):
print(event)
8. 综合面试题与最佳实践
8.1 请设计一个完整的企业级 RAG 问答系统的技术架构
参考答案:企业级 RAG 系统通常包含多层架构设计:
- 数据层:多源数据接入(Confluence、Notion、Git、数据库等),通过 ETL 管道(如 Airflow、Prefect)定期同步与增量更新。使用 Unstructured 或定制解析器处理各类文档格式。
- 向量检索引擎层:以 Milvus 作为向量数据库,配置 HNSW 索引保证毫秒级检索。引入混合检索(向量+BM25)提升召回覆盖率。对多租户场景使用 Partition Key 做数据隔离。
- 检索优化层:实现查询路由(Query Routing)、查询重写、HyDE 等查询增强策略。构建 ReRank 服务(如 BGE-Reranker、Cohere Rerank)对粗排结果精排。
- 生成与 Agent 层:基于 LangChain/LangGraph 构建 RAG Chain 或 Agent。引入意图识别(Intent Classification)分流简单问答和复杂分析任务。对敏感操作引入 Human-in-the-Loop 审批。
- 服务与监控层:通过 FastAPI 或 gRPC 对外暴露 API。接入 LangSmith、Langfuse 等平台监控检索质量、生成质量、延迟和 Token 消耗。建立基于用户反馈的评估与持续优化闭环。
8.2 大模型面试中如何回答"你做过的最复杂的 AI 项目"?
参考答案:建议使用 STAR 原则(Situation、Task、Action、Result)组织回答,并重点突出技术深度与工程落地能力:
- Situation:说明业务背景和项目的核心挑战。例如“公司客服系统每天处理10万条咨询,人工成本高,需要构建智能客服 Agent 实现自动化”。
- Task:明确你在项目中的角色与职责。“我负责整体技术架构设计,包括 RAG 知识库搭建、多轮对话 Agent 开发、向量数据库选型与优化”。
- Action:详细描述技术方案。如“基于 LangChain + Milvus 构建 RAG 管线,用 LangGraph 实现多轮对话状态管理,通过 ReRank 将检索 Top-20 精排到 Top-3,使召回率从 72% 提升到 93%”。
- Result:量化项目成果。“上线后人工客服转接率下降 60%,用户满意度评分从 3.8 提升至 4.5,系统日均处理量达到 8 万次,P99 延迟控制在 1.2 秒内”。
9. 总结与面试准备建议
本文从面试官视角出发,系统梳理了 AI 大模型工程领域的六大核心技术栈——LangChain、Milvus、RAG、Agent、FDE 和 LangGraph——的面试高频考点。这些技术并非孤立存在,它们在实际项目中紧密配合:FDE 构建高质量数据基石,Milvus 提供高性能向量检索,LangChain 和 LangGraph 负责编排复杂推理链路,而 RAG 和 Agent 分别代表了增强生成和自主行动两种核心应用范式。
面试准备的三个核心建议:
- 理论动手并重:不仅要理解原理,更要亲自搭建过端到端的项目 Demo,能讲清楚每个环节的技术选型理由。
- 关注前沿动态:AI 领域更新极快,建议持续关注 LangChain 官方博客、Milvus 技术文档、各大模型厂商的发布动态。
- 建立系统思维:不要孤立地学每个组件,要从数据流、系统架构的全局视角理解它们如何协同工作。
更多推荐



所有评论(0)