关注我,每天面经分享,早日上岸!
Q1:RAG 系统的完整流程是什么?从文档到生成的全链路讲一下
出现频率:★★★★★(几乎每篇面经都问)
RAG(Retrieval-Augmented Generation)的核心链路分三个阶段:
索引阶段(离线):
文档读取(PDF/Word/Markdown 解析)→ 文本切块(Chunking)→ Embedding 向量化 → 存入向量数据库
检索阶段(在线):
用户问题 → Query 改写(可选)→ 向量检索 top-K → 混合检索(向量 + BM25 关键词)→ Re-rank 重排序 → 筛选最终文档块
生成阶段:
将检索到的文档块 + 用户问题组装成 Prompt → LLM 生成回答 → 后处理(引用标注、格式化)
面试加分点: 面试官最想听的是每个环节你做了什么优化——切块别用固定长度,用语义感知切分;检索用混合检索 + RRF 融合排序;生成时强制要求 LLM 标注引用来源。能把优化策略讲清楚,这一题基本拿满。
Q2:RAG 和模型微调(Fine-tuning)的区别和使用场景?
出现频率:★★★★★
一句话区分:RAG 解决知识不足——模型没见过的数据;Fine-tuning 解决能力不足——输出风格、格式、领域理解。
RAG 不需要训练数据,只需文档库,知识可实时更新,成本低,有文档约束幻觉较少。Fine-tuning 需要标注的训练数据,需要重新训练,成本高,可能产生更"自信"的幻觉。
选择原则:
- 想让模型以特定 JSON 格式输出、理解内部术语缩写 → 微调
Q3:什么是 ReAct 模式?和 Plan-and-Execute 有什么区别?
出现频率:★★★★★
ReAct(Reasoning + Acting): 每一步都走"思考 → 行动 → 观察"的循环,边想边做。
Plan-and-Execute: 先让 Planner 生成完整计划,再逐步执行。
选择建议: 5 步以内的简单任务用 ReAct,多步骤复杂任务用 Plan-and-Execute。实际生产系统大多是混合模式——先规划大框架,执行过程中用 ReAct 处理局部决策。
Q4:Function Calling 的原理是什么?怎么理解 Tool Use?
出现频率:★★★★★
Function Calling 的本质是让 LLM 输出结构化的 JSON 调用指令,而不是自由文本。
工作流程: 定义工具 Schema(名称、描述、参数格式)→ 用户提问 → LLM 判断是否需要调用工具 → 输出 JSON 格式的调用指令 → 应用层解析并执行函数 → 结果返回 LLM → LLM 生成最终回答
关键认知: LLM 本身不执行任何函数,它只负责输出"我想调用什么函数、传什么参数",实际执行由应用层代码完成。这是一个安全设计——LLM 无法绕过你的代码直接操作外部系统。面试时把这一点讲清楚,说明你理解了 LLM 和外部世界的边界在哪里。
Q5:Agent 和普通工作流(Workflow)有什么区别?
出现频率:★★★★☆
核心区别在控制权:
- Workflow: 控制权在代码/开发者手里,流程是预先写死的"如果-那么"规则
- Agent: 控制权在 LLM 手里,LLM 自主决定下一步执行什么
量化对比:Workflow Token 消耗低(1x)、可预测性高、灵活性低。Agent Token 消耗高(4-8x)、可预测性低、灵活性高。
最佳实践: 大多数生产系统是混合架构——Workflow 提供稳定的骨架流程,Agent 负责处理异常和复杂情况。面试时别说"全用 Agent",这会让面试官觉得你没做过实际项目。
Q6:Multi-Agent 系统怎么设计?多个 Agent 之间如何协作?
出现频率:★★★★☆
四种经典架构:
主从模式: 一个 Orchestrator 负责分配任务,多个 Worker 执行。管理简单,全局可控。
流水线模式: 每个 Agent 负责一个环节,像工厂流水线依次传递。职责清晰,易于调试。
对等模式: 所有 Agent 平等对话,适合头脑风暴类任务。灵活但难以控制输出质量。
混合模式: 实际项目大多采用混合方案——整体用主从架构,某个环节内部再用流水线。
关键设计点: 任务分配机制(静态分配/动态 LLM 决策/招标模式)、通信方式(共享状态/消息队列/直接调用)、冲突解决(第三方仲裁/超时备份)。这三个点能展开讲,说明你是真做过。
Q7:MCP 协议是什么?和 Function Calling 有什么关系?
出现频率:★★★★☆
MCP(Model Context Protocol)是 Anthropic 推出的开放协议,核心目的是解决工具集成的 N×M 爆炸问题。
没有 MCP: 3 个应用 × 3 个工具 = 9 套集成代码。
有了 MCP: 每个应用接入 MCP 协议,每个工具实现一个 MCP Server,总共只需 6 套代码。工具越多,节省越明显。
和 Function Calling 的关系: 两者处于不同层面。Function Calling 是 LLM 输出调用指令的能力,MCP 是工具发现和调用的协议标准。配合流程:MCP 发现工具 → 工具描述传给 LLM → LLM 用 Function Calling 输出调用指令 → MCP 执行调用并返回结果。
Q8:Agent 的记忆系统怎么设计?
出现频率:★★★★☆
三种记忆类型:
短期记忆(Working Memory): 当前对话的上下文窗口。容量有限但访问最快,核心挑战是窗口溢出管理(什么时候丢弃、怎么压缩)。
长期记忆(Long-term Memory): 跨会话持久化,通常存在向量数据库中。包括用户偏好、历史决策等。核心挑战是检索质量——存了一堆但关键时刻想不起来。
情景记忆(Episodic Memory): 完整的"任务执行经历"。让 Agent 具备类比推理能力——遇到相似任务时,能回忆起以前是怎么处理的。
防记忆污染: 写入门槛(只在任务成功时写入)、质量评估(用独立 LLM 评估准确性)、衰减机制(长期不被检索的记忆降低权重)。记忆系统最怕"垃圾进垃圾出",这三层防护缺一不可。
Q9:RAG 中的幻觉问题怎么解决?
出现频率:★★★★☆
五层防护体系:
- 检索增强层: 确保检索到相关且正确的知识——源头不对,后面全白搭
- 引用溯源层: 要求 LLM 回答时标注引用来源("根据文档 X 第 Y 段")
- 事实校验层: 用专门的 Fact Checker Agent 校验答案中的每个事实陈述
- 置信度标注层: 答案附带置信度标签(高/中/低置信度),让用户知道哪些回答靠谱
- 用户反馈层: 用户可以点击"答案有误"反馈,系统记录并用于持续优化
核心原则: 宁可说"知识库中未找到相关信息",也绝不能编造。面试时把这个原则说出来,说明你对 RAG 的可靠性有深刻理解。
Q10:什么是多路检索(Multi-way Retrieval)?Re-rank 的作用?
出现频率:★★★★☆
多路检索: 同时用多种检索方式查询,再融合结果。
- 向量检索:擅长捕捉语义相近("如何提升性能"能匹配"优化响应速度")
- 关键词检索(BM25):擅长精确匹配("Redis 集群"精确匹配这三个字)
- 两路结果用 RRF(Reciprocal Rank Fusion)融合排序,召回率能提升 10-20%
Re-rank: 向量相似度是粗排,速度快但不够精确;Re-rank 用 Cross-Encoder 做精排,速度慢但准确率高。
流程:向量检索召回 100 个候选 → Cross-Encoder 精选出 top-5 → 交给 LLM 生成。
Q11:如何提升 Agent 的 Function Call 准确率?
出现频率:★★★★☆
四层防御:
- Schema 约束: 用 JSON Schema 精确定义参数类型、枚举值、必填项,让 LLM 有据可依
- 输出校验: 拿到结果后做格式校验(类型检查、范围校验)
- 重试纠错: 把校验错误信息反馈给 LLM 让它修正,最多重试 2-3 次
- 兜底降级: 重试仍然失败时,降级为普通对话模式,别让系统卡死
优化工具描述: 这一点经常被忽略但非常关键。描述要写清楚这个工具做什么、输入输出是什么、适用什么场景、不适用什么场景。工具描述的质量直接影响 LLM 的调用准确率。
Q12:Agent 的任务规划和目标拆解怎么做?
出现频率:★★★☆☆
三种模式:
ReAct 逐步规划: 每步思考后决定下一步做什么,适合步骤少、路径清晰的简单任务。
Plan-and-Execute 全局规划: 一次性生成完整计划,按步骤执行。适合步骤明确、不太需要中途调整的任务。
分层规划: 高层 Agent 做粗粒度规划,低层 Agent 做细粒度执行。适合复杂系统,也是实际项目中最常见的做法。
关键设计: 计划要有检查点(每 N 步评估是否需要调整)、失败要有回退机制(执行失败时触发重新规划)、要有终止判断(避免无限循环烧光 Token)。
Q13:Transformer 的 QKV 机制和多头注意力?
出现频率:★★★☆☆
QKV 机制: Query(查询)、Key(键)、Value(值)。核心公式:Attention(Q,K,V) = softmax(QK^T/√d)V。Q 和 K 的点积衡量"应该关注什么",softmax 归一化得到注意力权重,加权求和 V 得到输出。
位置编码: Transformer 本身没有序列信息,不加位置编码的话,"我吃饭"和"饭吃我"在模型看来是一样的。位置编码的作用就是注入序列顺序信息。
多头注意力: 单头只能学一种关注模式。多头让模型同时从多个角度关注——一个头关注语法关系,一个头关注语义关系,一个头关注距离关系。就像人看一篇文章,同时关注主旨、细节和上下文衔接。
Q14:Prompt 工程有哪些实战经验?
出现频率:★★★☆☆
五条实战心得:
- 角色设定要具体 ——"你是有 5 年经验的后端工程师"比"你是助手"好得多,角色越具体,LLM 的回答越聚焦
- Few-shot 比描述更有效 ——给 3-5 个示例比写一大段规则效果好,LLM 更擅长"模仿"而非"理解规则"
- 约束条件要显式列出 ——"不要使用专业术语""回答不超过 200 字",别指望 LLM 自己猜到你的要求
- 分步骤引导 ——"请按以下步骤思考"能有效引导 LLM 的推理链路,减少跳步和遗漏
- 用 AI 辅助优化 ——把当前 Prompt 和不满意的输出一起喂给另一个 LLM,让它帮你改进 Prompt
Q15:LoRA 微调的原理和适用场景?
出现频率:★★★☆☆
LoRA(Low-Rank Adaptation)的核心思想:不修改原始模型的庞大参数,而是在旁边加一个小的低秩矩阵来学习增量变化。
优点: 参数量极小(通常只有原模型的 0.1%-1%)、训练速度快、显存占用低、可以为不同任务维护不同的 LoRA 适配器,即插即用。
适用场景: 垂直领域适配(医疗、法律、金融)、输出格式定制(特定 JSON Schema)、风格迁移。
注意事项: 样本量极少(< 50 条)时容易过拟合,这种情况下 few-shot prompt 的效果可能反而比微调更好。微调不是万能的,数据量不够时别硬上。
Q16:AI Coding 工具有哪些?如何评估 AI 生成代码的质量?
出现频率:★★★☆☆
主流工具: Cursor、Claude Code、GitHub Copilot、Windsurf、OpenClaw。
评估维度:
- 功能正确性: 代码是否真正实现了需求,边界 case 是否处理到位
- 可维护性: 代码结构是否清晰、命名是否规范、别人能不能看懂
AI Coding 的正确用法: 不是让 AI 替代你写代码,而是让它加速你的工作流。你负责架构设计和代码审查,AI 负责实现细节。把 AI 当副驾驶,别当主驾驶。
Q17:Agent 的安全风险有哪些?怎么防范 Prompt 注入?
出现频率:★★★☆☆
六大风险:
- Prompt 注入攻击(最高危)——用户输入恶意指令,诱导 Agent 做坏事
- 敏感信息泄露——Agent 把隐私数据或内部配置泄露出去
Prompt 注入防范: 关键词检测 + 专门的检测模型 + 输入过滤 + 工具白名单 + 最小权限原则。安全问题没有银弹,需要多层防御叠加。
Q18:Agent 中的 MCP 和 Skills 有什么区别?
出现频率:★★★☆☆
本质区别: MCP 向外连接外部能力,Skills 向内注入行为指令。
| 维度 |
MCP |
Skills |
| 运行方式 |
独立进程,跨进程通信 |
进程内,作为 prompt 注入 |
| 安全模型 |
进程隔离,凭证分离 |
无隔离,共享 Agent 运行环境 |
| 能力边界 |
连接外部系统 |
定义 Agent 行为模式 |
| 动态性 |
需要配置和启动 Server |
加载一个文件即可生效 |
选型原则: 对接外部系统用 MCP,定义行为规范用 Skills。两者是互补关系:Skill 定义"该做什么",MCP 提供"用什么去做"。
Q19:如何评估一个 Agent 的好坏?
出现频率:★★★☆☆
四大评估维度:
任务完成质量: 任务成功率、结果正确率、步骤合理性
效率与成本: Token 消耗量、响应时间、工具调用次数、单任务成本
可靠性与稳定性: 异常率、重试率、死循环率、幻觉率
用户体验: 过程透明度、交互友好度、可干预性(用户能不能随时接管)
核心指标: 任务成功率是王道。一个成功率 95% 的 Agent 比成功率 80% 的 Agent 好用不止 10 倍——因为那 15% 的差距意味着用户需要频繁人工介入,Agent 的存在价值就大打折扣了。
Q20:RAG 中的权限隔离和时效性问题怎么处理?
出现频率:★★★☆☆
权限隔离三层防护:
- 存储层:每个文档带 metadata 标记(tenant_id、user_id),从源头隔离
- 检索层:查询时加 filter 条件,只检索用户有权限访问的文档
- 应用层:LLM 生成时做二次校验,防止 Prompt 注入绕过权限控制
时效性保障:
- 文档带时间戳 metadata,检索时按时间加权或过滤过期文档
- 定期更新向量库:文档修改后重新 Embedding 入库
- 新文档用关键词检索(无需重新 Embedding),减少更新延迟,做到"即时可查"
总结
从牛客网面经数据来看,RAG 全流程 + Agent 架构模式 + Function Calling 是出现频率最高的三大考点,几乎每场面试都会问到。建议把这三个方向作为重点准备对象,同时不能忽视 Multi-Agent 设计、记忆系统、Prompt 工程等进阶题目。
一句话总结: RAG 是基础,Agent 是核心,Function Calling 是桥梁——三者融会贯通,AI Agent 方向的面试你就稳了。